# [NTG-context] Problem with Filter Module in latent context beta

Mon Apr 16 23:27:34 CEST 2018

On Sun, 15 Apr 2018, Hans Hagen wrote:

> On 4/15/2018 7:08 AM, Aditya Mahajan wrote:
>> On Sun, 15 Apr 2018, Hans Hagen wrote:
>>
>>> On 4/14/2018 9:52 PM, Lutz Haseloff wrote:
>>>> I get another error message:
>>>>
>>>> open source > level 4, order 5, name 't-module-catcodes.tex'
>>>>
>>>> tex error > tex error on line 96 in file t-module-catcodes.tex: !
>>>> Undefined control sequence
>>> why are special catcodes needed? an dif so, there are often easier ways
>>> than low level hacking
>>
>> This is the commit (from 2011!) where I added this code:
>>
>>
>> My guess is that I did not want multiple newlines to collapse in t-vim, so
>> I had redefined \activeendoflinetoken to {\strut\par}. The offending lines
>> are copied from catc-ini.mkiv from the same time:
>>
>> https://github.com/contextgarden/context-mirror/blob/5056d7a854142aa63032b0a3ca4d41c496e41faf/tex/context/base/catc-ini.mkiv
>>
>> to make sure that I use the same syntax for MkII and MkIV.
>>
>> A couple of years after that I split the MkII and MkIV code into separate
>> files, but I never touched the catcode part (because it was working).
>>
>> I cannot test the latest beta right now; I'll test it on Monday. In the
>> meanwhile, what is the current recommended method to alter the way literal
>> newlines and tabs are shown.
> \starttext
>
> \start
> \def\obeyedline{\blank[line]} \obeylines
>
> line 1
>
>
> line 2
>
> line 3
>
> \stop
>
> \stoptext
>
> blank will cleanup for you

I don't want multiple empty lines to collapse (this is for code listing).
Here is a minimal example showing what t-vim is doing:

\newcatcodetable \MinimalCatcodes

\startcatcodetable \MinimalCatcodes % for reading t-vim output
\catcode\backslashasciicode  = \escapecatcode
\catcode\leftbraceasciicode  = \begingroupcatcode
\catcode\rightbraceasciicode = \endgroupcatcode
\catcode\endoflineasciicode  = \activecatcode
\catcode\formfeedasciicode   = \othercatcode
\catcode\spaceasciicode      = \othercatcode
\stopcatcodetable

\starttext
\bgroup
\def\obeyedline{\strut\par}
%\def\obeyedline{\blank[line]}
\setcatcodetable\MinimalCatcodes\letcharcode\endoflineasciicode\obeyedline
This is a \color[red]{test}

To check multiple lines as well as color
\egroup
\stoptext

If I replace the {\strut\par} with {\blank[line]}, multiple empty lines
are collapsed to a single line.