On Thursday 23 October 2003 13:44, Stefan Bodewig wrote:
> On Thu, 23 Oct 2003, Jose Alberto Fernandez
>
> <[EMAIL PROTECTED]> wrote:
> >> From: Stefan Bodewig [mailto:[EMAIL PROTECTED]
> >>
> >> If you have several nested <ant>s, you'd have to check each level
> >> for a <local> that was in place shadowing your global value.
> >
> > But this is no more or less shadowing than me making one of the
> > <ant> calls passing a <param> with the value of the local.
>
> Except that <param> is explicit and doesn't happen by accident.
>
> > I think it is a mistake that <local> if local is not visible across
> > <ant>, if that were the case then it should not be visible across
> > <macrodef> either.
This is my point. The <local> should be visible for both or for none.
>
> You have a compelling example here
>
> > <macrodef name="m">
> > <echo>${p}</echo>
> > <if>
> > <equals arg1="${p}" arg2="my local p"/>
> > <then>
> > <antcall target="tm"/>
> > </then>
> > </if>
> > </macrodef>
> >
> > <target name="x">
> > <local name="p" value="my local p">
> > <m/>
> > </local>
> > </target>
> >
> > <target name="tm">
> > <echo>${p}</echo>
> > </target>
> >
> > <property name="p" value="my global p"/>
> >
> > [echo] my local p
> > [echo] my global p
>
> and I currently don't have an answer for this.
If <m/> and <antcall> do not make local p visible,
then one simply gets:
x:
[echo] my global p
<macrodef name="m">
<sequential>
<echo>${p}</echo>
<antcontrib:if>
<equals arg1="${p}" arg2="my local p"/>
<then>
<antcall target="tm"/>
</then>
</antcontrib:if>
</sequential>
</macrodef>
<target name="x">
<local name="p" value="my local p"/>
<m/>
</target>
<target name="tm">
<echo>${p}</echo>
</target>
<property name="p" value="my global p"/>
Peter
>
> Stefan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]