summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/syst-ini.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/syst-ini.mkxl')
-rw-r--r--tex/context/base/mkxl/syst-ini.mkxl45
1 files changed, 29 insertions, 16 deletions
diff --git a/tex/context/base/mkxl/syst-ini.mkxl b/tex/context/base/mkxl/syst-ini.mkxl
index dbd82c166..018658544 100644
--- a/tex/context/base/mkxl/syst-ini.mkxl
+++ b/tex/context/base/mkxl/syst-ini.mkxl
@@ -98,8 +98,6 @@
\catcode\tildeasciicode \activecatcode % `\~ tilde is active
%catcode\delasciicode \invalidcatcode % `\^^? ascii delete is invalid
-\chardef\statuswrite 128 % we need to get rid of this one
-
%D First we need to initialization the primitives. Because \CONTEXT\ is already a
%D pretty old macro package, we have a couple of issues with respect to primitives.
%D The \ETEX\ engine added a few as did \PDFTEX. The \LUATEX\ engine added even
@@ -244,11 +242,13 @@
\permanent\countdef \c_syst_min_counter_value = 125 \c_syst_min_counter_value = -"7FFFFFFF % beware, we use index 125 at the lua end
\permanent\countdef \c_syst_max_counter_value = 126 \c_syst_max_counter_value = "7FFFFFFF % beware, we use index 126 at the lua end
-\immutable\integerdef\zerocount = 0
-\immutable\integerdef\plusone = 1
-\immutable\integerdef\minusone = -1
+\immutable\integerdef\zerocount 0
+\immutable\integerdef\plusone 1
+\immutable\integerdef\minusone -1
+
+\immutable\integerdef\normalpagebox 255 % hardcoded in pdftex/xetex
-\immutable\integerdef\normalpagebox = 255 % hardcoded in pdftex/xetex
+\immutable\integerdef\statuswrite \minusone
% A few traditional allocations (these might go):
@@ -741,7 +741,7 @@
\popoverloadmode
%let\pushoverloadmode\relax
%let\popoverloadmode\relax
-% \tracingall
+ % \tracingall
\normaldump}
\permanent\protected\def\input
@@ -820,12 +820,14 @@
%D {newmacro,setnewmacro,newfraction}
%D
%D Let's be complete and also introduce some definers. These are not mandate
-%D but handy for grepping.
+%D but handy for grepping. We make these mutable because they are \type
+%D {\let} (the only advantage is that we often give them names with some
+%D prefix.
-\permanent\protected\def\newmacro #1{\let#1\empty}
-\permanent\protected\def\setnewmacro#1{\let#1}
+\permanent\protected\def\newmacro #1{\mutable\let#1\empty}
+\permanent\protected\def\setnewmacro#1{\mutable\let#1}
-\permanent\protected\def\newfraction#1{\let#1\!!plusone}
+\permanent\protected\def\newfraction#1{\mutable\let#1\!!plusone}
\def\!!zerocount{0} % later redefined
\def\!!plusone {1} % later redefined
@@ -937,28 +939,39 @@
%D get. Beware: this macro does not support nested loops. We use a namespace
%D prefix \type {@@pln}.
-\permanent\def\loop#1\repeat{\def\@@plnbody{#1}\@@plniterate} % might go
+\permanent\def\loop#1\repeat{\def\syst_plain_body{#1}\syst_plain_iterate} % might go
%D The following makes \type {\loop} \unknown\ \type {\if} \unknown\ \type
%D {\repeat} skippable (clever trick):
\permanent\let\repeat\fi % so both \loop and \repeat are reserved words!
-%D The original (no \type {@@pln} there):
+%D The original (no \type {syst_plain_} there):
%D
%D \starttyping
-%D \def\@@plniterate{\@@plnbody\let\next\@@plniterate\else\let\next\relax\fi\next}
+%D \def\syst_plain_iterate
+%D {\syst_plain_body
+%D \let\next\syst_plain_iterate
+%D \else
+%D \let\next\relax
+%D \fi
+%D \next}
%D \stoptyping
%D
%D A more efficient alternative:
%D
%D \starttyping
-%D \def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\expandafter\relax\fi}
+%D \def\syst_plain_iterate
+%D {\syst_plain_body
+%D \expandafter\syst_plain_iterate
+%D \else\expandafter\relax\fi}
%D \stoptyping
%D
%D An even more efficient one:
-\def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\fi}
+\def\syst_plain_iterate
+ {\syst_plain_body
+ \expandafter\syst_plain_iterate\else\fi}
%D We don't define a real output routine yet but at least get rid of pages: