* lib/autoconf/autoconf.m4, lib/autoconf/general.m4,

* lib/autoconf/libs.m4, lib/autoconf/status.m4,
* lib/autoconf/types.m4, lib/autotest/general.m4,
* lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4, tests/atspecific.m4,
* tests/torture.at: Rename m4_regexp, m4_patsubst, and m4_match to
m4_bregexp, m4_bpatsubst, and m4_bmatch.
* doc/autoconf.texi (Redefined M4 Macros): Adjust.
This commit is contained in:
Akim Demaille 2001-10-08 08:22:33 +00:00
parent dda641324f
commit 141b85d788
12 changed files with 106 additions and 81 deletions

View File

@ -1,3 +1,14 @@
2001-10-08 Akim Demaille <akim@epita.fr>
* lib/autoconf/autoconf.m4, lib/autoconf/general.m4,
* lib/autoconf/libs.m4, lib/autoconf/status.m4,
* lib/autoconf/types.m4, lib/autotest/general.m4,
* lib/m4sugar/m4sh.m4, lib/m4sugar/m4sugar.m4, tests/atspecific.m4,
* tests/torture.at: Rename m4_regexp, m4_patsubst, and m4_match to
m4_bregexp, m4_bpatsubst, and m4_bmatch.
* doc/autoconf.texi (Redefined M4 Macros): Adjust.
2001-10-08 Akim Demaille <akim@epita.fr>
* lib/m4sugar/m4sh.m4: Use AS_REQUIRE.

View File

