On Fri, 14 Nov 2003, peter reilly <[EMAIL PROTECTED]> wrote:

> <presetdef> expands the properties at the point of use, not
> at the point of definition.

Better note that somewhere prominently.

> On Friday 14 November 2003 10:53, Stefan Bodewig wrote:

>> Peter, Jan, now that we've seen Jose Alberto's use case - what can
>> macrodef do when we use (local) properties that can't be done with
>> textual substitutions?

> I do not like using a different notation for attributes.

unless they are a different thing than properties, if I understand you
correctly.

> Other than that, there is not much differnce.  Retaining the ${}
> format (implying using local properties) would be a benefit, in that
> porting of antcall's would be easier.

OK.

> If attributes are local properties, there is an issue with shadowing
> of user properties.

Actually, shadowing any properties, but that's an issue of <local> in
general.

>> The only expression evaluation we have in Ant is property expansion
>> and that would have been performed before the value of the
>> attribute gets used - and exactly once - no matter how we implement
>> it, wouldn't it?
> 
> Not quite, the expansion gets performed just before a task is run,
> and with macrodef and presetdef, the UE's are stored and (for
> macrodef's case) copied. If the expansion is done by
> macrodef/presetdef, it is difficult to stop the expansion being done
> again later.

At what stage?  I mean, is the a way that

<property name="foo" value="${bar}"/>
<property name="bar" value="baz"/>

was defined and a text of ${foo} somewhere inside a macro (pr
presetdefed task) would end up being resolved to baz?  I.e. is it
possible that the same string undergoes macro expansion more than
once?

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to