Thanks very much Eric and Jack.

I can make it work using 'indir'.

Regards

Varghese Paul

On Sat, Jan 21, 2017 at 4:42 AM, Eric Blake <[email protected]> wrote:

> On 01/19/2017 09:50 PM, Varghese Paul wrote:
> >  Hi all,
> >
> > Nedd a help on the below program. How can i convert the formatted strings
> > to MARCO ?. In the below program i am not able to replace the FORMATTED
> > strings to macro.
> >
> >
>
> >
> > forloop(`i', `1', APP_DOMAINS,
> > ``VARIABLE_APP_PORT'i'
>
> So you are trying to construct a macro name to be called, where each
> iteration of the loop constructs another macro name.  The problem with
> your approach is that there is no way to expand i without first parsing
> over the string `VARIABLE_APP_PORT', making that text ineligible for
> rescanning.  Sounds like you want to use indir:
>
> forloop(`i', `1', APP_DOMAINS,
> `indir(`VARIABLE_APP_PORT'i)'
> )
>
> Or, if you want to stick to straight POSIX m4, you'll have to write a
> helper macro that concatenates two arguments and then scans the overall
> result for a macro name:
>
> define(`concat', `$1$2')dnl
> forloop(`i',`1',APP_DOMAINS,
> `concat(`VARIABLE_APP_PORT',i)'
> )
>
>
> --
> Eric Blake   eblake redhat com    +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
>

Reply via email to