2006-09-29 Stepan Kasal
* lib/m4sugar/m4sh.m4 (AS_LITERAL_IF): Expand $1 before
looking for special shell characters.
* lib/autoconf/functions.m4 (AC_CHECK_FUNC): Do not expand the
macro defined by AS_VAR_PUSHDEF before passing it as a
parameter.
* lib/autoconf/general.m4 (AC_CHECK_FILE, AC_CHECK_DECL):
* lib/autoconf/libs.m4 (AC_SEARCH_LIBS, AC_CHECK_LIB):
* lib/autoconf/types.m4 (_AC_CHECK_TYPE_NEW, AC_CHECK_MEMBER):
* lib/autoconf/headers.m4 (_AC_CHECK_HEADER_MONGREL,
_AC_CHECK_HEADER_NEW, _AC_CHECK_HEADER_OLD,
_AC_CHECK_HEADER_DIRENT): Likewise.
* lib/autotest/general.m4 (AT_INIT): Quote parameters of
AS_VAR_* properly.
* tests/m4sh.at (AS_LITERAL_IF): New test.
Index: lib/autoconf/functions.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/functions.m4,v
retrieving revision 1.111
diff -u -r1.111 functions.m4
--- lib/autoconf/functions.m4 26 Sep 2006 20:57:16 -0000 1.111
+++ lib/autoconf/functions.m4 29 Sep 2006 12:10:53 -0000
@@ -66,11 +66,11 @@
# -----------------------------------------------------------------
AC_DEFUN([AC_CHECK_FUNC],
[AS_VAR_PUSHDEF([ac_var], [ac_cv_func_$1])dnl
-AC_CACHE_CHECK([for $1], ac_var,
+AC_CACHE_CHECK([for $1], [ac_var],
[AC_LINK_IFELSE([AC_LANG_FUNC_LINK_TRY([$1])],
- [AS_VAR_SET(ac_var, yes)],
- [AS_VAR_SET(ac_var, no)])])
-AS_IF([test AS_VAR_GET(ac_var) = yes], [$2], [$3])dnl
+ [AS_VAR_SET([ac_var], [yes])],
+ [AS_VAR_SET([ac_var], [no])])])
+AS_IF([test AS_VAR_GET([ac_var]) = yes], [$2], [$3])dnl
AS_VAR_POPDEF([ac_var])dnl
])# AC_CHECK_FUNC
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.931
diff -u -r1.931 general.m4
--- lib/autoconf/general.m4 26 Sep 2006 20:43:43 -0000 1.931
+++ lib/autoconf/general.m4 29 Sep 2006 12:10:56 -0000
@@ -2506,15 +2506,15 @@
[AC_DIAGNOSE([cross],
[cannot check for file existence when cross compiling])dnl
AS_VAR_PUSHDEF([ac_File], [ac_cv_file_$1])dnl
-AC_CACHE_CHECK([for $1], ac_File,
+AC_CACHE_CHECK([for $1], [ac_File],
[test "$cross_compiling" = yes &&
AC_MSG_ERROR([cannot check for file existence when cross compiling])
if test -r "$1"; then
- AS_VAR_SET(ac_File, yes)
+ AS_VAR_SET([ac_File], [yes])
else
- AS_VAR_SET(ac_File, no)
+ AS_VAR_SET([ac_File], [no])
fi])
-AS_IF([test AS_VAR_GET(ac_File) = yes], [$2], [$3])[]dnl
+AS_IF([test AS_VAR_GET([ac_File]) = yes], [$2], [$3])[]dnl
AS_VAR_POPDEF([ac_File])dnl
])# AC_CHECK_FILE
@@ -2543,15 +2543,15 @@
# Check whether SYMBOL (a function, variable, or constant) is declared.
AC_DEFUN([AC_CHECK_DECL],
[AS_VAR_PUSHDEF([ac_Symbol], [ac_cv_have_decl_$1])dnl
-AC_CACHE_CHECK([whether $1 is declared], ac_Symbol,
+AC_CACHE_CHECK([whether $1 is declared], [ac_Symbol],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],
[#ifndef $1
(void) $1;
#endif
])],
- [AS_VAR_SET(ac_Symbol, yes)],
- [AS_VAR_SET(ac_Symbol, no)])])
-AS_IF([test AS_VAR_GET(ac_Symbol) = yes], [$2], [$3])[]dnl
+ [AS_VAR_SET([ac_Symbol], [yes])],
+ [AS_VAR_SET([ac_Symbol], [no])])])
+AS_IF([test AS_VAR_GET([ac_Symbol]) = yes], [$2], [$3])[]dnl
AS_VAR_POPDEF([ac_Symbol])dnl
])# AC_CHECK_DECL
Index: lib/autoconf/headers.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/headers.m4,v
retrieving revision 1.53
diff -u -r1.53 headers.m4
--- lib/autoconf/headers.m4 19 Sep 2006 09:35:41 -0000 1.53
+++ lib/autoconf/headers.m4 29 Sep 2006 12:10:56 -0000
@@ -104,8 +104,8 @@
# because of the cache variables, and the `checking...' messages.
m4_define([_AC_CHECK_HEADER_MONGREL],
[AS_VAR_PUSHDEF([ac_Header], [ac_cv_header_$1])dnl
-AS_VAR_SET_IF(ac_Header,
- [AC_CACHE_CHECK([for $1], ac_Header, [])],
+AS_VAR_SET_IF([ac_Header],
+ [AC_CACHE_CHECK([for $1], [ac_Header], [])],
[# Is the header compilable?
AC_MSG_CHECKING([$1 usability])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([AC_INCLUDES_DEFAULT([$4])
@@ -140,10 +140,10 @@
) | sed "s/^/$as_me: WARNING: /" >&2])
;;
esac
-AC_CACHE_CHECK([for $1], ac_Header,
- [AS_VAR_SET(ac_Header, $ac_header_preproc)])
+AC_CACHE_CHECK([for $1], [ac_Header],
+ [AS_VAR_SET([ac_Header], [$ac_header_preproc])])
])dnl ! set ac_HEADER
-AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
+AS_IF([test AS_VAR_GET([ac_Header]) = yes], [$2], [$3])[]dnl
AS_VAR_POPDEF([ac_Header])dnl
])# _AC_CHECK_HEADER_MONGREL
@@ -155,12 +155,12 @@
# Check the compiler accepts HEADER-FILE. The INCLUDES are defaulted.
m4_define([_AC_CHECK_HEADER_NEW],
[AS_VAR_PUSHDEF([ac_Header], [ac_cv_header_$1])dnl
-AC_CACHE_CHECK([for $1], ac_Header,
+AC_CACHE_CHECK([for $1], [ac_Header],
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([AC_INCLUDES_DEFAULT([$4])
@%:@include <$1>])],
- [AS_VAR_SET(ac_Header, yes)],
- [AS_VAR_SET(ac_Header, no)])])
-AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
+ [AS_VAR_SET([ac_Header], [yes])],
+ [AS_VAR_SET([ac_Header], [no])])])
+AS_IF([test AS_VAR_GET([ac_Header]) = yes], [$2], [$3])[]dnl
AS_VAR_POPDEF([ac_Header])dnl
])# _AC_CHECK_HEADER_NEW
@@ -171,11 +171,11 @@
# Check the preprocessor accepts HEADER-FILE.
m4_define([_AC_CHECK_HEADER_OLD],
[AS_VAR_PUSHDEF([ac_Header], [ac_cv_header_$1])dnl
-AC_CACHE_CHECK([for $1], ac_Header,
+AC_CACHE_CHECK([for $1], [ac_Header],
[AC_PREPROC_IFELSE([AC_LANG_SOURCE(address@hidden:@include <$1>])],
- [AS_VAR_SET(ac_Header, yes)],
- [AS_VAR_SET(ac_Header, no)])])
-AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
+ [AS_VAR_SET([ac_Header], [yes])],
+ [AS_VAR_SET([ac_Header], [no])])])
+AS_IF([test AS_VAR_GET([ac_Header]) = yes], [$2], [$3])[]dnl
AS_VAR_POPDEF([ac_Header])dnl
])# _AC_CHECK_HEADER_OLD
@@ -395,15 +395,15 @@
# defines the type `DIR'. dirent.h on NextStep 3.2 doesn't.
m4_define([_AC_CHECK_HEADER_DIRENT],
[AS_VAR_PUSHDEF([ac_Header], [ac_cv_header_dirent_$1])dnl
-AC_CACHE_CHECK([for $1 that defines DIR], ac_Header,
+AC_CACHE_CHECK([for $1 that defines DIR], [ac_Header],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include
#include <$1>
],
[if ((DIR *) 0)
return 0;])],
- [AS_VAR_SET(ac_Header, yes)],
- [AS_VAR_SET(ac_Header, no)])])
-AS_IF([test AS_VAR_GET(ac_Header) = yes], [$2], [$3])[]dnl
+ [AS_VAR_SET([ac_Header], [yes])],
+ [AS_VAR_SET([ac_Header], [no])])])
+AS_IF([test AS_VAR_GET([ac_Header]) = yes], [$2], [$3])[]dnl
AS_VAR_POPDEF([ac_Header])dnl
])# _AC_CHECK_HEADER_DIRENT
Index: lib/autoconf/libs.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/libs.m4,v
retrieving revision 1.23
diff -u -r1.23 libs.m4
--- lib/autoconf/libs.m4 19 Sep 2006 09:35:41 -0000 1.23
+++ lib/autoconf/libs.m4 29 Sep 2006 12:10:57 -0000
@@ -68,7 +68,7 @@
# Search for a library defining FUNC, if it's not already available.
AC_DEFUN([AC_SEARCH_LIBS],
[AS_VAR_PUSHDEF([ac_Search], [ac_cv_search_$1])dnl
-AC_CACHE_CHECK([for library containing $1], ac_Search,
+AC_CACHE_CHECK([for library containing $1], [ac_Search],
[ac_func_search_save_LIBS=$LIBS
AC_LANG_CONFTEST([AC_LANG_CALL([], [$1])])
for ac_lib in '' $2; do
@@ -78,13 +78,13 @@
ac_res=-l$ac_lib
LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS"
fi
- AC_LINK_IFELSE([], [AS_VAR_SET(ac_Search, [$ac_res])])
- AS_VAR_SET_IF(ac_Search, [break])dnl
+ AC_LINK_IFELSE([], [AS_VAR_SET([ac_Search], [$ac_res])])
+ AS_VAR_SET_IF([ac_Search], [break])dnl
done
-AS_VAR_SET_IF(ac_Search, , [AS_VAR_SET(ac_Search, [no])])dnl
+AS_VAR_SET_IF([ac_Search], , [AS_VAR_SET([ac_Search], [no])])dnl
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS])
-ac_res=AS_VAR_GET(ac_Search)
+ac_res=AS_VAR_GET([ac_Search])
AS_IF([test "$ac_res" != no],
[test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
$3],
@@ -123,14 +123,14 @@
AS_LITERAL_IF([$1],
[AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1_$2])],
[AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1''_$2])])dnl
-AC_CACHE_CHECK([for $2 in -l$1], ac_Lib,
+AC_CACHE_CHECK([for $2 in -l$1], [ac_Lib],
[ac_check_lib_save_LIBS=$LIBS
LIBS="-l$1 $5 $LIBS"
AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
- [AS_VAR_SET(ac_Lib, yes)],
- [AS_VAR_SET(ac_Lib, no)])
+ [AS_VAR_SET([ac_Lib], [yes])],
+ [AS_VAR_SET([ac_Lib], [no])])
LIBS=$ac_check_lib_save_LIBS])
-AS_IF([test AS_VAR_GET(ac_Lib) = yes],
+AS_IF([test AS_VAR_GET([ac_Lib]) = yes],
[m4_default([$3], [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1))
LIBS="-l$1 $LIBS"
])],
Index: lib/autoconf/types.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/types.m4,v
retrieving revision 1.45
diff -u -r1.45 types.m4
--- lib/autoconf/types.m4 25 Sep 2006 17:50:06 -0000 1.45
+++ lib/autoconf/types.m4 29 Sep 2006 12:10:58 -0000
@@ -149,16 +149,16 @@
# constructs in general.
m4_define([_AC_CHECK_TYPE_NEW],
[AS_VAR_PUSHDEF([ac_Type], [ac_cv_type_$1])dnl
-AC_CACHE_CHECK([for $1], ac_Type,
+AC_CACHE_CHECK([for $1], [ac_Type],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])
typedef $1 ac__type_new_;],
[if ((ac__type_new_ *) 0)
return 0;
if (sizeof (ac__type_new_))
return 0;])],
- [AS_VAR_SET(ac_Type, yes)],
- [AS_VAR_SET(ac_Type, no)])])
-AS_IF([test AS_VAR_GET(ac_Type) = yes], [$2], [$3])[]dnl
+ [AS_VAR_SET([ac_Type], [yes])],
+ [AS_VAR_SET([ac_Type], [no])])])
+AS_IF([test AS_VAR_GET([ac_Type]) = yes], [$2], [$3])[]dnl
AS_VAR_POPDEF([ac_Type])dnl
])# _AC_CHECK_TYPE_NEW
@@ -774,23 +774,23 @@
[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_CACHE_CHECK([for $1], [ac_Member],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],
[dnl AGGREGATE ac_aggr;
static m4_bpatsubst([$1], [\..*]) ac_aggr;
dnl ac_aggr.MEMBER;
if (ac_aggr.m4_bpatsubst([$1], [^[^.]*\.]))
return 0;])],
- [AS_VAR_SET(ac_Member, yes)],
+ [AS_VAR_SET([ac_Member], [yes])],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])],
[dnl AGGREGATE ac_aggr;
static m4_bpatsubst([$1], [\..*]) ac_aggr;
dnl sizeof ac_aggr.MEMBER;
if (sizeof ac_aggr.m4_bpatsubst([$1], [^[^.]*\.]))
return 0;])],
- [AS_VAR_SET(ac_Member, yes)],
- [AS_VAR_SET(ac_Member, no)])])])
-AS_IF([test AS_VAR_GET(ac_Member) = yes], [$2], [$3])dnl
+ [AS_VAR_SET([ac_Member], [yes])],
+ [AS_VAR_SET([ac_Member], [no])])])])
+AS_IF([test AS_VAR_GET([ac_Member]) = yes], [$2], [$3])dnl
AS_VAR_POPDEF([ac_Member])dnl
])# AC_CHECK_MEMBER
Index: lib/autotest/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autotest/general.m4,v
retrieving revision 1.214
diff -u -r1.214 general.m4
--- lib/autotest/general.m4 20 Jun 2006 05:35:38 -0000 1.214
+++ lib/autotest/general.m4 29 Sep 2006 12:10:59 -0000
@@ -220,8 +220,8 @@
builddir=../..
for at_dir in srcdir top_srcdir top_build_prefix
do
- at_val=AS_VAR_GET(at_$at_dir)
- AS_VAR_SET($at_dir, $at_val/../..)
+ at_val=AS_VAR_GET([at_$at_dir])
+ AS_VAR_SET([$at_dir], [$at_val/../..])
done
fi
Index: lib/m4sugar/m4sh.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/m4sugar/m4sh.m4,v
retrieving revision 1.193
diff -u -r1.193 m4sh.m4
--- lib/m4sugar/m4sh.m4 12 Sep 2006 07:07:32 -0000 1.193
+++ lib/m4sugar/m4sh.m4 29 Sep 2006 12:11:00 -0000
@@ -1131,7 +1131,7 @@
# This is an *approximation*: for instance EXPRESSION = `\$' is
# definitely a literal, but will not be recognized as such.
m4_define([AS_LITERAL_IF],
-[m4_bmatch([$1], [[`$]],
+[m4_bmatch(m4_quote($1), [[`$]],
[$3], [$2])])
Index: tests/m4sh.at
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/m4sh.at,v
retrieving revision 1.47
diff -u -r1.47 m4sh.at
--- tests/m4sh.at 24 Apr 2006 19:36:02 -0000 1.47
+++ tests/m4sh.at 29 Sep 2006 13:07:54 -0000
@@ -632,3 +632,37 @@
]])
AT_CLEANUP
+
+
+## --------------- ##
+## AS_LITERAL_IF. ##
+## --------------- ##
+
+AT_SETUP([AS@&address@hidden)
+
+AT_DATA_M4SH([script.as], [[dnl
+AS_INIT
+echo AS_LITERAL_IF([lit], [ok], [ERR]) 1
+echo AS_LITERAL_IF([l$it], [ERR], [ok]) 2
+echo AS_LITERAL_IF([l``it], [ERR], [ok]) 3
+m4_define([mac], [lit])
+echo AS_LITERAL_IF([mac], [ok], [ERR]) 4
+echo AS_LITERAL_IF([mac($, ``)], [ok], [ERR]) 5
+m4_define([mac], [l$it])
+echo AS_LITERAL_IF([mac], [ERR], [ok]) 6
+m4_define([mac], [l`it])
+echo AS_LITERAL_IF([mac], [ERR], [ok]) 7
+]])
+
+AT_CHECK_M4SH
+AT_CHECK([./script], [],
+[[ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+]])
+
+AT_CLEANUP