[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: m4_quote(m4_defn())
From: |
Bruno Haible |
Subject: |
Re: m4_quote(m4_defn()) |
Date: |
Thu, 21 May 2009 19:18:38 +0200 |
User-agent: |
KMail/1.9.9 |
Eric Blake wrote:
> m4_defn is GUARANTEED to be quoted, to
> begin with. All m4_quote does is add quoting to unquoted arguments
It also combines arguments. But here only one argument is passed.
> $ cd autoconf
> $ echo 'm4_divert[]m4_define([a],[A])m4_define([foo], [a[a[a]]])dnl
> > foo
> > m4_defn([foo])
> > m4_quote(m4_defn([foo]))' | m4 -Ilib m4sugar/m4sugar.m4 -
> Aa[a]
> a[a[a]]
> a[a[a]]
I'm convinced now. Thanks for showing these effects. Probably I got
confused by the name and it should better be called m4_concat_args.
For a single argument, even unquoted, m4_quote appears to be a nop:
$ m4 -Ilib m4sugar/m4sugar.m4 -
m4_divert
m4_define([a],[b])
m4_define([b],[c])
a
c
[a]
a
m4_quote(a)
c
m4_quote([a])
a
Maybe I'm overlooking something again...
Applied this:
2009-05-21 Eric Blake <address@hidden>
Bruno Haible <address@hidden>
* m4/include_next.m4 (gl_CHECK_NEXT_HEADERS): Remove redundant m4_quote
invocations.
* m4/absolute-header.m4 (gl_ABSOLUTE_HEADER): Likewise.
--- m4/absolute-header.m4.orig 2009-05-21 19:03:32.000000000 +0200
+++ m4/absolute-header.m4 2009-05-21 19:02:13.000000000 +0200
@@ -1,5 +1,5 @@
-# absolute-header.m4 serial 10
-dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
+# absolute-header.m4 serial 11
+dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@@ -24,12 +24,12 @@
AC_LANG_PREPROC_REQUIRE()dnl
m4_foreach_w([gl_HEADER_NAME], [$1],
[AS_VAR_PUSHDEF([gl_absolute_header],
- [gl_cv_absolute_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl
- AC_CACHE_CHECK([absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
- m4_quote(m4_defn([gl_absolute_header])),
+ [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl
+ AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>],
+ m4_defn([gl_absolute_header]),
[AS_VAR_PUSHDEF([ac_header_exists],
- [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))dnl
- AC_CHECK_HEADERS_ONCE(m4_quote(m4_defn([gl_HEADER_NAME])))dnl
+ [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl
+ AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl
if test AS_VAR_GET(ac_header_exists) = yes; then
AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include
<]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]])])
dnl AIX "xlc -E" and "cc -E" omit #line directives for header files
@@ -48,8 +48,8 @@
dnl so use subshell.
AS_VAR_SET(gl_absolute_header,
[`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
- s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
+sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{
+ s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1#
s#^/[^/]#//&#
p
q
@@ -57,9 +57,9 @@
fi
AS_VAR_POPDEF([ac_header_exists])dnl
])dnl
- AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+ AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])),
["AS_VAR_GET(gl_absolute_header)"],
- [Define this to an absolute name of
<]m4_quote(m4_defn([gl_HEADER_NAME]))[>.])
+ [Define this to an absolute name of
<]m4_defn([gl_HEADER_NAME])[>.])
AS_VAR_POPDEF([gl_absolute_header])dnl
])dnl
])# gl_ABSOLUTE_HEADER
--- m4/include_next.m4.orig 2009-05-21 19:03:32.000000000 +0200
+++ m4/include_next.m4 2009-05-21 19:01:10.000000000 +0200
@@ -1,4 +1,4 @@
-# include_next.m4 serial 13
+# include_next.m4 serial 14
dnl Copyright (C) 2006-2009 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
@@ -129,15 +129,15 @@
m4_foreach_w([gl_HEADER_NAME], [$1],
[AS_VAR_PUSHDEF([gl_next_header],
- [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME])))
+ [gl_cv_next_]m4_defn([gl_HEADER_NAME]))
if test $gl_cv_have_include_next = yes; then
AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
else
AC_CACHE_CHECK(
- [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
- m4_quote(m4_defn([gl_next_header])),
+ [absolute name of <]m4_defn([gl_HEADER_NAME])[>],
+ m4_defn([gl_next_header]),
[AS_VAR_PUSHDEF([gl_header_exists],
- [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))
+ [ac_cv_header_]m4_defn([gl_HEADER_NAME]))
if test AS_VAR_GET(gl_header_exists) = yes; then
AC_LANG_CONFTEST(
[AC_LANG_SOURCE(
@@ -159,8 +159,8 @@
dnl so use subshell.
AS_VAR_SET([gl_next_header],
['"'`(eval "$gl_absname_cpp conftest.$ac_ext")
2>&AS_MESSAGE_LOG_FD |
- sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
- s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
+ sed -n '\#/]m4_defn([gl_HEADER_NAME])[#{
+ s#.*"\(.*/]m4_defn([gl_HEADER_NAME])[\)".*#\1#
s#^/[^/]#//&#
p
q
@@ -171,7 +171,7 @@
AS_VAR_POPDEF([gl_header_exists])])
fi
AC_SUBST(
- AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+ AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])),
[AS_VAR_GET([gl_next_header])])
if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next =
buggy; then
# INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next'
@@ -181,7 +181,7 @@
gl_next_as_first_directive=AS_VAR_GET([gl_next_header])
fi
AC_SUBST(
-
AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+ AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])),
[$gl_next_as_first_directive])
AS_VAR_POPDEF([gl_next_header])])
])