@ -6789,12 +6789,26 @@ m4_ifdef([@var{macro}], [m4_undefine([@var{macro}])])
to recover the behavior of the builtin.
@end defmac
@defmac m4_bpatsubst (@var{string}, @var{regexp}, @ovar{replacement})
@msindex bpatsubst
This macro corresponds to @code{patsubst}. The name @code{m4_patsubst}
is kept for future versions of M4sh, on top of @sc{gnu} M4 which will
provide extended regular expression syntax via @code{epatsubst}.
@end defmac
@defmac m4_popdef (@var{macro})
@msindex defn
Contrary to the M4 builtin, this macro fails if @var{macro} is not
defined. See @code{m4_undefine}.
@end defmac
@defmac m4_bregexp (@var{string}, @var{regexp}, @ovar{replacement})
@msindex bregexp
This macro corresponds to @code{regexp}. The name @code{m4_regexp}
is kept for future versions of M4sh, on top of @sc{gnu} M4 which will
provide extended regular expression syntax via @code{eregexp}.
@end defmac
@defmac m4_wrap (@var{text})
@msindex m4_wrap
This macro corresponds to @code{m4wrap}.
@ -7302,14 +7316,14 @@ syntax-highlighting editors, from behaving improperly. For instance,
instead of:
@example
m4_patsubst([$1], [$"])
m4_bpatsubst([$1], [$"])
@end example
@noindent
use
@example
m4_patsubst([$1], [$""])
m4_bpatsubst([$1], [$""])
@end example
@noindent
@ -11764,7 +11778,7 @@ sophisticated application like Autoconf, including:
@example
m4_builtin
m4_indir
m4_patsubst
m4_bpatsubst
__file__
__line__
@end example

View File

@ -92,10 +92,10 @@ m4_copy_unm4([m4_incr])
m4_copy_unm4([m4_index])
m4_copy_unm4([m4_indir])
m4_copy_unm4([m4_len])
m4_copy_unm4([m4_patsubst])
m4_copy([m4_bpatsubst], [patsubst])
m4_copy_unm4([m4_popdef])
m4_copy_unm4([m4_pushdef])
m4_copy_unm4([m4_regexp])
m4_copy([m4_bregexp], [regexp])
m4_copy_unm4([m4_sinclude])
m4_copy_unm4([m4_syscmd])
m4_copy_unm4([m4_sysval])

View File

@ -291,7 +291,7 @@ AS_LITERAL_IF([$2], [], [m4_warn([syntax], [AC_INIT: not a literal: $2])])
AS_LITERAL_IF([$3], [], [m4_warn([syntax], [AC_INIT: not a literal: $3])])
m4_define([AC_PACKAGE_NAME], [$1])
m4_define([AC_PACKAGE_TARNAME],
m4_tolower(m4_patsubst([[[$1]]], [GNU ])))
m4_tolower(m4_bpatsubst([[[$1]]], [GNU ])))
m4_define([AC_PACKAGE_VERSION], [$2])
m4_define([AC_PACKAGE_STRING], [$1 $2])
m4_define([AC_PACKAGE_BUGREPORT], [$3])
@ -307,10 +307,10 @@ m4_define([AC_PACKAGE_BUGREPORT], [$3])
# would have not been evaluated. Another solution, a bit fragile,
# would have be to use m4_quote to force an evaluation:
#
# m4_patsubst(m4_quote($1), [^], [# ])
# m4_bpatsubst(m4_quote($1), [^], [# ])
m4_define([AC_COPYRIGHT],
[m4_divert_text([HEADER-COPYRIGHT],
[m4_patsubst([
[m4_bpatsubst([
$1], [^], [@%:@ ])])dnl
m4_divert_text(m4_default([$2], [VERSION_USER]),
[
@ -1159,7 +1159,7 @@ trap 'exit_status=$?
echo
AS_BOX([Cache variables.])
echo
m4_patsubst(m4_patsubst(m4_dquote(m4_defn([_AC_CACHE_DUMP])),
m4_bpatsubst(m4_bpatsubst(m4_dquote(m4_defn([_AC_CACHE_DUMP])),
[^ *\(#.*\)?
]),
['], ['"'"'])
@ -1260,8 +1260,8 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]]])dnl
m4_divert_once([HELP_ENABLE], [$2])dnl
# Check whether --enable-$1 or --disable-$1 was given.
if test "[${enable_]m4_patsubst([$1], -, _)+set}" = set; then
enableval="[$enable_]m4_patsubst([$1], -, _)"
if test "[${enable_]m4_bpatsubst([$1], -, _)+set}" = set; then
enableval="[$enable_]m4_bpatsubst([$1], -, _)"
$3
m4_ifvaln([$4], [else
$4])dnl
@ -1288,8 +1288,8 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)]])
m4_divert_once([HELP_WITH], [$2])dnl
# Check whether --with-$1 or --without-$1 was given.
if test "[${with_]m4_patsubst([$1], -, _)+set}" = set; then
withval="[$with_]m4_patsubst([$1], -, _)"
if test "[${with_]m4_bpatsubst([$1], -, _)+set}" = set; then
withval="[$with_]m4_bpatsubst([$1], -, _)"
$3
m4_ifvaln([$4], [else
$4])dnl
@ -1733,7 +1733,7 @@ rm -f confcache[]dnl
# The name of shell var CACHE-ID must contain `_cv_' in order to get saved.
# Should be dnl'ed. Try to catch common mistakes.
m4_define([AC_CACHE_VAL],
[m4_match([$2], [AC_DEFINE],
[m4_bmatch([$2], [AC_DEFINE],
[AC_DIAGNOSE(syntax,
[$0($1, ...): suspicious presence of an AC_DEFINE in the second argument, ]dnl
[where no actions should be taken])])dnl

View File

@ -152,7 +152,7 @@ m4_define([AH_CHECK_LIB],
# it must be a literal name.
AU_DEFUN([AC_HAVE_LIBRARY],
[m4_pushdef([AC_Lib_Name],
m4_patsubst(m4_patsubst([[$1]],
m4_bpatsubst(m4_bpatsubst([[$1]],
[lib\([^\.]*\)\.a], [\1]),
[-l], []))dnl
AC_CHECK_LIB(AC_Lib_Name, main, [$2], [$3], [$4])dnl

View File

@ -186,7 +186,7 @@ ac_top_srcpath=`cd $1 && cd $ac_top_srcdir && pwd`
# matching. The big problem is then that the active characters should
# be quoted. Currently `+*.' are quoted.
m4_define([AC_CONFIG_IF_MEMBER],
[m4_match($2, [\(^\| \)]m4_re_escape([$1])[\(:\| \|$\)]),
[m4_bmatch($2, [\(^\| \)]m4_re_escape([$1])[\(:\| \|$\)]),
[$3], [$4])])
@ -213,7 +213,7 @@ m4_define([_AC_CONFIG_DEPENDENCY],
m4_define([_AC_CONFIG_DEPENDENCIES],
[m4_divert_push([KILL])
AC_FOREACH([AC_File], [$1],
[_AC_CONFIG_DEPENDENCY(m4_patsubst(AC_File, [:], [,]))])
[_AC_CONFIG_DEPENDENCY(m4_bpatsubst(AC_File, [:], [,]))])
m4_divert_pop([KILL])dnl
])
@ -230,7 +230,7 @@ m4_divert_pop([KILL])dnl
m4_define([_AC_CONFIG_UNIQUE],
[m4_divert_push([KILL])
AC_FOREACH([AC_File], [$1],
[m4_pushdef([AC_Dest], m4_patsubst(AC_File, [:.*]))
[m4_pushdef([AC_Dest], m4_bpatsubst(AC_File, [:.*]))
AC_CONFIG_IF_MEMBER(AC_Dest, [AC_LIST_HEADERS],
[AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_HEADER or AC_CONFIG_HEADERS.])])
AC_CONFIG_IF_MEMBER(AC_Dest, [AC_LIST_LINKS],
@ -282,7 +282,7 @@ m4_append([AC_LIST_COMMANDS], [ $1])
m4_if([$2],,, [AC_FOREACH([AC_Name], [$1],
[m4_append([AC_LIST_COMMANDS_COMMANDS],
[ ]m4_patsubst(AC_Name, [:.*])[ ) $2 ;;
[ ]m4_bpatsubst(AC_Name, [:.*])[ ) $2 ;;
])])])
_AC_CONFIG_COMMANDS_INIT([$3])
m4_divert_pop([KILL])dnl
@ -396,7 +396,7 @@ m4_append([AC_LIST_HEADERS], [ $1])
dnl Register the commands
m4_ifval([$2], [AC_FOREACH([AC_File], [$1],
[m4_append([AC_LIST_HEADERS_COMMANDS],
[ ]m4_patsubst(AC_File, [:.*])[ ) $2 ;;
[ ]m4_bpatsubst(AC_File, [:.*])[ ) $2 ;;
])])])
_AC_CONFIG_COMMANDS_INIT([$3])
m4_divert_pop([KILL])dnl
@ -671,12 +671,12 @@ AC_DEFUN([AC_CONFIG_LINKS],
[m4_divert_push([KILL])
_AC_CONFIG_UNIQUE([$1])
_AC_CONFIG_DEPENDENCIES([$1])
m4_match([$1], [^\.:\| \.:], [m4_fatal([$0: invalid destination: `.'])])
m4_bmatch([$1], [^\.:\| \.:], [m4_fatal([$0: invalid destination: `.'])])
m4_append([AC_LIST_LINKS], [ $1])
dnl Register the commands
m4_ifval([$2], [AC_FOREACH([AC_File], [$1],
[m4_append([AC_LIST_LINKS_COMMANDS],
[ ]m4_patsubst(AC_File, [:.*])[ ) $2 ;;
[ ]m4_bpatsubst(AC_File, [:.*])[ ) $2 ;;
])])])
_AC_CONFIG_COMMANDS_INIT([$3])
m4_divert_pop([KILL])dnl
@ -803,7 +803,7 @@ m4_append([AC_LIST_FILES], [ $1])
dnl Register the commands.
m4_ifval([$2], [AC_FOREACH([AC_File], [$1],
[m4_append([AC_LIST_FILES_COMMANDS],
[ ]m4_patsubst(AC_File, [:.*])[ ) $2 ;;
[ ]m4_bpatsubst(AC_File, [:.*])[ ) $2 ;;
])])])
_AC_CONFIG_COMMANDS_INIT([$3])
m4_divert_pop([KILL])dnl
@ -1425,19 +1425,19 @@ do
case "$ac_config_target" in
# Handling of arguments.
AC_FOREACH([AC_File], AC_LIST_FILES,
[ "m4_patsubst(AC_File, [:.*])" )dnl
[ "m4_bpatsubst(AC_File, [:.*])" )dnl
CONFIG_FILES="$CONFIG_FILES AC_File" ;;
])dnl
AC_FOREACH([AC_File], AC_LIST_LINKS,
[ "m4_patsubst(AC_File, [:.*])" )dnl
[ "m4_bpatsubst(AC_File, [:.*])" )dnl
CONFIG_LINKS="$CONFIG_LINKS AC_File" ;;
])dnl
AC_FOREACH([AC_File], AC_LIST_COMMANDS,
[ "m4_patsubst(AC_File, [:.*])" )dnl
[ "m4_bpatsubst(AC_File, [:.*])" )dnl
CONFIG_COMMANDS="$CONFIG_COMMANDS AC_File" ;;
])dnl
AC_FOREACH([AC_File], AC_LIST_HEADERS,
[ "m4_patsubst(AC_File, [:.*])" )dnl
[ "m4_bpatsubst(AC_File, [:.*])" )dnl
CONFIG_HEADERS="$CONFIG_HEADERS AC_File" ;;
])dnl
*) AC_MSG_ERROR([invalid argument: $ac_config_target]);;

View File

@ -193,7 +193,7 @@ m4_define([_AC_CHECK_TYPE_OLD],
# Because many people have used `off_t' and `size_t' too, they are added
# for better common-useward backward compatibility.
m4_define([_AC_CHECK_TYPE_REPLACEMENT_TYPE_P],
[m4_match([$1],
[m4_bmatch([$1],
[^\(_Bool\|bool\|char\|double\|float\|int\|long\|short\|\(un\)?signed\|[_a-zA-Z][_a-zA-Z0-9]*_t\)[][_a-zA-Z0-9() *]*$],
1, 0)dnl
])# _AC_CHECK_TYPE_REPLACEMENT_TYPE_P
@ -203,7 +203,7 @@ m4_define([_AC_CHECK_TYPE_REPLACEMENT_TYPE_P],
# -----------------------------------
# Return `1' if STRING looks like a C/C++ type.
m4_define([_AC_CHECK_TYPE_MAYBE_TYPE_P],
[m4_match([$1], [^[_a-zA-Z0-9 ]+\([_a-zA-Z0-9() *]\|\[\|\]\)*$],
[m4_bmatch([$1], [^[_a-zA-Z0-9 ]+\([_a-zA-Z0-9() *]\|\[\|\]\)*$],
1, 0)dnl
])# _AC_CHECK_TYPE_MAYBE_TYPE_P
@ -418,16 +418,16 @@ test $ac_cv_sizeof_long_int = 8 &&
AC_DEFUN([AC_CHECK_MEMBER],
[AS_LITERAL_IF([$1], [],
[AC_FATAL([$0: requires literal arguments])])dnl
m4_match([$1], [\.], ,
m4_bmatch([$1], [\.], ,
[m4_fatal([$0: Did not see any dot in `$1'])])dnl
AS_VAR_PUSHDEF([ac_Member], [ac_cv_member_$1])dnl
dnl Extract the aggregate name, and the member name
AC_CACHE_CHECK([for $1], ac_Member,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],
[dnl AGGREGATE ac_aggr;
static m4_patsubst([$1], [\..*]) ac_aggr;
static m4_bpatsubst([$1], [\..*]) ac_aggr;
dnl ac_aggr.MEMBER;
if (ac_aggr.m4_patsubst([$1], [^[^.]*\.]))
if (ac_aggr.m4_bpatsubst([$1], [^[^.]*\.]))
return 0;])],
[AS_VAR_SET(ac_Member, yes)],
[AS_VAR_SET(ac_Member, no)])])
@ -445,9 +445,9 @@ AC_DEFUN([AC_CHECK_MEMBERS],
[m4_foreach([AC_Member], [$1],
[AC_CHECK_MEMBER(AC_Member,
[AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]AC_Member), 1,
[Define if `]m4_patsubst(AC_Member,
[Define if `]m4_bpatsubst(AC_Member,
[^[^.]*\.])[' is
member of `]m4_patsubst(AC_Member, [\..*])['.])
member of `]m4_bpatsubst(AC_Member, [\..*])['.])
$2],
[$3],
[$4])])])

View File

@ -73,7 +73,7 @@ m4_define([_m4_divert(TAIL)], 60)
#
# Gee, we can't use simply
#
# m4_patsubst(__file__, [^.*/\(.*\)], [[\1]])
# m4_bpatsubst(__file__, [^.*/\(.*\)], [[\1]])
#
# since then, since `dnl' doesn't match the pattern, it is returned
# with once quotation level less, so you lose, dammit! And since GNU M4
@ -81,7 +81,7 @@ m4_define([_m4_divert(TAIL)], 60)
# even think about using `?' or `\?'. Bah, `*' will do.
# Pleeeeeeeease, Gary, provide us with dirname and ERE!
m4_define([AT_LINE],
[m4_patsubst(__file__, [^\(.*/\)*\(.*\)], [[\2]]):__line__])
[m4_bpatsubst(__file__, [^\(.*/\)*\(.*\)], [[\2]]):__line__])
# AT_INIT([TESTSUITE-NAME])
@ -681,7 +681,7 @@ m4_define([_AT_CLEANUP_FILE],
# -----------------------
# Declare a list of FILES to clean.
m4_define([AT_CLEANUP_FILES],
[m4_foreach([AT_File], m4_quote(m4_patsubst([$1], [ *], [,])),
[m4_foreach([AT_File], m4_quote(m4_bpatsubst([$1], [ *], [,])),
[_AT_CLEANUP_FILE(AT_File)])])

View File

@ -270,7 +270,7 @@ $as_unset $1 || test "${$1+set}" != set || { $1=$2; export $1; }])
# ---------------------------------
# Escape the CHARS in STRING.
m4_define([AS_ESCAPE],
[m4_patsubst([$1],
[m4_bpatsubst([$1],
m4_ifval([$2], [[\([$2]\)]], [[\([\"$`]\)]]),
[\\\1])])
@ -284,7 +284,7 @@ m4_define([AS_ESCAPE],
# Otherwise it's modern.
# We use two quotes in the pattern to keep highlighting tools at peace.
m4_define([_AS_QUOTE_IFELSE],
[m4_match([$1],
[m4_bmatch([$1],
[\\[\\$]], [$2],
[\\[`""]], [$3],
[$2])])
@ -704,7 +704,7 @@ _ASBOX])
# This is an *approximation*: for instance EXPRESSION = `\$' is
# definitely a literal, but will not be recognized as such.
m4_define([AS_LITERAL_IF],
[m4_match([$1], [[`$]],
[m4_bmatch([$1], [[`$]],
[$3], [$2])])
@ -811,7 +811,7 @@ as_tr_sh="sed y%*+%pp%;s%[[^_$as_cr_alnum]]%_%g"
m4_defun([AS_TR_SH],
[AS_REQUIRE([_$0_PREPARE])dnl
AS_LITERAL_IF([$1],
[m4_patsubst(m4_translit([[$1]], [*+], [pp]),
[m4_bpatsubst(m4_translit([[$1]], [*+], [pp]),
[[^a-zA-Z0-9_]], [_])],
[`echo "$1" | $as_tr_sh`])])
@ -833,7 +833,7 @@ as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[[^_$as_cr_alnum]]%_%g"
m4_defun([AS_TR_CPP],
[AS_REQUIRE([_$0_PREPARE])dnl
AS_LITERAL_IF([$1],
[m4_patsubst(m4_translit([[$1]],
[m4_bpatsubst(m4_translit([[$1]],
[*abcdefghijklmnopqrstuvwxyz],
[PABCDEFGHIJKLMNOPQRSTUVWXYZ]),
[[^A-Z0-9_]], [_])],
@ -883,7 +883,7 @@ m4_define([AS_VAR_SET],
m4_define([AS_VAR_GET],
[AS_LITERAL_IF([$1],
[$$1],
[`eval echo '${'m4_patsubst($1, [[\\`]], [\\\&])'}'`])])
[`eval echo '${'m4_bpatsubst($1, [[\\`]], [\\\&])'}'`])])
# AS_VAR_TEST_SET(VARIABLE)

View File

@ -111,7 +111,7 @@ m4_define([m4_rename_m4],
# ---------------------------
# Copy m4_MACRO-NAME as MACRO-NAME.
m4_define([m4_copy_unm4],
[m4_copy([$1], m4_patsubst([$1], [^m4_\(.*\)], [[\1]]))])
[m4_copy([$1], m4_bpatsubst([$1], [^m4_\(.*\)], [[\1]]))])
# Some m4 internals have names colliding with tokens we might use.
@ -139,10 +139,10 @@ m4_rename_m4([len])
m4_rename([m4exit], [m4_exit])
m4_rename([m4wrap], [m4_wrap])
m4_rename_m4([maketemp])
m4_rename_m4([patsubst])
m4_rename([patsubst], [m4_bpatsubst])
m4_undefine([popdef])
m4_rename_m4([pushdef])
m4_rename_m4([regexp])
m4_rename([regexp], [m4_bregexp])
m4_rename_m4([shift])
m4_rename_m4([sinclude])
m4_rename_m4([substr])
@ -403,8 +403,8 @@ m4_define([m4_case],
[m4_case([$1], m4_shiftn(3, $@))])])
# m4_match(SWITCH, RE1, VAL1, RE2, VAL2, ..., DEFAULT)
# ----------------------------------------------------
# m4_bmatch(SWITCH, RE1, VAL1, RE2, VAL2, ..., DEFAULT)
# -----------------------------------------------------
# m4 equivalent of
#
# if (SWITCH =~ RE1)
@ -418,11 +418,11 @@ m4_define([m4_case],
#
# All the values are optional, and the macro is robust to active symbols
# properly quoted.
m4_define([m4_match],
m4_define([m4_bmatch],
[m4_if([$#], 0, [],
[$#], 1, [],
[$#], 2, [$2],
m4_regexp([$1], [$2]), -1, [m4_match([$1], m4_shiftn(3, $@))],
m4_bregexp([$1], [$2]), -1, [m4_bmatch([$1], m4_shiftn(3, $@))],
[$3])])
@ -1342,7 +1342,7 @@ m4_defn([m4_cr_digits])dnl
# --------------------
# Escape BRE active characters in STRING.
m4_define([m4_re_escape],
[m4_patsubst([$1],
[m4_bpatsubst([$1],
[[][+*.]], [\\\&])])
@ -1403,7 +1403,7 @@ m4_define(<<m4_split>>,
<<m4_changequote(``, '')dnl
[dnl Can't use m4_default here instead of m4_if, because m4_default uses
dnl [ and ] as quotes.
m4_patsubst(````$1'''',
m4_bpatsubst(````$1'''',
m4_if(``$2'',, ``[ ]+'', ``$2''),
``], ['')]dnl
m4_changequote([, ])>>)
@ -1422,7 +1422,7 @@ m4_changequote([, ])
# ive])end
# => active activeend
m4_define([m4_flatten],
[m4_translit(m4_patsubst([[[$1]]], [\\
[m4_translit(m4_bpatsubst([[[$1]]], [\\
]), [
], [ ])])
@ -1449,7 +1449,7 @@ m4_define([m4_flatten],
# the *third* character, since there are two leading `['; Equally for
# the outer patsubst.
m4_define([m4_strip],
[m4_patsubst(m4_patsubst(m4_patsubst([[[[$1]]]],
[m4_bpatsubst(m4_bpatsubst(m4_bpatsubst([[[[$1]]]],
[[ ]+], [ ]),
[^\(..\) ], [\1]),
[ \(.\)$], [\1])])
@ -1525,7 +1525,7 @@ m4_define([m4_append],
# As `m4_append', but append only if not yet present.
m4_define([m4_append_uniq],
[m4_ifdef([$1],
[m4_match([$3]m4_defn([$1])[$3], m4_re_escape([$3$2$3]), [],
[m4_bmatch([$3]m4_defn([$1])[$3], m4_re_escape([$3$2$3]), [],
[m4_append($@)])],
[m4_append($@)])])
@ -1615,9 +1615,9 @@ m4_popdef([m4_Prefix])dnl
# m4_text_box(MESSAGE, [FRAME-CHARACTER = `-'])
# ---------------------------------------------
m4_define([m4_text_box],
[@%:@@%:@ m4_patsubst([$1], [.], m4_if([$2], [], [[-]], [[$2]])) @%:@@%:@
[@%:@@%:@ m4_bpatsubst([$1], [.], m4_if([$2], [], [[-]], [[$2]])) @%:@@%:@
@%:@@%:@ $1 @%:@@%:@
@%:@@%:@ m4_patsubst([$1], [.], m4_if([$2], [], [[-]], [[$2]])) @%:@@%:@[]dnl
@%:@@%:@ m4_bpatsubst([$1], [.], m4_if([$2], [], [[-]], [[$2]])) @%:@@%:@[]dnl
])
@ -1631,7 +1631,7 @@ m4_define([m4_text_box],
#
# The sign of the integer A.
m4_define([m4_sign],
[m4_match([$1],
[m4_bmatch([$1],
[^-], -1,
[^0+], 0,
1)])
@ -1684,7 +1684,7 @@ m4_define([m4_list_cmp],
# This macro is absolutely not robust to active macro, it expects
# reasonable version numbers and is valid up to `z', no double letters.
m4_define([m4_version_unletter],
[m4_translit(m4_patsubst(m4_patsubst(m4_patsubst([$1],
[m4_translit(m4_bpatsubst(m4_bpatsubst(m4_bpatsubst([$1],
[\([0-9]+\)\([abcdefghi]\)],
[m4_eval(\1 + 1).-1.\2]),
[\([0-9]+\)\([jklmnopqrs]\)],

View File

@ -28,7 +28,7 @@
# Escape the invalid tokens with @&t@.
m4_define([AT_DATA_M4SUGAR],
[AT_DATA([$1],
[m4_patsubst(m4_patsubst([[$2]], [\(m4\)_], [\1@&t@_]),
[m4_bpatsubst(m4_bpatsubst([[$2]], [\(m4\)_], [\1@&t@_]),
[dnl], [d@&t@nl])])])
@ -51,7 +51,7 @@ AT_CHECK([autom4te --language=m4sugar script.4s -o script $1],
# Escape the invalid tokens with @&t@.
m4_define([AT_DATA_M4SH],
[AT_DATA([$1],
[m4_patsubst(m4_patsubst([[$2]], [\(m4\|AS\)_], [\1@&t@_]),
[m4_bpatsubst(m4_bpatsubst([[$2]], [\(m4\|AS\)_], [\1@&t@_]),
[dnl], [d@&t@nl])])])

View File

@ -373,9 +373,9 @@ m4_define([AT_DESCRIPTION],
# turned into ac_uummy during the construction of config.status. Yes,
# this is admittedly a bug, but it would be too hard to fix this.
# There is really no point in AC_DEFINE a var named ac_d.*.
m4_pattern_allow([^m4_patsubst$])
m4_pattern_allow([^m4_bpatsubst$])
m4_define([AT_DUMMY_VAR],
[ac_Dummy_[]m4_patsubst([000$1], [.*\(...\)$], [\1])])
[ac_Dummy_[]m4_bpatsubst([000$1], [.*\(...\)$], [\1])])