Vit Zyka wrote:
> Hi,
>
> there is a bug in \doprocessseparatedlist (syst-ext.tex). Problem is if
> a list item starts with a single_char followed by a space. See line 5:
>
> ----------------------------------------------
> \starttext
> \def\Do#1{(#1)}
> 1\processseparatedlist[{aap noot}] [ ]\Do \par
> 2\processseparatedlist[{aap} {noot}][ ]\Do \par
> 3\processseparatedlist[aap {noot}] [ ]\Do \par
> 4\processseparatedlist[aap noot] [ ]\Do \par
> 5\processseparatedlist[aap;noot;a noot;noot a; noot a noot][;]\Do \par
> 6\processseparatedlist[][;]\Do \par
> 7\processseparatedlist[;][;]\Do \par
> \stoptext
> -------------------------------------------------
>
> it returns
> (aap noot)
> (aap)(noot)
> (aap)(noot)
> (aap)(noot)
> (aap)(noot)noot(a)(noot a)(noot a noot)
> ^^^^^^^
>
> Solution:
> \def\doprocessseparatedlist#1]#2[#3]#4%
> {\def\dodoprocessseparatedlist##1##2#3%
> {\def\tmp{##2}% ------------------------------- new
> \if]##1%
> \let\dodoprocessseparatedlist\relax
> \else\if]##2%
> \let\dodoprocessseparatedlist\relax
> %\else\ifx\blankspace##2%
> \else\ifx\blankspace\tmp % ------------------- new
> #4{##1}%
> \else
> #4{##1##2}%
> \fi\fi\fi
> \dodoprocessseparatedlist}%
> [EMAIL PROTECTED]
>
then maybe also better test for the space first
\def\doprocessseparatedlist#1]#2[#3]#4%
{\def\dodoprocessseparatedlist##1##2#3%
{\def\!!stringa{##2}% suggested by VZ
\if]##1%
\let\dodoprocessseparatedlist\relax
\else\ifx\blankspace\!!stringa
#4{##1}%
\else\if]##2%
\let\dodoprocessseparatedlist\relax
\else
#4{##1##2}%
\fi\fi\fi
\dodoprocessseparatedlist}%
[EMAIL PROTECTED]
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
_______________________________________________
dev-context mailing list
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-context