bug-gnulib
[Top][All Lists]
Advanced

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

AH_VERBATIM missing 2nd arg (was: OS/2 and stdarg module)


From: Ralf Wildenhues
Subject: AH_VERBATIM missing 2nd arg (was: OS/2 and stdarg module)
Date: Thu, 6 Jul 2006 18:20:30 +0200
User-agent: Mutt/1.5.11-2006-07-05

* Bruno Haible wrote on Tue, Jul 04, 2006 at 06:55:08PM CEST:
> Eric Blake wrote:
> > Meanwhile, is it worth patching autoconf/lib/autoheader.m4 to complain when
> > $2 of AH_VERBATIM is empty, so this mistake is less likely to occur in the
> > future?
> 
> This would be welcome. Something like this (untested)?

>   #
>   # Quote for Perl '' strings, which are those used by Autoheader.
>   m4_define([AH_VERBATIM],
> ! [m4_ifval([$1],
> !    [AS_LITERAL_IF([$1],
> !               [AH_OUTPUT([$1], AS_ESCAPE([[$2]], [\\'']))])],
> !    [AS_WARN([AH_VERBATIM invoked with only one argument])])
>   ])

Hmm.  Besides the typo (warn for empty $1 instead of $2), this warning
is for the developer, to be issued at 'autoconf' execution time, not
configure run time, so it should use m4_warning, or maybe even better
AC_WARNING.  But I wonder a bit whether some code makes use of this
"feature" that
   AH_VERBATIM([key], [some code])
   dnl ...
   AH_VERBATIM([key], []) # no code

happens to not output the code.  Thoughts?

Cheers,
Ralf

        * autoconf/lib/autoheader.m4 (AH_VERBATIM): Warn about empty
        second argument.  Reported by Eric Blake and Bruno Haible.

Index: lib/autoconf/autoheader.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/autoheader.m4,v
retrieving revision 1.7
diff -u -r1.7 autoheader.m4
--- lib/autoconf/autoheader.m4  14 May 2005 07:00:39 -0000      1.7
+++ lib/autoconf/autoheader.m4  6 Jul 2006 16:20:08 -0000
@@ -67,8 +67,10 @@
 #
 # Quote for Perl '' strings, which are those used by Autoheader.
 m4_define([AH_VERBATIM],
-[AS_LITERAL_IF([$1],
-              [AH_OUTPUT([$1], AS_ESCAPE([[$2]], [\\'']))])
+[m4_ifval([$2],
+  [AS_LITERAL_IF([$1],
+                [AH_OUTPUT([$1], AS_ESCAPE([[$2]], [\\'']))])],
+  [AC_WARNING([AH_VERBATIM invoked with only one argument])])
 ])
 
 




reply via email to

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