···
It’s a expansion problem, you can either expand the content in the definition of \mogrify (as seen below) or you make the \mogrify command unexpanded and you expand the content of the \wwparameter (i.e. \doifsomething{…}{\normalexpanded{\mogrify{…}}})
Thanks a lot, I rewrote my macros according to your the first suggestion and it works like a breeze. Best regards Philipp
\unprotect
\def\mogrify_scan#first#second#third#rest\relax {\def\m_mogrify_three{#first#second#third}% \def\m_mogrify_rest {#rest}}
\def\mogrify#content% {\begingroup \edef\m_mogrify_content{#content}% \expandafter\mogrify_scan\m_mogrify_content\relax \colored [red]{\m_mogrify_three}% \colored[green]{\m_mogrify_rest }% \endgraf \endgroup}
\installnamespace {ww} \installcommandhandler \????ww {ww} \????ww
\appendtoks \setuevalue{\currentww}{\wont_work[\currentww]} \to \everydefineww
\unexpanded\def\wont_work[#id]% {\edef\currentww{#id}% \dosingleempty\wont_work_indeed}
\def\wont_work_indeed[#setups]#content% {\iffirstargument\setupcurrentww[#setups]\fi \doifsomething{\wwparameter{param}}{\mogrify{\wwparameter{param}}}% \endgraf \framed{#content}}
\defineww[wontwork]
\protect
\starttext
\mogrify{foobar}\par%% the macro does work in isolation
\wontwork[param=whatever]{will it work?} \wontwork[param=] {this, however, does work}
\stoptext
Wolfgang
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
-- () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments