Vincent Massol wrote:
On Oct 3, 2008, at 12:18 PM, Sergiu Dumitriu wrote:
Pascal Voitot wrote:
OK, I don't have solved everything but I have found the origin of the stackoverflow... I coded a Recursive VelocityMacro and apparently variables inside VM macro are not local and it makes my recursion infinite!!! Apparently, there is an option in velocity to make local macro variables have only a local scope. Do you see any problem about this? Yes, I had my share of pain with the fact that variables defined inside macros are global... I am +1 for making them local, but all the macros should be checked, since some of them might use this "feature".
Velocity Macros *are* local (i.e. we're using the local macro configuration option from Velocity).
<property> <name>velocimacro.permissions.allow.inline.local.scope</ name> <value>true</value> </property>
However for the include feature of XWiki Syntax 1.0 to work we have a hack in the velocity module to allow macros to span more than 1 document. This is not required for the XWiki Syntax 2.0 (AFAIR) but we need it for the 1.0 syntax to continue working.
Vincent, this is not about macros, but about $variables used in macros. For example: #macro(doSomething) #set($a = 'b') #end #doSomething() $a => prints b, $a is now a global variable outside the scope of the macro. -- Sergiu Dumitriu http://purl.org/net/sergiu/