]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Avoid some regex uses.
authorEric Blake <ebb9@byu.net>
Fri, 7 Nov 2008 14:11:01 +0000 (07:11 -0700)
committerEric Blake <ebb9@byu.net>
Mon, 10 Nov 2008 18:38:41 +0000 (11:38 -0700)
* lib/autoconf/general.m4 (_AC_DEFINE_Q): Use m4_format rather
than m4_bpatsubst to grab string prefix.
* lib/autoconf/status.m4 (_AC_CONFIG_REGISTER)
(_AC_CONFIG_REGISTER_DEST, AC_CONFIG_SUBDIRS): Likewise.
(_AC_FILE_DEPENDENCY_TRACE_COLON): Use m4_translit instead of
m4_bpatsubst to change bytes.
(_AC_CONFIG_DEPENDENCY_DEFAULT): Use m4_index rather than
m4_bmatch to find byte.
(_AC_CONFIG_COMPUTE_DEST): New helper macro.

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
lib/autoconf/general.m4
lib/autoconf/status.m4

index 35c0c656e1c21217ce6db104a386905d4df9bd26..d8c6c42f1026f18b481d2893b8573ea0d52646dd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2008-11-10  Eric Blake  <ebb9@byu.net>
 
+       Avoid some regex uses.
+       * lib/autoconf/general.m4 (_AC_DEFINE_Q): Use m4_format rather
+       than m4_bpatsubst to grab string prefix.
+       * lib/autoconf/status.m4 (_AC_CONFIG_REGISTER)
+       (_AC_CONFIG_REGISTER_DEST, AC_CONFIG_SUBDIRS): Likewise.
+       (_AC_FILE_DEPENDENCY_TRACE_COLON): Use m4_translit instead of
+       m4_bpatsubst to change bytes.
+       (_AC_CONFIG_DEPENDENCY_DEFAULT): Use m4_index rather than
+       m4_bmatch to find byte.
+       (_AC_CONFIG_COMPUTE_DEST): New helper macro.
+
        Use more efficient macros in AC_CONFIG_SUBDIRS.
        * lib/autoconf/status.m4 (_AC_CONFIG_FOOS, AC_CONFIG_SUBDIRS): Use
        m4_map_args_w.
index 6fdff9dfd8a1fe42f3d1edaf58408e07f3c32963..2c184fc4d984f88550aa3b530abef88ebc4ae490 100644 (file)
@@ -2073,22 +2073,22 @@ m4_define([AC_DEFINE_UNQUOTED], [_AC_DEFINE_Q([], $@)])
 # -----------------------------------------------------
 # Internal function that performs common elements of AC_DEFINE{,_UNQUOTED}.
 #
