From: Eric Blake Date: Mon, 17 Nov 2008 13:20:27 +0000 (-0700) Subject: Detect empty list in AS_FOR. X-Git-Tag: v2.63b~99 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7ad7019cf702c136869beef91b65bceae7c7dbb3;p=thirdparty%2Fautoconf.git Detect empty list in AS_FOR. * lib/m4sugar/m4sh.m4 (AS_FOR): Handle iteration over $@ properly. * tests/m4sh.at (AS@&t@_FOR): Enhance test to catch it. Reported by Paolo Bonzini. Signed-off-by: Eric Blake --- diff --git a/ChangeLog b/ChangeLog index bf0e8712f..41f97d338 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-11-17 Eric Blake + + Detect empty list in AS_FOR. + * lib/m4sugar/m4sh.m4 (AS_FOR): Handle iteration over $@ + properly. + * tests/m4sh.at (AS@&t@_FOR): Enhance test to catch it. + Reported by Paolo Bonzini. + 2008-11-16 Ralf Wildenhues Use a different workaround for an automake quirk. diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4 index 2c592c612..4da8f3781 100644 --- a/lib/m4sugar/m4sh.m4 +++ b/lib/m4sugar/m4sh.m4 @@ -552,7 +552,7 @@ m4_define([AS_EXIT], # substitution, shell quoting, globs, or quadrigraphs). Inline the # m4_defn for speed. m4_defun([AS_FOR], -[m4_pushdef([$1], m4_if(m4_translit([$3], ]dnl +[m4_pushdef([$1], m4_if([$3], [], [[$$2]], m4_translit([$3], ]dnl m4_dquote(_m4_defn([m4_cr_symbols2]))[[%+=:,./-]), [], [[$3]], [[$$2]]))]dnl [for $2[]m4_ifval([$3], [ in $3]) do diff --git a/tests/m4sh.at b/tests/m4sh.at index 383d8211d..96e0452db 100644 --- a/tests/m4sh.at +++ b/tests/m4sh.at @@ -934,7 +934,7 @@ AS_FOR([m4var], [shvar], [\'], # Syntax checks: cope with empty arguments. set f g AS_FOR([], [shvar], [], -[echo "$shvar"]) +[echo "m4_defn([]) $shvar"]) rm -f file AS_FOR([], [shvar], [`touch file`]) test -f file || exit 1 @@ -963,8 +963,8 @@ e e d e d e $list $list ' ' -f -g +f f +g g h j ]])