* Eric Blake wrote on Thu, Aug 26, 2010 at 01:18:21AM CEST: > --- a/lib/m4sugar/m4sh.m4 > +++ b/lib/m4sugar/m4sh.m4
> @@ -1981,10 +1987,12 @@ m4_define([AS_VAR_GET], > # Polymorphic, and avoids sh expansion error upon interrupt or term signal. > m4_define([AS_VAR_IF], > [AS_LITERAL_WORD_IF([$1], > - [AS_IF([test "x$$1" = x""$2]], > + [AS_IF(m4_ifval([$2], [[test "x$$1" = x$2]], [[${$1:+false} :]])], > [AS_VAR_COPY([as_val], [$1]) > - AS_IF([test "x$as_val" = x""$2]], > - [AS_IF([eval test \"x\$"$1"\" = x"_AS_ESCAPE([$2], [`], [\"$])"]]), > + AS_IF(m4_ifval([$2], [[test "x$as_val" = x$2]], [[${as_val:+false} :]])], > + [AS_IF(m4_ifval([$2], > + [[eval test \"x\$"$1"\" = x"_AS_ESCAPE([$2], [`], [\"$])"]], > + [[eval \${$1:+false} :]])]), > [$3], [$4])]) This looks like it's also changing the number of times the macro arguments are evaluated. I wonder if there is user code relying on that ... Cheers, Ralf