Hi all, for those who don't follow bugzilla comment threads (I know I seldomly do):
Until Ant 1.8.2 ${} sequences in macrodef attributes were expanded once before @{} sequences are expanded and once in the context where the @{} is expanded. I.e. with <macrodef name="propertycopy"> <attribute name="name"/> <attribute name="from"/> <sequential> <property name="@{name}" value="${@{from}}"/> </sequential> </macrodef> <property name="choice" value="2"/> <property name="thing.1" value="one"/> <property name="thing.2" value="two"/> <property name="thing.3" value="three"/> <propertycopy to="thing" from="thing.${choice}"/> @{from} becomes thing.2 and the second expansion does what the FAQ says. Ant's trunk has removed the ${} expansion that happens before @{} expansion, breaking the example of our own FAQ and breaking some other existing macrodefs out there (for example in Netbeans). https://issues.apache.org/bugzilla/show_bug.cgi?id=52621 Double expansion is unexpected and leads to subtle issues: https://issues.apache.org/bugzilla/show_bug.cgi?id=42046 https://issues.apache.org/bugzilla/show_bug.cgi?id=41400 In particular it made some AntUnit tests pass in Ant's own code base even though the code was actually broken. Jesse suggests to introduce an attribute to macrodef (or even at the granularity of the individual attribute definition of a macrodef) to control ${} expansion. I'm not sure whether the macrodef writer will always know whether she wants double-expansion or not. I also fear it will be quite difficult to explain in the manual of a macrodefed task ("this attribute may have ${} sequences expanded twice, this other one will not"). Another option would be to not fix the 1.8.2 behavior at all but call it a feature. Macrodef writers then can say something like "foo is implemented as a macrodef so ${} will be expanded twice, see http://ant.apache.org/faq.html#macrodef-property-expansion - not sure whether this a good option. Any other ideas? Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org For additional commands, e-mail: dev-h...@ant.apache.org