+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.
# -------------------
# 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)
# -------------
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