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>
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.

View 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
])

View 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], [],