autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 5/7] Add tests for AS_BOX.


From: Eric Blake
Subject: [PATCH 5/7] Add tests for AS_BOX.
Date: Fri, 2 Jul 2010 13:37:50 -0600

* tests/m4sugar.at (m4@&address@hidden): New test.
* tests/m4sh.at (AS@&address@hidden): Likewise.
* lib/m4sugar/m4sugar.m4 (m4_text_box): Support comma.
* doc/autoconf.texi (Text processing Macros) <m4_text_box>:
Document further limitations.

Signed-off-by: Eric Blake <address@hidden>
---
 ChangeLog              |    7 +++++++
 doc/autoconf.texi      |    4 +++-
 lib/m4sugar/m4sugar.m4 |    6 +++---
 tests/m4sh.at          |   48 +++++++++++++++++++++++++++++++++++++++++++++---
 tests/m4sugar.at       |   24 ++++++++++++++++++++++++
 5 files changed, 82 insertions(+), 7 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d835b3f..df9424e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2010-07-02  Eric Blake  <address@hidden>

+       Add tests for AS_BOX.
+       * tests/m4sugar.at (m4@&address@hidden): New test.
+       * tests/m4sh.at (AS@&address@hidden): Likewise.
+       * lib/m4sugar/m4sugar.m4 (m4_text_box): Support comma.
+       * doc/autoconf.texi (Text processing Macros) <m4_text_box>:
+       Document further limitations.
+
        Add optional argument to AS_LITERAL_IF.
        * lib/m4sugar/m4sh.m4 (_AS_LITERAL_IF): Rewrite to generate macro
        name, without using m4_cond.
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index e6d4751..73517fd 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -12523,7 +12523,9 @@ Text processing Macros
 @defmac m4_text_box (@var{message}, @dvar{frame, -})
 @msindex{text_box}
 Add a text box around @var{message}, using @var{frame} as the border
-character above and below the message.  The frame correctly accounts for
+character above and below the message.  The @var{frame} argument must be
+a single byte, and does not support quadrigraphs.
+The frame correctly accounts for
 the subsequent expansion of @var{message}.  For example:
 @example
 m4_define([macro], [abc])dnl
diff --git a/lib/m4sugar/m4sugar.m4 b/lib/m4sugar/m4sugar.m4
index 15fbd35..95b7bcf 100644
--- a/lib/m4sugar/m4sugar.m4
+++ b/lib/m4sugar/m4sugar.m4
@@ -2675,11 +2675,11 @@ m4_define([_m4_text_wrap_word],
 # will post-process.
 m4_define([m4_text_box],
 [m4_pushdef([m4_Border],
-           m4_translit(m4_format([%*s], m4_decr(m4_qlen(_m4_expand([$1
+           m4_translit(m4_format([[[%*s]]], m4_decr(m4_qlen(_m4_expand([$1
 ]))), []), [ ], m4_default_quoted([$2], [-])))]dnl
-[[##] m4_Border [##]
+[[##] _m4_defn([m4_Border]) [##]
 [##] $1 [##]
-[##] m4_Border [##]_m4_popdef([m4_Border])])
+[##] _m4_defn([m4_Border]) [##]_m4_popdef([m4_Border])])


 # m4_qlen(STRING)
diff --git a/tests/m4sh.at b/tests/m4sh.at
index 1e6eb59..f5ea7e2 100644
--- a/tests/m4sh.at
+++ b/tests/m4sh.at
@@ -124,9 +124,51 @@ AT_CHECK([$CONFIG_SHELL ./script])
 AT_CLEANUP


-## ------------- ##
-## AS_BASENAME.  ##
-## ------------- ##
+## -------- ##
+## AS_BOX.  ##
+## -------- ##
+
+# Output a framed one-line message.
+AT_SETUP([AS@&address@hidden)
+AT_KEYWORDS([m4sh])
+
+AT_DATA_M4SH([script.as],
+[[AS_INIT
+echo
+AS_BOX([Send a simple message, to address@hidden)
+AS_BOX([Send a simple message, to address@hidden, [$])
+m4_define([msg], [$complex])
+complex='Not quite as simple |$[1]'
+AS_BOX([msg])
+AS_BOX([msg], [,])
+AS_EXIT(0)
+]])
+
+AT_CHECK_M4SH
+AT_CHECK([sed -n '/ -\{44\} /,/ -\{44\} /p' script ]dnl
+[| sed '1 s/.*## -/## -/; 3 s/- ##.*/- ##/'], [],
+[[## -------------------------------------------- ##
+## Send a simple message, to address@hidden ##
+## -------------------------------------------- ##
+]])
+
+AT_CHECK([$CONFIG_SHELL ./script], [], [[
+## -------------------------------------------- ##
+## Send a simple message, to address@hidden ##
+## -------------------------------------------- ##
+## $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ##
+## Send a simple message, to address@hidden ##
+## $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ##
+## ----------------------- ##
+## Not quite as simple |$1 ##
+## ----------------------- ##
+## ,,,,,,,,,,,,,,,,,,,,,,, ##
+## Not quite as simple |$1 ##
+## ,,,,,,,,,,,,,,,,,,,,,,, ##
+]])
+
+AT_CLEANUP
+

 # Strip path from file.
 AT_SETUP([AS@&address@hidden)
diff --git a/tests/m4sugar.at b/tests/m4sugar.at
index 7069309..50a7b00 100644
--- a/tests/m4sugar.at
+++ b/tests/m4sugar.at
@@ -1130,6 +1130,30 @@ a
 AT_CLEANUP


+## ------------- ##
+## m4_text_box.  ##
+## ------------- ##
+
+AT_SETUP([m4@&address@hidden)
+
+AT_CHECK_M4SUGAR_TEXT([[
+m4_text_box([a $1 @&address@hidden)
+m4_text_box([a $1 @&address@hidden, [$])
+m4_text_box([a $1 @&address@hidden, [,])
+]], [[
+## ------ ##
+## a $1 b ##
+## ------ ##
+## $$$$$$ ##
+## a $1 b ##
+## $$$$$$ ##
+## ,,,,,, ##
+## a $1 b ##
+## ,,,,,, ##
+]])
+
+AT_CLEANUP
+
 ## -------------- ##
 ## m4_text_wrap.  ##
 ## -------------- ##
-- 
1.7.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]