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.