[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Autoconf source repository branch, master, updated. v2.69-171-

From: Eric Blake
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.69-171-g527f183
Date: Fri, 4 Nov 2016 21:18:07 +0000 (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".;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 <address@hidden>
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 
    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 <address@hidden>
    Message-Id: <address@hidden>


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_if(m4_bregexp([$1], [\\\|`\|\$(\|\${\|@]), [-1],
+[m4_if(m4_bregexp([$1], [#\|\\\|`\|\(\$\|@S|@\)\((|{|@{:@\)]), [-1],
        [AS_ECHO(["AS_ESCAPE([$1], [""])"]) >>confdefs.h],
        [cat >>confdefs.h <<_ACEOF

GNU Autoconf source repository

reply via email to

[Prev in Thread] Current Thread [Next in Thread]