Difference in doifinset in MkII and MkIV
The following works in MkIV but fails in MkIV: \unprotect \def\!!yesandon{yes,on} \doifinsetelse{yes}\!!yesandon {\writestatus{TEST}{YES}} {\writestatus{TEST}{NO}} \protect This can be fixed by changing the definition \def\p!doifinsetelse#1#2#3#4% {\donefalse \edef\!!stringa{#3}% \ifx\!!stringa\empty \else - \processcommalist[#4]\p!docheckiteminset + \processcommacommand[#4]\p!docheckiteminset \fi \ifdone\expandafter#1\else\expandafter#2\fi} Can this be changed in syst-gen.mkii? Thanks, Aditya
On Wed, 21 Sep 2011, Wolfgang Schuster wrote:
Am 21.09.2011 um 05:20 schrieb Aditya Mahajan:
The following works in MkIV but fails in MkIV:
\unprotect \def\!!yesandon{yes,on} \doifinsetelse{yes}\!!yesandon
\ExpandSecondAfter\doifinsetelse{yes}\!!yesandon
It’s awkward but this how it works in MkII.
\ExpandSecondAfter is MkII only, so I cannot use it for code that is to be used in both MkII and MkIV. So, I re-request my original proposal: in core-gen.mkii \def\p!doifinsetelse#1#2#3#4% {\donefalse \edef\!!stringa{#3}% \ifx\!!stringa\empty \else - \processcommalist[#4]\p!docheckiteminset + \processcommacommand[#4]\p!docheckiteminset \fi \ifdone\expandafter#1\else\expandafter#2\fi} Aditya
On 15-10-2011 03:13, Aditya Mahajan wrote:
On Wed, 21 Sep 2011, Wolfgang Schuster wrote:
Am 21.09.2011 um 05:20 schrieb Aditya Mahajan:
The following works in MkIV but fails in MkIV:
\unprotect \def\!!yesandon{yes,on} \doifinsetelse{yes}\!!yesandon
\ExpandSecondAfter\doifinsetelse{yes}\!!yesandon
It’s awkward but this how it works in MkII.
\ExpandSecondAfter is MkII only, so I cannot use it for code that is to be used in both MkII and MkIV. So, I re-request my original proposal:
in core-gen.mkii
\def\p!doifinsetelse#1#2#3#4% {\donefalse \edef\!!stringa{#3}% \ifx\!!stringa\empty \else - \processcommalist[#4]\p!docheckiteminset + \processcommacommand[#4]\p!docheckiteminset \fi \ifdone\expandafter#1\else\expandafter#2\fi}
I cannot oversee the consequences of that. Can't you wrap your call in \expanded{\doifinsetelse{...}{...}} {} {} this should work in both mk's Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Sat, 15 Oct 2011, Hans Hagen wrote:
On 15-10-2011 03:13, Aditya Mahajan wrote:
On Wed, 21 Sep 2011, Wolfgang Schuster wrote:
Am 21.09.2011 um 05:20 schrieb Aditya Mahajan:
The following works in MkIV but fails in MkIV:
\unprotect \def\!!yesandon{yes,on} \doifinsetelse{yes}\!!yesandon
\ExpandSecondAfter\doifinsetelse{yes}\!!yesandon
It’s awkward but this how it works in MkII.
\ExpandSecondAfter is MkII only, so I cannot use it for code that is to be used in both MkII and MkIV. So, I re-request my original proposal:
in core-gen.mkii
\def\p!doifinsetelse#1#2#3#4% {\donefalse \edef\!!stringa{#3}% \ifx\!!stringa\empty \else - \processcommalist[#4]\p!docheckiteminset + \processcommacommand[#4]\p!docheckiteminset \fi \ifdone\expandafter#1\else\expandafter#2\fi}
I cannot oversee the consequences of that.
Can't you wrap your call in
\expanded{\doifinsetelse{...}{...}} {} {}
this should work in both mk's
No. Not without a lot of \noexpand. I'll add a macro that expands to \ExpandSecond after in MkII and \relax in MkIV. Aditya
participants (3)
-
Aditya Mahajan
-
Hans Hagen
-
Wolfgang Schuster