On Sun, 01 Oct 2006 22:42:03 +0100
Sanjoy Mahajan
I'd seen a similar problem but didn't manage to catch it before it slithered away. But I'm pretty sure it used to work (perhaps with an August 06 release).
Starting from your example, the following was the smallest file I could find showing the same problem (using the latest beta):
\def\room{\starttable[|r|l|]} \starttext \room \NC a \NC b \NC\MR \stoptable \stoptext
I think it's related to the argument processing in \starttable because this works:
\def\room{\starttable} \starttext \room[|r|l|] \NC a \NC b \NC\MR \stoptable \stoptext
-Sanjoy
The arguments seems to be procesed as a argument for discretionaries. The following works but it is no real solution for the problem. \unprotect %\beginETEX \detokenize \def\installdiscretionaries#1#2#3% {\setevalue{\strippedcsname\mathmodediscretionary\string#1} {\detokenize{#1}}% \setvalue {\strippedcsname\textmodediscretionary \string#1}{#3}% \catcode`#1=\@@active \scratchcounter=\the\uccode`~ \uccode`~=`#1 \uppercase{\unexpanded\def~{\discretionarycommand~}}% \uccode`~=\scratchcounter} %\endETEX \installdiscretionaries || \compoundhyphen \protect \def\room#1{\starttable[ s0 |r|l|]#1\stoptable} \def\student#1#2{\NC#1\NC#2\NC\MR} \starttext \room{ \student{A}{B} \student{C}{D} } \stoptext Wolfgang