summaryrefslogtreecommitdiff
path: root/macros/context/contrib/context-filter/tex/context/third/filter/t-module-catcodes.mkii
blob: 052c9fca5b37f3b294a281928858516f4a0a9d39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
%D \module
%D   [     file=t-module-catcodes,
%D      version=2011.12.17,
%D        title=\CONTEXT\ User Module,
%D     subtitle=Module Catcodes,
%D       author=Aditya Mahajan,
%D         date=\currentdate,
%D    copyright=Aditya Mahajan,
%D        email=adityam <at> ieee <dot> org,
%D      license=Simplified BSD License]
%D
%D  MkII and MkIV use different names and values for commonly used catcode
%D  tables. So, I define a private copy of the catcode tables that are needed
%D  by the filter and vim modules.


\writestatus{loading}{Module Catcodes (ver: 2011.12.17)}

\startmodule    [module-catcodes]

\newcatcodetable   \modulecatcodes
\startcatcodetable \modulecatcodes % same as \prtcatcodes
    \catcode\tabasciicode       \spacecatcode
    \catcode\endoflineasciicode \endoflinecatcode
    \catcode\formfeedasciicode  \endoflinecatcode
    \catcode\spaceasciicode     \spacecatcode
    \catcode\endoffileasciicode \ignorecatcode
    \catcode\circumflexasciicode\superscriptcatcode
%   \catcode\underscoreasciicode\subscriptcatcode
    \catcode\underscoreasciicode\lettercatcode
    \catcode\ampersandasciicode \alignmentcatcode
    \catcode\backslashasciicode \escapecatcode
    \catcode\leftbraceasciicode \begingroupcatcode
    \catcode\rightbraceasciicode\endgroupcatcode
    \catcode\dollarasciicode    \mathshiftcatcode
    \catcode\hashasciicode      \parametercatcode
    \catcode\commentasciicode   \commentcatcode
    \catcode`\@                 \lettercatcode
    \catcode`\!                 \lettercatcode
    \catcode`\?                 \lettercatcode
    \catcode\tildeasciicode     \activecatcode
    \catcode\barasciicode       \activecatcode
\stopcatcodetable

\def\unprotectmodulecatcodes
    {\pushcatcodetable 
     \setcatcodetable\modulecatcodes}

\def\protectmodulecatcodes
    {\popcatcodetable}

\unprotectmodulecatcodes

%D The following catcode tables are used for reading
%D and writing to files

\newcatcodetable \externalfilter@read_catcodes
\newcatcodetable \externalfilter@minimal_catcodes
\newcatcodetable \externalfilter@verb_catcodes

\startcatcodetable \externalfilter@read_catcodes % same as typcatcodesa
    \catcode\tabasciicode        = \othercatcode
    \catcode\endoflineasciicode  = \othercatcode
    \catcode\formfeedasciicode   = \othercatcode
    \catcode\spaceasciicode      = \othercatcode
    \catcode\endoffileasciicode  = \othercatcode
    \catcode\leftbraceasciicode  = \begingroupcatcode
    \catcode\rightbraceasciicode = \endgroupcatcode
\stopcatcodetable

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

\startcatcodetable \externalfilter@verb_catcodes % same as vrbcatcodes
    \catcode\tabasciicode       = \othercatcode
    \catcode\endoflineasciicode = \othercatcode
    \catcode\formfeedasciicode  = \othercatcode
    \catcode\spaceasciicode     = \othercatcode
    \catcode\endoffileasciicode = \othercatcode
\stopcatcodetable



\ifdefined \activeendoflinetoken \else
    % from catc-ini.mkiv
    \bgroup
        \catcode \tabasciicode       \activecatcode  \gdef\activetabtoken      {^^I}
                                                     \gdef\outputnewlinechar   {^^J}
        \catcode \formfeedasciicode  \activecatcode  \gdef\activeformfeedtoken {^^L}
        \catcode \endoflineasciicode \activecatcode  \gdef\activeendoflinetoken{^^M}
    \egroup
\fi

\protectmodulecatcodes
\stopmodule