Fix '#undef variable /* comment */' transform in config headers.

* lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): For
undefined preprocessor macros that are followed by a comment
in the header template, do not create nested comments in the
output.
* tests/torture.at (@%:@define header templates): Extend test.
* NEWS: Update.
Report by Karsten Hopp <karsten@redhat.com>.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
This commit is contained in:
Ralf Wildenhues 2008-06-17 08:42:14 +02:00
parent 7f53c24967
commit c87512b5ae
4 changed files with 20 additions and 2 deletions

View File

@ -1,3 +1,14 @@
2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix '#undef variable /* comment */' transform in config headers.
* lib/autoconf/status.m4 (_AC_OUTPUT_HEADERS_PREPARE): For
undefined preprocessor macros that are followed by a comment
in the header template, do not create nested comments in the
output.
* tests/torture.at (@%:@define header templates): Extend test.
* NEWS: Update.
Report by Karsten Hopp <karsten@redhat.com>.
2008-06-09 Eric Blake <ebb9@byu.net>
Mark AC_TYPE_SIGNAL as obsolete.

3
NEWS
View File

@ -23,6 +23,9 @@ GNU Autoconf NEWS - User visible changes.
AT_KEYWORDS([m4_if([$1], [], [default])]) no longer complains about
the possibly unexpanded m4_if [regression introduced in 2.62].
** Config header templates `#undef UNDEFINED /* comment */' do not lead to
nested comments any more; regression introduced in 2.62.
* Major changes in Autoconf 2.62 (2008-04-05) [stable]
Released by Eric Blake, based on git versions 2.61a.*.

View File

@ -832,9 +832,9 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
}
split(mac1, mac2, "(") #)
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
# Preserve the white space surrounding the "#".
prefix = substr(line, 1, index(line, defundef) - 1)
print prefix "define", macro P[macro] D[macro]
next
} else {
@ -842,7 +842,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
if (defundef == "undef") {
print "/*", line, "*/"
print "/*", prefix defundef, macro, "*/"
next
}
}

View File

@ -497,6 +497,8 @@ AT_DATA([config.hin],
#define str(define) \
#define
#define stringify(arg) str(arg)
#undef aaa /* with comments */
#undef not_substed /* with comments */
]])
AT_CHECK_AUTOCONF
@ -527,6 +529,8 @@ ARG1
#define str(define) \
#define
#define stringify(arg) str(arg)
#define aaa AAA
/* #undef not_substed */
]])
AT_CHECK([cat config.h], 0, expout)