+2006-06-19 Paul Eggert <eggert@cs.ucla.edu>
+ and Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * NEWS: Document that m4wrap/m4_wrap might not be LIFO.
+ * doc/autoconf.texi (): Likewise.
+ Rework example of m4wrap token-pasting trouble so that it doesn't
+ care whether it's LIFO or FIFO.
+ Fix some "contrary to"s that are awkward in English.
+
2006-06-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/autoconf/types.m4 (_AC_TYPE_INT): Set `$ac_cv_c_int$1_t'
@code{HAVE_FNMATCH}. Detect common implementation bugs, for example,
the bugs in Solaris 2.4.
-Note that for historical reasons, contrary to the other specific
+Unlike the other specific
@code{AC_FUNC} macros, @code{AC_FUNC_FNMATCH} does not replace a
-broken/missing @code{fnmatch}. See @code{AC_REPLACE_FNMATCH} below.
+broken/missing @code{fnmatch}. This is for historical reasons.
+See @code{AC_REPLACE_FNMATCH} below.
@end defmac
@defmac AC_FUNC_FNMATCH_GNU
Produce a frozen state file. @command{autom4te} freezing is stricter
than M4's: it must produce no warnings, and no output other than empty
lines (a line with white space is @emph{not} empty) and comments
-(starting with @samp{#}). Please, note that contrary to @command{m4},
-this options takes no argument:
+(starting with @samp{#}). Unlike @command{m4}'s similarly-named option,
+this option takes no argument:
@example
autom4te 1.m4 2.m4 3.m4 --freeze --output=3.m4f
@defmac m4_defn (@var{macro})
@msindex{defn}
-Contrary to the M4 builtin, this macro fails if @var{macro} is not
+Unlike the M4 builtin, this macro fails if @var{macro} is not
defined. See @code{m4_undefine}.
@end defmac
@defmac m4_popdef (@var{macro})
@msindex{popdef}
-Contrary to the M4 builtin, this macro fails if @var{macro} is not
+Unlike the M4 builtin, this macro fails if @var{macro} is not
defined. See @code{m4_undefine}.
@end defmac
@msindex{wrap}
This macro corresponds to @code{m4wrap}.
-You are encouraged to end @var{text} with @samp{[]}, so that there are
-no risks that two consecutive invocations of @code{m4_wrap} result in an
-unexpected pasting of tokens, as in
+Posix requires arguments of multiple @code{m4wrap} calls to be
+reprocessed at @acronym{EOF} in the same order as the original calls.
+@acronym{GNU} M4 versions through 1.4.x, however, reprocess them in
+reverse order. Your code should not depend on the order.
+
+You are encouraged to end @var{text} with @samp{[]}, to avoid unexpected
+token pasting between consecutive invocations of @code{m4_wrap}, as in:
@example
-m4_define([foo], [Foo])
-m4_define([bar], [Bar])
-m4_define([foobar], [FOOBAR])
-m4_wrap([bar])
+m4_define([foo], [bar])
+m4_define([foofoo], [OUCH])
+m4_wrap([foo])
m4_wrap([foo])
-@result{}FOOBAR
+@result{}OUCH
@end example
@end defmac
@defmac m4_undefine (@var{macro})
@msindex{undefine}
-Contrary to the M4 builtin, this macro fails if @var{macro} is not
+Unlike the M4 builtin, this macro fails if @var{macro} is not
defined. Use
@example