From bd16bfa0e3ef0af768f1fc893ff28bb6de7f5323 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Mon, 15 Jan 2001 07:29:48 +0000 Subject: [PATCH] * sh.m4 (AS_BOX, _AS_BOX_LITERAL, _AS_BOX_INDIR): New. * tests/atgeneral.m4: Use it. --- ChangeLog | 5 +++++ lib/autotest/general.m4 | 16 +++------------- lib/m4sugar/m4sh.m4 | 27 +++++++++++++++++++++++++++ m4sh.m4 | 27 +++++++++++++++++++++++++++ tests/atgeneral.m4 | 16 +++------------- 5 files changed, 65 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2f7b2981..b89f1675 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2001-01-15 Akim Demaille + + * sh.m4 (AS_BOX, _AS_BOX_LITERAL, _AS_BOX_INDIR): New. + * tests/atgeneral.m4: Use it. + 2001-01-15 Akim Demaille * acgeneral.m4 (AC_VAR_INDIR_IFELSE): Move as... diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4 index 84b1d9d6..5b8f13e9 100644 --- a/lib/autotest/general.m4 +++ b/lib/autotest/general.m4 @@ -192,15 +192,9 @@ fi # over files, the full test suite cleans up both before and after test groups. if $1 --version | grep "$at_package.*$at_version" >/dev/null; then - at_banner="Testing suite for $at_package, version $at_version" - at_dashes=`echo $at_banner | sed s/./=/g` - echo "$at_dashes" - echo "$at_banner" - echo "$at_dashes" + AS_BOX([Testing suite for $at_package, version $at_version]) else - echo '=======================================================' - echo 'ERROR: Not using the proper version, no tests performed' - echo '=======================================================' + AS_BOX([ERROR: Not using the proper version, no tests performed]) exit 1 fi @@ -277,11 +271,7 @@ elif test $at_debug = false; then at_banner="ERROR: Suite unsuccessful, $at_fail_count of $at_test_count tests failed" fi fi -at_dashes=`echo $at_banner | sed s/./=/g` -echo -echo "$at_dashes" -echo "$at_banner" -echo "$at_dashes" +AS_BOX($at_banner) if test $at_debug = false && test -n "$at_failed_list"; then echo diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 index f81ad082..9a2f65aa 100644 --- a/lib/m4sugar/m4sh.m4 +++ b/lib/m4sugar/m4sh.m4 @@ -314,6 +314,33 @@ done; } # This section is lexicographically sorted. + +# AS_BOX(MESSAGE, [FRAME-CHARACTER = `=']) +# ---------------------------------------- +# Output MESSAGE, a single line text, framed with FRAME-CHARACTER (which +# must not be `/'). +m4_define([AS_BOX], +[AS_LITERAL_IF([$1], + [_AS_BOX_LITERAL($@)], + [_AS_BOX_INDIR($@)])]) + +# _AS_BOX_LITERAL(MESSAGE, [FRAME-CHARACTER = `=']) +# ------------------------------------------------- +m4_define([_AS_BOX_LITERAL], +[cat <<\_ASBOX +m4_patsubst([$1], [.], m4_if([$2], [], [[=]], [[$2]])) +$1 +m4_patsubst([$1], [.], m4_if([$2], [], [[=]], [[$2]])) +_ASBOX]) + +# _AS_BOX_INDIR(MESSAGE, [FRAME-CHARACTER = `=']) +# ----------------------------------------------- +m4_define([_AS_BOX_INDIR], +[sed 'h;s/./m4_default([$2], [=])/g;p;x;p;x' <<_ASBOX +$1 +_ASBOX]) + + # AS_LITERAL_IF(EXPRESSION, IF-LITERAL, IF-NOT-LITERAL) # ----------------------------------------------------- # If EXPRESSION has shell indirections ($var or `expr`), expand diff --git a/m4sh.m4 b/m4sh.m4 index f81ad082..9a2f65aa 100644 --- a/m4sh.m4 +++ b/m4sh.m4 @@ -314,6 +314,33 @@ done; } # This section is lexicographically sorted. + +# AS_BOX(MESSAGE, [FRAME-CHARACTER = `=']) +# ---------------------------------------- +# Output MESSAGE, a single line text, framed with FRAME-CHARACTER (which +# must not be `/'). +m4_define([AS_BOX], +[AS_LITERAL_IF([$1], + [_AS_BOX_LITERAL($@)], + [_AS_BOX_INDIR($@)])]) + +# _AS_BOX_LITERAL(MESSAGE, [FRAME-CHARACTER = `=']) +# ------------------------------------------------- +m4_define([_AS_BOX_LITERAL], +[cat <<\_ASBOX +m4_patsubst([$1], [.], m4_if([$2], [], [[=]], [[$2]])) +$1 +m4_patsubst([$1], [.], m4_if([$2], [], [[=]], [[$2]])) +_ASBOX]) + +# _AS_BOX_INDIR(MESSAGE, [FRAME-CHARACTER = `=']) +# ----------------------------------------------- +m4_define([_AS_BOX_INDIR], +[sed 'h;s/./m4_default([$2], [=])/g;p;x;p;x' <<_ASBOX +$1 +_ASBOX]) + + # AS_LITERAL_IF(EXPRESSION, IF-LITERAL, IF-NOT-LITERAL) # ----------------------------------------------------- # If EXPRESSION has shell indirections ($var or `expr`), expand diff --git a/tests/atgeneral.m4 b/tests/atgeneral.m4 index 84b1d9d6..5b8f13e9 100644 --- a/tests/atgeneral.m4 +++ b/tests/atgeneral.m4 @@ -192,15 +192,9 @@ fi # over files, the full test suite cleans up both before and after test groups. if $1 --version | grep "$at_package.*$at_version" >/dev/null; then - at_banner="Testing suite for $at_package, version $at_version" - at_dashes=`echo $at_banner | sed s/./=/g` - echo "$at_dashes" - echo "$at_banner" - echo "$at_dashes" + AS_BOX([Testing suite for $at_package, version $at_version]) else - echo '=======================================================' - echo 'ERROR: Not using the proper version, no tests performed' - echo '=======================================================' + AS_BOX([ERROR: Not using the proper version, no tests performed]) exit 1 fi @@ -277,11 +271,7 @@ elif test $at_debug = false; then at_banner="ERROR: Suite unsuccessful, $at_fail_count of $at_test_count tests failed" fi fi -at_dashes=`echo $at_banner | sed s/./=/g` -echo -echo "$at_dashes" -echo "$at_banner" -echo "$at_dashes" +AS_BOX($at_banner) if test $at_debug = false && test -n "$at_failed_list"; then echo