]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Fix yesterday's regression in m4_wrap([$1]).
authorEric Blake <ebb9@byu.net>
Wed, 12 Mar 2008 02:05:49 +0000 (20:05 -0600)
committerEric Blake <ebb9@byu.net>
Wed, 12 Mar 2008 02:05:49 +0000 (20:05 -0600)
* lib/m4sugar/m4sugar.m4 (_m4_wrap): Don't directly invoke wrapped
text, since it may contain text that looks like parameters.
* tests/m4sh.at (AS@&t@_INIT cleanup): Enhance test.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
lib/m4sugar/m4sugar.m4
tests/m4sh.at

index c6cc1e759ffea68236ccb0711557a1c7ad4eb384..2892f571a9c21c032c66d609d86a151fb7d6060d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-03-12  Eric Blake  <ebb9@byu.net>
+
+       Fix yesterday's regression in m4_wrap([$1]).
+       * lib/m4sugar/m4sugar.m4 (_m4_wrap): Don't directly invoke wrapped
+       text, since it may contain text that looks like parameters.
+       * tests/m4sh.at (AS@&t@_INIT cleanup): Enhance test.
+
 2008-03-11  Eric Blake  <ebb9@byu.net>
 
        Improve error messages for common testsuite bugs.
index 9fc722751fe9673b3bdbca729748bc0944b050b8..e755f98ab86413111d81acda596748a0c8d73d5b 100644 (file)
@@ -611,11 +611,12 @@ m4_define([m4_undefine],
 # -------------------
 # Helper macro for m4_wrap and m4_wrap_lifo.  Allows nested calls to
 # m4_wrap within wrapped text.
+# Skip m4_defn and m4_popdef for speed.
 m4_define([_m4_wrap],
 [m4_ifdef([$0_text],
          [m4_define([$0_text], [$1]m4_builtin([defn], [$0_text])[$2])],
-         [m4_builtin([m4wrap], [$0_text(m4_builtin([popdef],
-  [$0_text]))])m4_define([$0_text], [$1$2])])])
+         [m4_builtin([m4wrap], [m4_unquote(m4_builtin([defn],
+  [$0_text])m4_builtin([popdef], [$0_text]))])m4_define([$0_text], [$1$2])])])
 
 # m4_wrap(TEXT)
 # -------------
index dc50942aa5f71be9e9f18b506824f710f5ffcaa3..726a23e7bbc2409854ec4cda362cac135b9537d6 100644 (file)
@@ -776,8 +776,10 @@ AS_INIT
 dnl Registered after AS_INIT's cleanups, thus goes to KILL diversion
 m4_wrap([echo cleanup 2
 dnl However, nested wraps and diversions can still be used
+dnl Also, test wrapping text that looks like parameter reference
 m4_wrap([echo cleanup 3
-m4_divert_text([M4SH-INIT], [echo prep 4
+m4_divert_text([M4SH-INIT], [m4_define([foo], [$1])dnl
+echo prep foo([4])
 ])])])
 dnl Registered before AS_INIT's cleanups
 m4_wrap_lifo([echo cleanup 5