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