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.

Signed-off-by: Eric Blake <ebb9@byu.net>
This commit is contained in:
Eric Blake 2008-11-07 07:11:01 -07:00
parent 3763dba27e
commit 40f1a994e2
3 changed files with 39 additions and 25 deletions

View File

@ -1,5 +1,16 @@
2008-11-10 Eric Blake <ebb9@byu.net> 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. Use more efficient macros in AC_CONFIG_SUBDIRS.
* lib/autoconf/status.m4 (_AC_CONFIG_FOOS, AC_CONFIG_SUBDIRS): Use * lib/autoconf/status.m4 (_AC_CONFIG_FOOS, AC_CONFIG_SUBDIRS): Use
m4_map_args_w. m4_map_args_w.

View File

@ -2073,22 +2073,22 @@ m4_define([AC_DEFINE_UNQUOTED], [_AC_DEFINE_Q([], $@)])
# ----------------------------------------------------- # -----------------------------------------------------
# Internal function that performs common elements of AC_DEFINE{,_UNQUOTED}. # Internal function that performs common elements of AC_DEFINE{,_UNQUOTED}.
# #
# m4_index is roughly 5 to 8 times faster than m4_bpatsubst, so only # m4_index is roughly 5 to 8 times faster than m4_bpatsubst, so we use
# use the regex when necessary. AC_name is defined with over-quotation, # m4_format rather than regex to grab prefix up to first (). AC_name
# so that we can avoid m4_defn. # 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_define([_AC_DEFINE_Q],
[m4_pushdef([AC_name], m4_if(m4_index([$2], [(]), [-1], [[[$2]]], [m4_pushdef([AC_name], m4_format([[[%.*s]]], m4_index([$2], [(]), [$2]))]dnl
[m4_bpatsubst([[[$2]]], [(.*)])]))dnl [AC_DEFINE_TRACE(AC_name)]dnl
AC_DEFINE_TRACE(AC_name)dnl [m4_cond([m4_index([$3], [
m4_cond([m4_index([$3], [
])], [-1], [], ])], [-1], [],
[AS_LITERAL_IF([$3], [m4_bregexp([[$3]], [[^\\] [AS_LITERAL_IF([$3], [m4_bregexp([[$3]], [[^\\]
], [-])])], [], [], ], [-])])], [], [],
[m4_warn([syntax], [AC_DEFINE]m4_ifval([$1], [], [[_UNQUOTED]])dnl [m4_warn([syntax], [AC_DEFINE]m4_ifval([$1], [], [[_UNQUOTED]])dnl
[: `$3' is not a valid preprocessor define value])])dnl [: `$3' is not a valid preprocessor define value])])]dnl
m4_ifval([$4], [AH_TEMPLATE(AC_name, [$4])])dnl [m4_ifval([$4], [AH_TEMPLATE(AC_name, [$4])])]dnl
m4_popdef([AC_name])dnl [_m4_popdef([AC_name])]dnl
cat >>confdefs.h <<$1_ACEOF [cat >>confdefs.h <<$1_ACEOF
[@%:@define] $2 m4_if([$#], 2, 1, [$3], [], [/**/], [$3]) [@%:@define] $2 m4_if([$#], 2, 1, [$3], [], [/**/], [$3])
_ACEOF _ACEOF
]) ])

View File

@ -176,8 +176,7 @@ m4_define([AC_FILE_DEPENDENCY_TRACE], [])
# Declare that DEST depends upon SOURCE1 etc. # Declare that DEST depends upon SOURCE1 etc.
# #
m4_define([_AC_FILE_DEPENDENCY_TRACE_COLON], 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...]) # _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.) # (We get to this case from the obsolete AC_LINK_FILES, for example.)
# #
m4_define([_AC_CONFIG_DEPENDENCY_DEFAULT], m4_define([_AC_CONFIG_DEPENDENCY_DEFAULT],
[m4_bmatch([$2], [:], [], [m4_if(m4_index([$2], [:]), [-1],
[m4_if([$1], [LINKS], [m4_if([$1], [LINKS],
[AS_LITERAL_IF([$2], [AS_LITERAL_IF([$2],
[m4_fatal([Invalid AC_CONFIG_LINKS tag: `$2'])])], [m4_fatal([Invalid AC_CONFIG_LINKS tag: `$2'])])],
[:$2.in])])dnl [:$2.in])])])
])
# _AC_CONFIG_UNIQUE(MODE, DEST) # _AC_CONFIG_UNIQUE(MODE, DEST)
@ -246,6 +244,12 @@ m4_define([_AC_CONFIG_FOOS],
[m4_if([$1], [COMMANDS], [$2], [m4_normalize([$2])])" [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]) # _AC_CONFIG_REGISTER(MODE, TAG, [COMMANDS])
# ------------------------------------------ # ------------------------------------------
@ -254,9 +258,9 @@ m4_define([_AC_CONFIG_FOOS],
m4_define([_AC_CONFIG_REGISTER], m4_define([_AC_CONFIG_REGISTER],
[m4_if([$1], [COMMANDS], [m4_if([$1], [COMMANDS],
[], [],
[_AC_CONFIG_DEPENDENCY([$1], [$2])])dnl [_AC_CONFIG_DEPENDENCY([$1], [$2])])]dnl
_AC_CONFIG_REGISTER_DEST([$1], [$2], m4_bpatsubst([[$2]], [:.*\(.\)$], [\1]), [$3])dnl [_AC_CONFIG_REGISTER_DEST([$1], [$2],
]) _AC_CONFIG_COMPUTE_DEST([$2]), [$3])])
# _AC_CONFIG_REGISTER_DEST(MODE, TAG, DEST, [COMMANDS]) # _AC_CONFIG_REGISTER_DEST(MODE, TAG, DEST, [COMMANDS])
@ -281,15 +285,14 @@ dnl Recognize TAG as an argument to config.status:
dnl dnl
[m4_append([_AC_LIST_TAGS], [m4_append([_AC_LIST_TAGS],
[ "$3") CONFIG_$1="$CONFIG_$1 $2" ;; [ "$3") CONFIG_$1="$CONFIG_$1 $2" ;;
])dnl ])]dnl
dnl dnl
dnl Register the associated commands, if any: dnl Register the associated commands, if any:
dnl dnl
m4_ifval([$4], [m4_ifval([$4],
[m4_append([_AC_LIST_TAG_COMMANDS], [m4_append([_AC_LIST_TAG_COMMANDS],
[ "$3":]m4_bpatsubst([$1], [^\(.\).*$], [\1])[) $4 ;; [ "$3":]m4_format([[%.1s]], [$1])[) $4 ;;
])])dnl ])])])# _AC_CONFIG_REGISTER_DEST
])# _AC_CONFIG_REGISTER_DEST
@ -1101,7 +1104,7 @@ AC_DEFUN([AC_CONFIG_SUBDIRS],
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])]dnl [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])]dnl
[AC_REQUIRE([AC_DISABLE_OPTION_CHECKING])]dnl [AC_REQUIRE([AC_DISABLE_OPTION_CHECKING])]dnl
[m4_map_args_w([$1], [_AC_CONFIG_UNIQUE([SUBDIRS], [m4_map_args_w([$1], [_AC_CONFIG_UNIQUE([SUBDIRS],
m4_bpatsubst(], [, [:.*]))])]dnl _AC_CONFIG_COMPUTE_DEST(], [))])]dnl
[m4_append([_AC_LIST_SUBDIRS], [$1], [ [m4_append([_AC_LIST_SUBDIRS], [$1], [
])]dnl ])]dnl
[AS_LITERAL_IF([$1], [], [AS_LITERAL_IF([$1], [],