[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
AC_INIT regression [was: AC_CHECK_SIZEOF([int *]) is error in autoconf-2
From: |
Eric Blake |
Subject: |
AC_INIT regression [was: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66] |
Date: |
Sat, 10 Jul 2010 10:28:50 -0600 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.10) Gecko/20100621 Fedora/3.0.5-1.fc13 Lightning/1.0b2pre Mnenhy/0.8.3 Thunderbird/3.0.5 |
On 07/10/2010 08:49 AM, Eric Blake wrote:
> It would still be nice to address Bruno's report about AC_INIT and valid
> version strings first.
>
> In thinking about that, would it be worth adding a new macro
> AS_LITERAL_HEREDOC_IF, which is comparable to AS_LITERAL_IF and
> AS_LITERAL_WORD_IF, but the difference is that it permits any strings
> that pass through unchanged in both quoted and unquoted heredocs? Then,
> instead of AS_LITERAL_IF, we make the version string validation of
> AC_INIT use AS_LITERAL_HEREDOC_IF use the new AS_LITERAL_HEREDOC_IF and
> that should resolve Bruno's report.
>
> A rough implementation is that it only needs to filter out @S|@ (the
> quadrigraph for $) and $,`,\. I've got a few minutes, let me see if I
> can propose a more formal patch for review...
Here's where I got before running out of time to actually test it with
AC_INIT:
diff --git i/lib/m4sugar/m4sh.m4 w/lib/m4sugar/m4sh.m4
index 6fbc9e1..3cc868c 100644
--- i/lib/m4sugar/m4sh.m4
+++ w/lib/m4sugar/m4sh.m4
@@ -1592,6 +1592,23 @@ m4_define([_AS_LITERAL_IF_NO], [$2])
m4_define([AS_LITERAL_WORD_IF],
[_AS_LITERAL_IF(m4_expand([$1]))([$4], [$3], [$2])])
+# AS_LITERAL_HEREDOC_IF(EXPRESSION, IF-LITERAL, IF-NOT-LITERAL)
+# -------------------------------------------------------------
+# Like AS_LITERAL_IF, except that a string is considered literal
+# if it results in the same output in both quoted and unquoted
+# here-documents.
+m4_define([AS_LITERAL_HEREDOC_IF],
+[_$0(m4_expand([$1]))([$2], [$3])])
+
+m4_define([_AS_LITERAL_HEREDOC_IF],
+[m4_if(m4_index([$1], address@hidden|@]), [-1],
+ [m4_if(m4_index(m4_translit([[$1]], [\`], [$]), [$]), [-1],
+ [$0_YES], [$0_NO])],
+ [$0_NO])])
+
+m4_define([_AS_LITERAL_HEREDOC_IF_YES], [$1])
+m4_define([_AS_LITERAL_HEREDOC_IF_NO], [$2])
+
# AS_TMPDIR(PREFIX, [DIRECTORY = $TMPDIR [= /tmp]])
# -------------------------------------------------
diff --git i/tests/m4sh.at w/tests/m4sh.at
index 2f79332..52ab4ee 100644
--- i/tests/m4sh.at
+++ w/tests/m4sh.at
@@ -1119,7 +1119,7 @@ AT_CLEANUP
## --------------- ##
AT_SETUP([AS@&address@hidden)
-AT_KEYWORDS([m4sh AS@&address@hidden)
+AT_KEYWORDS([m4sh AS@&address@hidden AS@&address@hidden)
AT_DATA_M4SH([script.as], [[dnl
AS_INIT
@@ -1141,9 +1141,17 @@ m4_define([mac], [l``it])
echo AS_LITERAL_IF([mac], [ERR], [ok]) 13
echo AS_LITERAL_IF([mac], [ERR1], [ok], [ERR2]) 14
echo AS_LITERAL_IF([ a ][
-b], [ok], [ok]) 15
+b], [ok], [ERR]) 15
echo AS_LITERAL_WORD_IF([ a ][
b], [ERR], [ok]) 16
+echo AS_LITERAL_HEREDOC_IF([ a ][
+b], [ok], [ERR]) 17
+echo AS_LITERAL_IF([(a)], [ERR], [ok]) 18
+echo AS_LITERAL_WORD_IF([(a)], [ERR], [ok]) 19
+echo AS_LITERAL_HEREDOC_IF([(a)], [ok], [ERR]) 20
+echo AS_LITERAL_IF(address@hidden|@a], [ERR], [ok]) 21
+echo AS_LITERAL_WORD_IF(address@hidden|@a], [ERR], [ok]) 22
+echo AS_LITERAL_HEREDOC_IF(address@hidden|@a], [ERR], [ok]) 23
]])
AT_CHECK_M4SH
@@ -1164,6 +1172,13 @@ ok 13
ok 14
ok 15
ok 16
+ok 17
+ok 18
+ok 19
+ok 20
+ok 21
+ok 22
+ok 23
]])
AT_CLEANUP
--
Eric Blake address@hidden +1-801-349-2682
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Ralf Wildenhues, 2010/07/06
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Eric Blake, 2010/07/07
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Ralf Wildenhues, 2010/07/08
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Ralf Wildenhues, 2010/07/10
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Paolo Bonzini, 2010/07/10
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Ralf Wildenhues, 2010/07/10
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Paolo Bonzini, 2010/07/10
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Ralf Wildenhues, 2010/07/10
- Re: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66, Eric Blake, 2010/07/10
- AC_INIT regression [was: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66],
Eric Blake <=
- Re: AC_INIT regression [was: AC_CHECK_SIZEOF([int *]) is error in autoconf-2.66], Paolo Bonzini, 2010/07/10
- Re: AC_INIT regression, Ralf Wildenhues, 2010/07/11
- Re: AC_INIT regression, Paolo Bonzini, 2010/07/11
- Re: AC_INIT regression, Paul Eggert, 2010/07/12
- Re: AC_INIT regression, Ralf Wildenhues, 2010/07/13
- Re: AC_INIT regression, Ralf Wildenhues, 2010/07/15
- autoreconf -W [was: AC_INIT regression], Eric Blake, 2010/07/19
- [PATCH] Let autoreconf pass warning flags to new-enough aclocal., Ralf Wildenhues, 2010/07/20
- [PATCH] Let autoreconf pass warning flags to new-enough aclocal., Ralf Wildenhues, 2010/07/20
- Re: [PATCH] Let autoreconf pass warning flags to new-enough aclocal., Eric Blake, 2010/07/20