autoconf
[Top][All Lists]
Advanced

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

Re: case change in m4_foreach()


From: Eric Blake
Subject: Re: case change in m4_foreach()
Date: Wed, 20 Feb 2013 11:03:16 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2

On 02/20/2013 10:55 AM, Robert Boehne wrote:
> I'm writing a macro that takes a list of comma-separated arguments and
> then uses m4_foreach
> to loop over each argument in the list:
> 
> m4_foreach([var_name], [$1]
> [
>  dnl Body
> ])
> 
> In the body I want to do some string manipulation on
> the variables value, making it uppercase and replacing - and . with
> underscores.
> 
> The problem is that for any macro that translates text, the argument
> is interpreted literally - i.e.
> 
>>>  m4_toupper(var_name)
> gives
>>> VAR_NAME
> 
> instead of transforming the value, it transforms the name.

> 
> How can I get the contents of the variable transformed?

Use m4_defn.

m4_foreach([var_name], [$1],
[
  m4_toupper(m4_defn([var_name]))
])

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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