Hi FrD
There are a couple of things going on:
* Parameters in a macro definition are separated with commas. It is
unfortunate that this is different than the white space separator used when
invoking macros
* In your example, the macro invocation of testmacro2 is unpacking to
<<textmacro2 {{!!title}} {{!!foo}}>>. The missing value for the beta
parameter comes out blank, causing the value you've specified with $gamma$
to be passed as the parameter "beta" to testmacro2. The workaround is to
use named parameters and quotes:
Here's a corrected version:
\define testmacro1(alpha:"{{!!title}}",beta,gamma:"{{!!foo}}")
<<testmacro2 alpha:"""$alpha$""" beta:"""$beta$""" gamma:"""$gamma$""">>
\end
\define testmacro2(alpha,beta,gamma)
alpha = $alpha$
<br>
beta = $beta$
<br>
gamma = $gamma$
\end
<<testmacro1>>
Best wishes
Jeremy
On Mon, Sep 28, 2015 at 6:03 PM, FrD <[email protected]> wrote:
> Hi,
>
> Still exploring macros and default values.
> I've got a problem in a macro calling a second macro. The first macro has
> some arguments with default values.
>
> Here's an MTC.
> Create a tiddler (say TestMacros) with a field "foo" with value "bar".
> Put this code in the tiddler :
>
> \define testmacro1(alpha:{{!!title}} beta gamma:{{!!foo}})
> <<testmacro2 $alpha$ $beta$ $gamma$>>
> \end
>
> \define testmacro2(alpha beta gamma)
> alpha = $alpha$
> <br>
> beta = $beta$
> <br>
> gamma = $gamma$
> \end
>
> <<testmacro1>>
>
> The result is :
>
> alpha = TestMacros
> beta = bar
> gamma =
>
> Seems to me that beta should'nt hold any value and gamma should hold "bar"
> as its value.
> Could someone explain this behaviour ?
>
> Thanks
>
> FrD
>
> --
> You received this message because you are subscribed to the Google Groups
> "TiddlyWiki" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/tiddlywiki.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/tiddlywiki/a21ed836-2926-4468-bc9b-aae7de4f5a80%40googlegroups.com
> <https://groups.google.com/d/msgid/tiddlywiki/a21ed836-2926-4468-bc9b-aae7de4f5a80%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
Jeremy Ruston
mailto:[email protected]
--
You received this message because you are subscribed to the Google Groups
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit
https://groups.google.com/d/msgid/tiddlywiki/CAPKKYJbcMA-tC2Bmkr_62JY-AzT2ppx5R7zDj-SWFmSJ%3D%2BxfPA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.