Description
When using #evaluate, all further macro processing is broken; old macros are not recognized anymore, and new macros cannot be defined.
For example:
#macro(aSimpleMacro) This is a simple macro #end ## called 3 times to show that it works each time #aSimpleMacro() #aSimpleMacro() #aSimpleMacro() #macro(doEval $b) #evaluate($x) #end #set($x = 'value of x') #doEval('$x') ## after the first call, which used an #evaluate, these two won't work anymore: #doEval('$x') #doEval('$x') #macro(anotherSimpleMacro) This is another simple macro #end ## This newly defined macro doesn't work, either... #anotherSimpleMacro() ## And the first macro, which worked well before, suddenly stops working #aSimpleMacro() {/noformat} should print:
This is a simple macro
This is a simple macro
This is a simple macro
value of x
value of x
value of x
This is another simple macro
This is a simple macro
{/noformat}but instead prints:
This is a simple macro
This is a simple macro
This is a simple macro
value of x
#doEval('$x')
#doEval('$x')
#anotherSimpleMacro()
#aSimpleMacro(){/noformat}