[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
signature.asc
Description: OpenPGP digital signature