From: Eric Blake Date: Wed, 17 Mar 2010 00:49:07 +0000 (-0600) Subject: Add tests for AS_BOX. X-Git-Tag: v2.66~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac6824d442301dbbfcd69f7a9160a5aa13396a7f;p=thirdparty%2Fautoconf.git Add tests for AS_BOX. * tests/m4sugar.at (m4@&t@_text_box): New test. * tests/m4sh.at (AS@&t@_BOX): Likewise. * lib/m4sugar/m4sugar.m4 (m4_text_box): Support comma. * doc/autoconf.texi (Text processing Macros) : Document further limitations. Signed-off-by: Eric Blake --- diff --git a/ChangeLog b/ChangeLog index d835b3fe..df9424ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2010-07-02 Eric Blake + Add tests for AS_BOX. + * tests/m4sugar.at (m4@&t@_text_box): New test. + * tests/m4sh.at (AS@&t@_BOX): Likewise. + * lib/m4sugar/m4sugar.m4 (m4_text_box): Support comma. + * doc/autoconf.texi (Text processing Macros) : + 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 e6d4751a..73517fd1 100644 --- a/doc/autoconf.texi +++ b/doc/autoconf.texi @@ -12523,7 +12523,9 @@ quickly test if @var{string} has only whitespace, use @code{m4_ifblank}. @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 15fbd354..95b7bcf7 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 1e6eb596..f5ea7e20 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@&t@_BOX]) +AT_KEYWORDS([m4sh]) + +AT_DATA_M4SH([script.as], +[[AS_INIT +echo +AS_BOX([Send a simple message, to foobar@example.com]) +AS_BOX([Send a simple message, to foobar@example.com], [$]) +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 foobar@example.com ## +## -------------------------------------------- ## +]]) + +AT_CHECK([$CONFIG_SHELL ./script], [], [[ +## -------------------------------------------- ## +## Send a simple message, to foobar@example.com ## +## -------------------------------------------- ## +## $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ## +## Send a simple message, to foobar@example.com ## +## $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ## +## ----------------------- ## +## Not quite as simple |$1 ## +## ----------------------- ## +## ,,,,,,,,,,,,,,,,,,,,,,, ## +## Not quite as simple |$1 ## +## ,,,,,,,,,,,,,,,,,,,,,,, ## +]]) + +AT_CLEANUP + # Strip path from file. AT_SETUP([AS@&t@_BASENAME]) diff --git a/tests/m4sugar.at b/tests/m4sugar.at index 70693098..50a7b000 100644 --- a/tests/m4sugar.at +++ b/tests/m4sugar.at @@ -1130,6 +1130,30 @@ a AT_CLEANUP +## ------------- ## +## m4_text_box. ## +## ------------- ## + +AT_SETUP([m4@&t@_text_box]) + +AT_CHECK_M4SUGAR_TEXT([[ +m4_text_box([a $1 @&t@b]) +m4_text_box([a $1 @&t@b], [$]) +m4_text_box([a $1 @&t@b], [,]) +]], [[ +## ------ ## +## a $1 b ## +## ------ ## +## $$$$$$ ## +## a $1 b ## +## $$$$$$ ## +## ,,,,,, ## +## a $1 b ## +## ,,,,,, ## +]]) + +AT_CLEANUP + ## -------------- ## ## m4_text_wrap. ## ## -------------- ##