2010-07-02 Eric Blake <eblake@redhat.com>
+ Use new AS_LITERAL_IF argument when appropriate.
+ * lib/m4sugar/m4sh.m4 (AS_VAR_SET): Reduce m4 overhead.
+ (AS_VAR_IF, AS_VAR_TEST_SET): Provide shorter variant for simple
+ references.
+ Suggested by Bruno Haible.
+
Add tests for AS_BOX.
* tests/m4sugar.at (m4@&t@_text_box): New test.
* tests/m4sh.at (AS@&t@_BOX): Likewise.
[AS_LITERAL_WORD_IF([$1],
[AS_IF([test "x$$1" = x""$2]],
[AS_VAR_COPY([as_val], [$1])
- AS_IF([test "x$as_val" = x""$2]]), [$3], [$4])])
+ AS_IF([test "x$as_val" = x""$2]],
+ [AS_IF([eval test \"x\$"$1"\" = x"_AS_ESCAPE([$2], [`], [\"$])"]]),
+[$3], [$4])])
# AS_VAR_PUSHDEF and AS_VAR_POPDEF
m4_define([AS_VAR_SET],
[AS_LITERAL_WORD_IF([$1],
[$1=$2],
- [eval "$1=AS_ESCAPE([$2])"])])
+ [eval "$1=_AS_ESCAPE([$2], [`], [\"$])"])])
# AS_VAR_SET_IF(VARIABLE, IF-TRUE, IF-FALSE)
m4_define([AS_VAR_TEST_SET],
[AS_LITERAL_WORD_IF([$1],
[test "${$1+set}" = set],
- [{ as_var=$1; eval "test \"\${$as_var+set}\" = set"; }])])
+ [{ as_var=$1; eval "test \"\${$as_var+set}\" = set"; }],
+ [eval "test \"\${$1+set}\"" = set])])
## -------------------- ##