[Top][All Lists]

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

Re: [PATCH] overquoting in implementation of %code and %defines

From: Joel E. Denny
Subject: Re: [PATCH] overquoting in implementation of %code and %defines
Date: Fri, 12 Jan 2007 17:20:29 -0500 (EST)

The mailing list didn't archive the following message, I never received a 
copy, and I received no responses, so I thought I'd try again.

On Tue, 9 Jan 2007, Joel E. Denny wrote:

> On Tue, 9 Jan 2007, Paolo Bonzini wrote:
> > The definitions in %code and %defines are overquoted.  It is useless to
> > specify "[[namespace]]", for example.
> Stepan Kasal recently explained this issue to me on the Autoconf mailing 
> list.  It's also mentioned somewhere in the Autoconf manual, I believe.  
> Here's the general interface convention for macros in his words:
>   As a general rule, if you write
>           MACRO1([something with MACRO2])
>   then MACRO2 will gen expanded.  You have to quote twice if you want
>   to preserve the literal string:
>           MACRO1([[something with MACRO2]])
> In b4_get_percent_code([[top]]), `top' is not a macro to be expanded.  I 
> see it as a literal string containing the name of a %code qualifier.
> I just noticed that I forgot to accommodate the possibility of a `.' 
> appearing in a %define variable name or a %code qualifier.  I meant to add 
> an m4_indir for retrieving these values.  I'll commit my fix after we 
> settle the issues you've raised.
> > In addition, the check for bad qualifiers can be simplified by using 
> > internal
> > macro names like STEM(name) for each skeleton-tested name, and then using
> > "m4_ifdef" instead of nesting two m4_foreach loops.
> I like that better, but let's commit that after we settle the other issues 
> please.  Thanks.
> > Finally, I added an argument to b4_get_percent_define which is the default
> > value of the %define.  I found it valuable in the conversion of the Java
> > skeleton to the new system.
> But that means you have to repeat the default every time you want the 
> value.  Why not use m4_define_default instead?  For example, see the 
> beginning of c++.m4.

reply via email to

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