core-sys.mkiv :On Mon, Sep 30, 2013 at 5:38 PM, Lars Huttar <lars_huttar@sil.org> wrote:
I found \start and \stop referenced in the context reference manual
(e.g. section 5.5).
While \startXYZ - \stopXYZ pairs are discussed earlier, I can't find any
place that \start and \stop (with no suffix) are described.
They seem to be used like \bgroup and \egroup. Is that right?
They are defined in core-sys.mkiv, but I can't figure out from there
what they actually do.
I'll contribute documentation for them if someone can tell me what they
mean.
Thanks,
Lars
\unexpanded\def\start
{\dosingleempty\syst_start}
\def\syst_start
{\bgroup
\iffirstargument
\expandafter\syst_start_yes
\else
\expandafter\syst_start_nop
\fi}
\def\syst_start_yes[#1]%
{\edef\m_syst_start_stop{#1}%
\ifx\m_syst_start_stop\empty
\let\syst_stop_indeed\donothing
\else\ifcsname\e!start\m_syst_start_stop\endcsname
\expandafter\let\expandafter\syst_stop_indeed\csname\e!stop\m_syst_start_stop\endcsname
\csname\e!start\m_syst_start_stop\expandafter\expandafter\expandafter\endcsname
\else
\let\syst_stop_indeed\donothing
\fi\fi}
\def\syst_start_nop[#1]%
{\let\syst_stop_indeed\donothing}
\unexpanded\def\stop
{\syst_stop_indeed
\egroup}
(it should be \let\donothing\empty)