]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Use new AS_LITERAL_IF argument when appropriate.
authorEric Blake <eblake@redhat.com>
Sat, 27 Feb 2010 18:43:21 +0000 (11:43 -0700)
committerEric Blake <eblake@redhat.com>
Fri, 2 Jul 2010 18:10:50 +0000 (12:10 -0600)
* 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.

Signed-off-by: Eric Blake <eblake@redhat.com>
ChangeLog
lib/m4sugar/m4sh.m4

index df9424ee012d9b6fb33303b54d4d6be5a55c3c7d..39c24777fe6e775438356f1e58e4479862e28fb9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 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.
index d218eb29323addf7f6d2c31310801bb6ad714623..8c01cc9472be36626ac141676ece589ee0b5e58e 100644 (file)
@@ -1964,7 +1964,9 @@ m4_define([AS_VAR_IF],
 [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
@@ -2029,7 +2031,7 @@ m4_pushdef([$1], [$as_[$1]])],
 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)
@@ -2047,7 +2049,8 @@ m4_define([AS_VAR_SET_IF],
 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])])
 
 
 ## -------------------- ##