2005-07-01 Stepan Kasal * lib/autoconf/general.m4 (AC_FOREACH): Make obsolete; it's replaced ... * lib/m4sugar/m4sugar.m4 (m4_foreach_w): ... by this new macro. * lib/autoconf/status.m4 (_AC_CONFIG_DEPENDENCIES, _AC_CONFIG_UNIQUE): Remove m4_foreach_w. (AC_CONFIG_SUBDIRS): Call _AC_CONFIG_UNIQUE in a m4_foreach_w loop. Index: lib/autoconf/functions.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/functions.m4,v retrieving revision 1.93 diff -u -r1.93 functions.m4 --- lib/autoconf/functions.m4 14 May 2005 18:33:30 -0000 1.93 +++ lib/autoconf/functions.m4 1 Jul 2005 08:28:21 -0000 @@ -78,7 +78,7 @@ # AC_CHECK_FUNCS(FUNCTION..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------- AC_DEFUN([AC_CHECK_FUNCS], -[AC_FOREACH([AC_Func], [$1], +[m4_foreach_w([AC_Func], [$1], [AH_TEMPLATE(AS_TR_CPP(HAVE_[]AC_Func), [Define to 1 if you have the `]AC_Func[' function.])])dnl for ac_func in $1 @@ -93,7 +93,7 @@ # AC_REPLACE_FUNCS(FUNCTION...) # ----------------------------- AC_DEFUN([AC_REPLACE_FUNCS], -[AC_FOREACH([AC_Func], [$1], [AC_LIBSOURCE(AC_Func.c)])dnl +[m4_foreach_w([AC_Func], [$1], [AC_LIBSOURCE(AC_Func.c)])dnl AC_CHECK_FUNCS([$1], , [_AC_LIBOBJ($ac_func)]) ]) Index: lib/autoconf/general.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v retrieving revision 1.870 diff -u -r1.870 general.m4 --- lib/autoconf/general.m4 29 Jun 2005 09:33:21 -0000 1.870 +++ lib/autoconf/general.m4 1 Jul 2005 08:28:21 -0000 @@ -190,22 +190,9 @@ ## ----------------------------- ## -# AC_FOREACH(VARIABLE, LIST, EXPRESSION) -# -------------------------------------- -# -# Compute EXPRESSION assigning to VARIABLE each value of the LIST. -# LIST is a /bin/sh list, i.e., it has the form ` item_1 item_2 -# ... item_n ': white spaces are separators, and leading and trailing -# spaces are meaningless. -# -# This macro is robust to active symbols: -# AC_FOREACH([Var], [ active -# b act\ -# ive ], [-Var-])end -# => -active--b--active-end -m4_define([AC_FOREACH], -[m4_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) - +# AU::AC_FOREACH(VARIABLE, LIST, EXPRESSION) +# ------------------------------------------ +AU_ALIAS([AC_FOREACH], [m4_foreach_w]) @@ -2427,7 +2414,7 @@ # AC_CHECK_FILES(FILE..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # ----------------------------------------------------------------- AC_DEFUN([AC_CHECK_FILES], -[AC_FOREACH([AC_FILE_NAME], [$1], +[m4_foreach_w([AC_FILE_NAME], [$1], [AC_CHECK_FILE(AC_FILE_NAME, [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]AC_FILE_NAME), 1, [Define to 1 if you have the Index: lib/autoconf/headers.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/headers.m4,v retrieving revision 1.43 diff -u -r1.43 headers.m4 --- lib/autoconf/headers.m4 14 May 2005 07:00:40 -0000 1.43 +++ lib/autoconf/headers.m4 1 Jul 2005 08:28:21 -0000 @@ -185,7 +185,7 @@ # AH_CHECK_HEADERS(HEADER-FILE...) # -------------------------------- m4_define([AH_CHECK_HEADERS], -[AC_FOREACH([AC_Header], [$1], +[m4_foreach_w([AC_Header], [$1], [AH_TEMPLATE(AS_TR_CPP(HAVE_[]AC_Header), [Define to 1 if you have the <]AC_Header[> header file.])])]) @@ -380,7 +380,7 @@ # AH_CHECK_HEADERS_DIRENT(HEADERS...) # ----------------------------------- m4_define([AH_CHECK_HEADERS_DIRENT], -[AC_FOREACH([AC_Header], [$1], +[m4_foreach_w([AC_Header], [$1], [AH_TEMPLATE(AS_TR_CPP(HAVE_[]AC_Header), [Define to 1 if you have the <]AC_Header[> header file, and it defines `DIR'.])])]) Index: lib/autoconf/status.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/status.m4,v retrieving revision 1.66 diff -u -r1.66 status.m4 --- lib/autoconf/status.m4 30 Jun 2005 18:42:09 -0000 1.66 +++ lib/autoconf/status.m4 1 Jul 2005 08:28:21 -0000 @@ -211,17 +211,16 @@ [AC_FILE_DEPENDENCY_TRACE([$1], [$1.in])])]) -# _AC_CONFIG_DEPENDENCIES(DEST[:SOURCE1[:SOURCE2...]]...) -# ------------------------------------------------------- +# _AC_CONFIG_DEPENDENCIES(DEST[:SOURCE1[:SOURCE2...]]) +# ---------------------------------------------------- # Declare the DESTs depend upon their SOURCE1 etc. m4_define([_AC_CONFIG_DEPENDENCIES], -[AC_FOREACH([AC_File], [$1], - [_AC_CONFIG_DEPENDENCY(m4_bpatsubst(AC_File, [:], [,]))])dnl +[_AC_CONFIG_DEPENDENCY(m4_bpatsubst([$1], [:], [,]))dnl ]) -# _AC_CONFIG_UNIQUE(DEST[:SOURCE]...) -# ----------------------------------- +# _AC_CONFIG_UNIQUE(DEST[:SOURCE]) +# -------------------------------- # # Verify that there is no double definition of an output file # (precisely, guarantees there is no common elements between @@ -230,19 +229,18 @@ # Note that this macro does not check if the list $[1] itself # contains doubles. m4_define([_AC_CONFIG_UNIQUE], -[AC_FOREACH([AC_File], [$1], [m4_pushdef([AC_Dest], m4_bpatsubst(AC_File, [:.*]))dnl + AC_CONFIG_IF_MEMBER(AC_Dest, [AC_LIST_FILES], + [AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_FILES.])])dnl AC_CONFIG_IF_MEMBER(AC_Dest, [AC_LIST_HEADERS], [AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_HEADERS.])])dnl AC_CONFIG_IF_MEMBER(AC_Dest, [AC_LIST_LINKS], [AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_LINKS.])])dnl - AC_CONFIG_IF_MEMBER(AC_Dest, [_AC_LIST_SUBDIRS], - [AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_SUBDIRS.])])dnl AC_CONFIG_IF_MEMBER(AC_Dest, [AC_LIST_COMMANDS], [AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_COMMANDS.])])dnl - AC_CONFIG_IF_MEMBER(AC_Dest, [AC_LIST_FILES], - [AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_FILES.])])dnl -m4_popdef([AC_Dest])])dnl + AC_CONFIG_IF_MEMBER(AC_Dest, [_AC_LIST_SUBDIRS], + [AC_FATAL(`AC_Dest' [is already registered with AC_CONFIG_SUBDIRS.])])dnl +m4_popdef([AC_Dest])dnl ]) @@ -317,7 +315,7 @@ # AC_LIST_FILES_COMMANDS # esac AC_DEFUN([AC_CONFIG_FILES], -[AC_FOREACH([AC_File], [$1], [_AC_CONFIG_FILE(m4_defn([AC_File]), [$2])])dnl +[m4_foreach_w([AC_File], [$1], [_AC_CONFIG_FILE(m4_defn([AC_File]), [$2])])dnl _AC_CONFIG_COMMANDS_INIT([$3])dnl ac_config_files="$ac_config_files m4_normalize([$1])" ]) @@ -365,7 +363,7 @@ m4_ifdef([_AC_SUBST_FILES], [# Create sed commands to just substitute file output variables. -AC_FOREACH([_AC_Var], m4_defn([_AC_SUBST_FILES]), +m4_foreach_w([_AC_Var], m4_defn([_AC_SUBST_FILES]), [dnl End fragments at beginning of loop so that last fragment is not ended. m4_if(1,m4_eval(_AC_SED_CMD_NUM+4>_AC_SED_CMD_LIMIT), [dnl Fragment is full and not the last one, so no need for the final un-escape. @@ -397,7 +395,7 @@ dnl m4_define([_AC_SED_FRAG],[ ]m4_defn([_AC_SED_FRAG]))dnl -AC_FOREACH([_AC_Var], +m4_foreach_w([_AC_Var], m4_ifdef([_AC_SUBST_VARS],[m4_defn([_AC_SUBST_VARS]) ])address@hidden@], [m4_if(_AC_SED_DELIM_NUM,0, [m4_if(_AC_Var,address@hidden@], @@ -620,7 +618,7 @@ # AC_LIST_HEADERS_COMMANDS # esac AC_DEFUN([AC_CONFIG_HEADERS], -[AC_FOREACH([AC_File], [$1], [_AC_CONFIG_HEADER(m4_defn([AC_File]), [$2])])dnl +[m4_foreach_w([AC_File], [$1], [_AC_CONFIG_HEADER(m4_defn([AC_File]), [$2])])dnl _AC_CONFIG_COMMANDS_INIT([$3])dnl ac_config_headers="$ac_config_headers m4_normalize([$1])" ]) @@ -846,7 +844,7 @@ # Reject DEST=., because it is makes it hard for ./config.status # to guess the links to establish (`./config.status .'). AC_DEFUN([AC_CONFIG_LINKS], -[AC_FOREACH([AC_File], [$1], [_AC_CONFIG_LINK(m4_defn([AC_File]), [$2])])dnl +[m4_foreach_w([AC_File], [$1], [_AC_CONFIG_LINK(m4_defn([AC_File]), [$2])])dnl _AC_CONFIG_COMMANDS_INIT([$3])dnl ac_config_links="$ac_config_links m4_normalize([$1])" ]) @@ -986,7 +984,7 @@ # commands must be associated with a NAME, which should be thought # as the name of a file the COMMANDS create. AC_DEFUN([AC_CONFIG_COMMANDS], -[AC_FOREACH([AC_Name], [$1], [_AC_CONFIG_COMMAND(m4_defn([AC_Name]), [$2])])dnl +[m4_foreach_w([AC_Name], [$1], [_AC_CONFIG_COMMAND(m4_defn([AC_Name]), [$2])])dnl _AC_CONFIG_COMMANDS_INIT([$3])dnl ac_config_commands="$ac_config_commands $1" ]) @@ -1100,11 +1098,11 @@ # This is used in _AC_OUTPUT_SUBDIRS. # _AC_LIST_SUBDIRS is used only for _AC_CONFIG_UNIQUE. AC_DEFUN([AC_CONFIG_SUBDIRS], -[_AC_CONFIG_UNIQUE([$1])dnl +[m4_foreach_w([_AC_Sub], [$1], [_AC_CONFIG_UNIQUE([_AC_Sub])])dnl AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl m4_append([_AC_LIST_SUBDIRS], [ $1])dnl AS_LITERAL_IF([$1], [], - [AC_DIAGNOSE(syntax, [$0: you should use literals])]) + [AC_DIAGNOSE(syntax, [$0: you should use literals])])dnl m4_divert_text([DEFAULTS], [ac_subdirs_all="$ac_subdirs_all m4_normalize([$1])"]) AC_SUBST(subdirs, "$subdirs $1")dnl @@ -1530,30 +1528,30 @@ dnl Issue this section only if there were actually config files. -dnl This checks if one of AC_LIST_HEADERS, AC_LIST_FILES, AC_LIST_COMMANDS, -dnl or AC_LIST_LINKS is set. -m4_ifval(AC_LIST_HEADERS()AC_LIST_LINKS()AC_LIST_FILES()AC_LIST_COMMANDS(), +dnl This checks if one of AC_LIST_FILES, AC_LIST_HEADERS, AC_LIST_LINKS, +dnl or AC_LIST_COMMANDS is set. +m4_ifval(AC_LIST_FILES()AC_LIST_HEADERS()AC_LIST_LINKS()AC_LIST_COMMANDS(), [ cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. -AC_FOREACH([AC_File], AC_LIST_FILES, +m4_foreach_w([AC_File], AC_LIST_FILES, [ "m4_bpatsubst(AC_File, [:.*])" )dnl CONFIG_FILES="$CONFIG_FILES AC_File" ;; ])dnl -AC_FOREACH([AC_File], AC_LIST_LINKS, +m4_foreach_w([AC_File], AC_LIST_HEADERS, [ "m4_bpatsubst(AC_File, [:.*])" )dnl - CONFIG_LINKS="$CONFIG_LINKS AC_File" ;; + CONFIG_HEADERS="$CONFIG_HEADERS AC_File" ;; ])dnl -AC_FOREACH([AC_File], AC_LIST_COMMANDS, +m4_foreach_w([AC_File], AC_LIST_LINKS, [ "m4_bpatsubst(AC_File, [:.*])" )dnl - CONFIG_COMMANDS="$CONFIG_COMMANDS AC_File" ;; + CONFIG_LINKS="$CONFIG_LINKS AC_File" ;; ])dnl -AC_FOREACH([AC_File], AC_LIST_HEADERS, +m4_foreach_w([AC_File], AC_LIST_COMMANDS, [ "m4_bpatsubst(AC_File, [:.*])" )dnl - CONFIG_HEADERS="$CONFIG_HEADERS AC_File" ;; + CONFIG_COMMANDS="$CONFIG_COMMANDS AC_File" ;; ])dnl *) AC_MSG_ERROR([invalid argument: $ac_config_target]);; esac Index: lib/m4sugar/m4sugar.m4 =================================================================== RCS file: /cvsroot/autoconf/autoconf/lib/m4sugar/m4sugar.m4,v retrieving revision 2.92 diff -u -r2.92 m4sugar.m4 --- lib/m4sugar/m4sugar.m4 21 Jun 2005 15:38:24 -0000 2.92 +++ lib/m4sugar/m4sugar.m4 1 Jul 2005 08:28:21 -0000 @@ -692,6 +692,21 @@ _m4_foreach([$1], m4_cdr($2), [$3])])]) +# m4_foreach_w(VARIABLE, LIST, EXPRESSION) +# ---------------------------------------- +# +# Like m4_foreach, but the list is whitespace separated. +# +# This macro is robust to active symbols: +# m4_foreach_w([Var], [ active +# b act\ +# ive ], [-Var-])end +# => -active--b--active-end +# +m4_define([m4_foreach_w], +[m4_foreach([$1], m4_split(m4_normalize([$2])), [$3])]) + + ## --------------------------- ## ## 8. More diversion support. ## @@ -1558,7 +1573,7 @@ m4_if(m4_eval(m4_Cursor > m4_len(m4_Prefix)), 1, [m4_define([m4_Cursor], m4_len(m4_Prefix)) m4_Prefix])[]dnl -m4_foreach([m4_Word], m4_split(m4_normalize([$1])), +m4_foreach_w([m4_Word], [$1], [m4_define([m4_Cursor], m4_eval(m4_Cursor + m4_len(m4_defn([m4_Word])) + 1))dnl dnl New line if too long, else insert a space unless it is the first dnl of the words.