-# m4_index is roughly 5 to 8 times faster than m4_bpatsubst, so only
-# use the regex when necessary.  AC_name is defined with over-quotation,
-# so that we can avoid m4_defn.
+# m4_index is roughly 5 to 8 times faster than m4_bpatsubst, so we use
+# m4_format rather than regex to grab prefix up to first ().  AC_name
+# is defined with over-quotation, so that we can avoid m4_defn; this
+# is only safe because the name should not contain $.
 m4_define([_AC_DEFINE_Q],
-[m4_pushdef([AC_name], m4_if(m4_index([$2], [(]), [-1], [[[$2]]],
-                            [m4_bpatsubst([[[$2]]], [(.*)])]))dnl
-AC_DEFINE_TRACE(AC_name)dnl
-m4_cond([m4_index([$3], [
+[m4_pushdef([AC_name], m4_format([[[%.*s]]], m4_index([$2], [(]), [$2]))]dnl
+[AC_DEFINE_TRACE(AC_name)]dnl
+[m4_cond([m4_index([$3], [
 ])], [-1], [],
        [AS_LITERAL_IF([$3], [m4_bregexp([[$3]], [[^\\]
 ], [-])])], [], [],
        [m4_warn([syntax], [AC_DEFINE]m4_ifval([$1], [], [[_UNQUOTED]])dnl
-[: `$3' is not a valid preprocessor define value])])dnl
-m4_ifval([$4], [AH_TEMPLATE(AC_name, [$4])])dnl
-m4_popdef([AC_name])dnl
-cat >>confdefs.h <<$1_ACEOF
+[: `$3' is not a valid preprocessor define value])])]dnl
+[m4_ifval([$4], [AH_TEMPLATE(AC_name, [$4])])]dnl
+[_m4_popdef([AC_name])]dnl
+[cat >>confdefs.h <<$1_ACEOF
 [@%:@define] $2 m4_if([$#], 2, 1, [$3], [], [/**/], [$3])
 _ACEOF
 ])
index f8e046f88ef16947408e2b4acd8c40772f329f07..388b90f263f18206379757f63ca467e6a5ce81f4 100644 (file)
@@ -176,8 +176,7 @@ m4_define([AC_FILE_DEPENDENCY_TRACE], [])
 # Declare that DEST depends upon SOURCE1 etc.
 #
 m4_define([_AC_FILE_DEPENDENCY_TRACE_COLON],
-[AC_FILE_DEPENDENCY_TRACE(m4_bpatsubst([$1], [:], [,]))dnl
-])
+[AC_FILE_DEPENDENCY_TRACE(m4_translit([$1], [:], [,]))])
 
 
 # _AC_CONFIG_DEPENDENCY(MODE, DEST[:SOURCE1...])
@@ -205,12 +204,11 @@ m4_define([_AC_CONFIG_DEPENDENCY],
 #    (We get to this case from the obsolete AC_LINK_FILES, for example.)
 #
 m4_define([_AC_CONFIG_DEPENDENCY_DEFAULT],
-[m4_bmatch([$2], [:], [],
+[m4_if(m4_index([$2], [:]), [-1],
           [m4_if([$1], [LINKS],
                  [AS_LITERAL_IF([$2],
                    [m4_fatal([Invalid AC_CONFIG_LINKS tag: `$2'])])],
-                 [:$2.in])])dnl
-])
+                 [:$2.in])])])
 
 
 # _AC_CONFIG_UNIQUE(MODE, DEST)
@@ -246,6 +244,12 @@ m4_define([_AC_CONFIG_FOOS],
 [m4_if([$1], [COMMANDS], [$2], [m4_normalize([$2])])"
 ])
 
+# _AC_CONFIG_COMPUTE_DEST(STRING)
+# -------------------------------
+# Compute the DEST from STRING by stripping any : and following
+# characters.
+m4_define([_AC_CONFIG_COMPUTE_DEST],
+[m4_format([[%.*s]], m4_index([$1], [:]), [$1])])
 
 # _AC_CONFIG_REGISTER(MODE, TAG, [COMMANDS])
 # ------------------------------------------
@@ -254,9 +258,9 @@ m4_define([_AC_CONFIG_FOOS],
 m4_define([_AC_CONFIG_REGISTER],
 [m4_if([$1], [COMMANDS],
        [],
-       [_AC_CONFIG_DEPENDENCY([$1], [$2])])dnl
-_AC_CONFIG_REGISTER_DEST([$1], [$2], m4_bpatsubst([[$2]], [:.*\(.\)$], [\1]), [$3])dnl
-])
+       [_AC_CONFIG_DEPENDENCY([$1], [$2])])]dnl
+[_AC_CONFIG_REGISTER_DEST([$1], [$2],
+  _AC_CONFIG_COMPUTE_DEST([$2]), [$3])])
 
 
 # _AC_CONFIG_REGISTER_DEST(MODE, TAG, DEST, [COMMANDS])
@@ -281,15 +285,14 @@ dnl Recognize TAG as an argument to config.status:
 dnl
 [m4_append([_AC_LIST_TAGS],
 [    "$3") CONFIG_$1="$CONFIG_$1 $2" ;;
-])dnl
+])]dnl
 dnl
 dnl Register the associated commands, if any:
 dnl
-m4_ifval([$4],
+[m4_ifval([$4],
 [m4_append([_AC_LIST_TAG_COMMANDS],
-[    "$3":]m4_bpatsubst([$1], [^\(.\).*$], [\1])[) $4 ;;
-])])dnl
-])# _AC_CONFIG_REGISTER_DEST
+[    "$3":]m4_format([[%.1s]], [$1])[) $4 ;;
+])])])# _AC_CONFIG_REGISTER_DEST
 
 
 
@@ -1101,7 +1104,7 @@ AC_DEFUN([AC_CONFIG_SUBDIRS],
 [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])]dnl
 [AC_REQUIRE([AC_DISABLE_OPTION_CHECKING])]dnl
 [m4_map_args_w([$1], [_AC_CONFIG_UNIQUE([SUBDIRS],
-  m4_bpatsubst(], [, [:.*]))])]dnl
+  _AC_CONFIG_COMPUTE_DEST(], [))])]dnl
 [m4_append([_AC_LIST_SUBDIRS], [$1], [
 ])]dnl
 [AS_LITERAL_IF([$1], [],