autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 6/7] Use new AS_LITERAL_IF argument when appropriate.


From: Eric Blake
Subject: [PATCH 6/7] Use new AS_LITERAL_IF argument when appropriate.
Date: Fri, 2 Jul 2010 13:37:51 -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 <address@hidden>
---
 ChangeLog           |    6 ++++++
 lib/m4sugar/m4sh.m4 |    9 ++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index df9424e..39c2477 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2010-07-02  Eric Blake  <address@hidden>

+       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@&address@hidden): New test.
        * tests/m4sh.at (AS@&address@hidden): Likewise.
diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
index d218eb2..8c01cc9 100644
--- a/lib/m4sugar/m4sh.m4
+++ b/lib/m4sugar/m4sh.m4
@@ -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])])


 ## -------------------- ##
-- 
1.7.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]