Eric Blake
2016-11-04 21:18:07 UTC
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".
http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=527f183f232e14ebf0ef2b8a086d675e78700af2
The branch, master has been updated
via 527f183f232e14ebf0ef2b8a086d675e78700af2 (commit)
from b2621a91d70e5c86f4fbdce25eeb0f83df6645b6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 527f183f232e14ebf0ef2b8a086d675e78700af2
Author: Paolo Bonzini <***@gnu.org>
Date: Mon Oct 31 18:08:08 2016 +0100
autoconf: refine quadrigraph test in _AC_DEFINE_UNQUOTED
It is a very common case that a quadrigraph appears in the argument of
_AC_DEFINE_UNQUOTED, because "#define" is expanded through a quadrigraph.
Therefore, restrict the quadrigraph tests to "$" (for "$(" and "${")
and "(" (for "$(").
At the same time, "#" should not be used inside AC_ECHO because it confuses
m4's comment parsing. This pre-existing latent bug is caught by test 251:
AC_DEFINE_UNQUOTED([bar], [[%!_!# X]])
Previously the quadrigraph in "@%:@define bar %!_!# X" made Autoconf fall back
to cat anyway. Now that Autoconf is not fooled by the quadrigraph, the test
catches that "#" is not special-cased. Kudos to Eric for coming up with it!
* lib/autoconf/general (_AC_DEFINE_UNQUOTED): Do not blindly
use cat on all quadrigraphs.
Signed-off-by: Paolo Bonzini <***@gnu.org>
Message-Id: <1477933688-4884-4-git-send-email-***@gnu.org>
-----------------------------------------------------------------------
Summary of changes:
lib/autoconf/general.m4 | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index c15fb13..ef6285d 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -2167,9 +2167,11 @@ m4_define([AC_DEFINE_UNQUOTED], [_AC_DEFINE_Q([_$0], $@)])
# Append the pre-expanded STRING and a newline to confdefs.h, as if
# with an unquoted here-doc, but avoiding a fork in the common case of
# no backslash, no command substitution, no complex variable
-# substitution, and no quadrigraphs.
+# substitution (taking into account quadrigraphs as well). Also
+# avoid AS_ECHO if "#" is present to avoid confusing m4 with comments,
+# but quadrigraphs are fine in that case.
m4_define([_AC_DEFINE_UNQUOTED],
-[m4_if(m4_bregexp([$1], [\\\|`\|\$(\|\${\|@]), [-1],
+[m4_if(m4_bregexp([$1], [#\|\\\|`\|\(\$\|@S|@\)\((|{|@{:@\)]), [-1],
[AS_ECHO(["AS_ESCAPE([$1], [""])"]) >>confdefs.h],
[cat >>confdefs.h <<_ACEOF
[$1]
hooks/post-receive
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".
http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=527f183f232e14ebf0ef2b8a086d675e78700af2
The branch, master has been updated
via 527f183f232e14ebf0ef2b8a086d675e78700af2 (commit)
from b2621a91d70e5c86f4fbdce25eeb0f83df6645b6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 527f183f232e14ebf0ef2b8a086d675e78700af2
Author: Paolo Bonzini <***@gnu.org>
Date: Mon Oct 31 18:08:08 2016 +0100
autoconf: refine quadrigraph test in _AC_DEFINE_UNQUOTED
It is a very common case that a quadrigraph appears in the argument of
_AC_DEFINE_UNQUOTED, because "#define" is expanded through a quadrigraph.
Therefore, restrict the quadrigraph tests to "$" (for "$(" and "${")
and "(" (for "$(").
At the same time, "#" should not be used inside AC_ECHO because it confuses
m4's comment parsing. This pre-existing latent bug is caught by test 251:
AC_DEFINE_UNQUOTED([bar], [[%!_!# X]])
Previously the quadrigraph in "@%:@define bar %!_!# X" made Autoconf fall back
to cat anyway. Now that Autoconf is not fooled by the quadrigraph, the test
catches that "#" is not special-cased. Kudos to Eric for coming up with it!
* lib/autoconf/general (_AC_DEFINE_UNQUOTED): Do not blindly
use cat on all quadrigraphs.
Signed-off-by: Paolo Bonzini <***@gnu.org>
Message-Id: <1477933688-4884-4-git-send-email-***@gnu.org>
-----------------------------------------------------------------------
Summary of changes:
lib/autoconf/general.m4 | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index c15fb13..ef6285d 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -2167,9 +2167,11 @@ m4_define([AC_DEFINE_UNQUOTED], [_AC_DEFINE_Q([_$0], $@)])
# Append the pre-expanded STRING and a newline to confdefs.h, as if
# with an unquoted here-doc, but avoiding a fork in the common case of
# no backslash, no command substitution, no complex variable
-# substitution, and no quadrigraphs.
+# substitution (taking into account quadrigraphs as well). Also
+# avoid AS_ECHO if "#" is present to avoid confusing m4 with comments,
+# but quadrigraphs are fine in that case.
m4_define([_AC_DEFINE_UNQUOTED],
-[m4_if(m4_bregexp([$1], [\\\|`\|\$(\|\${\|@]), [-1],
+[m4_if(m4_bregexp([$1], [#\|\\\|`\|\(\$\|@S|@\)\((|{|@{:@\)]), [-1],
[AS_ECHO(["AS_ESCAPE([$1], [""])"]) >>confdefs.h],
[cat >>confdefs.h <<_ACEOF
[$1]
hooks/post-receive
--
GNU Autoconf source repository
GNU Autoconf source repository