[Top][All Lists]
[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
- [PATCH 0/7] AS_LITERAL_IF speedups, Eric Blake, 2010/07/02
- [PATCH 1/7] Optimize AC_DEFINE., Eric Blake, 2010/07/02
- [PATCH 5/7] Add tests for AS_BOX., Eric Blake, 2010/07/02
- [PATCH 2/7] Add AS_LITERAL_WORD_IF., Eric Blake, 2010/07/02
- [PATCH 6/7] Use new AS_LITERAL_IF argument when appropriate.,
Eric Blake <=
- [PATCH 7/7] Optimize AS_BOX., Eric Blake, 2010/07/02
- [PATCH 3/7] Use AS_LITERAL_WORD_IF as appropriate., Eric Blake, 2010/07/02
- [PATCH 4/7] Add optional argument to AS_LITERAL_IF., Eric Blake, 2010/07/02