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]