From 7c3a2080a946d533f9f34c74c503ccbe12bfb30f Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Tue, 26 Oct 2004 00:00:00 +0200
Subject: stable 2004.10.26

---
 tex/context/base/cont-new.tex |   9 ++
 tex/context/base/context.tex  |   2 +-
 tex/context/base/core-fld.tex |  50 ++++---
 tex/context/base/core-job.tex |   8 +-
 tex/context/base/core-mis.tex |  43 ------
 tex/context/base/core-ref.tex |  10 +-
 tex/context/base/core-sec.tex |   2 +-
 tex/context/base/enco-acc.tex |  18 +--
 tex/context/base/enco-fde.tex |   6 +-
 tex/context/base/enco-lat.tex |   6 +-
 tex/context/base/enco-uc.tex  | 308 +++++++++++++++++++++++++++++++++++++++++-
 tex/context/base/lang-grk.tex |  84 ++++++------
 tex/context/base/lang-ita.tex |   2 +-
 tex/context/base/lang-sla.tex |   2 +-
 tex/context/base/lang-ura.tex |   2 +-
 tex/context/base/page-flt.tex | 126 ++++++++---------
 tex/context/base/page-new.tex |   2 +
 tex/context/base/page-num.tex |  23 ++--
 tex/context/base/page-set.tex |   2 +-
 tex/context/base/s-mod-00.tex |  20 +--
 tex/context/base/spec-fdf.tex |  32 ++---
 tex/context/base/supp-ini.tex |   8 +-
 tex/context/base/supp-lan.tex |   4 +-
 tex/context/base/supp-mis.tex |  44 +++---
 tex/context/base/supp-pdf.tex |   4 +-
 tex/context/base/syst-new.tex |  28 ++--
 tex/context/base/xtag-ini.tex |  28 ++--
 27 files changed, 573 insertions(+), 300 deletions(-)

(limited to 'tex')

diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 66dc52c3c..23327aa10 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -31,6 +31,15 @@
 
 \unexpanded\def\xmlrent#1{\doXMLentity#1;}
 
+% \page[left]
+% \definecolumntextarea[intro][left][x=1,y=1,nx=4,ny=20,state=start,background=introlayer]
+% \setupcolumntextareatext[intro][left][\setups{intro}]
+% \flushcolumntextareas
+
+\def\flushcolumntextareas
+  {\initializecolumntextareas
+   \setvsize}
+
 % And so, after a few years of keeping this potentially dangerous
 % speedup in cont-exp, we now move it to the kernel: the next
 % patch is 30\% faster on main interface (seconds) (9->7 sec on
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 9ce29a94a..2e26cabb2 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
 %D 2004.8.30 the low level interface is english. Watch out and adapt
 %D your styles an modules.
 
-\def\contextversion{2004.10.19}
+\def\contextversion{2004.10.26}
 
 %D Welcome to the main module. When this module is ran through
 %D \type{initex} or \type {tex -i} or \type {whatevertex} using
diff --git a/tex/context/base/core-fld.tex b/tex/context/base/core-fld.tex
index 51cf8749d..8f8c5f263 100644
--- a/tex/context/base/core-fld.tex
+++ b/tex/context/base/core-fld.tex
@@ -233,7 +233,7 @@
    \xdef\@@DriverFieldParent {#4}%
    \xdef\@@DriverFieldKids   {#5}%
    \xdef\@@DriverFieldGroup  {#6}%
-   \setfieldmodes       #7%
+   \setfieldmodes             #7%
    \bgroup
      \def\par{\string\n\string\n}%
      \xdef\@@DriverFieldValues {#8}%
@@ -255,42 +255,42 @@
 
 \def\doshowfields[#1]% todo: tabulate van maken en runtime
   {\bgroup
-   \switchtobodyfont[8pt,tt]
-   \doifsomething{#1}{\def\collectedfields{#1}}
+   \switchtobodyfont[8pt,tt]%
+   \doifsomething{#1}{\def\collectedfields{#1}}%
    \ifx\collectedfields\empty
      \par specify [fieldlist] or say \type{\tracefieldstrue} first\par
    \else
      \def\normalizedfieldmode##1##2##3%
        {\ifcase0##2 \else\sl\fi
-        \ifcase0##1 loner\or parent\or clone\or copy\fi}
+        \ifcase0##1 loner\or parent\or clone\or copy\fi}%
      \def\dosetfield##1##2##3##4##5##6##7##8##9%
-       {##1&##2&##3&##4&##5&##6&\normalizedfieldmode##7&##8&##9\cr}
+       {##1&##2&##3&##4&##5&##6&\normalizedfieldmode##7&##8&##9\cr}%
      \halign
        {&##\strut\hss\quad\cr
-        \noalign{\hrule}
+        \noalign{\hrule}%
         NAME  &TYPE  &ROOT   &
         PARENT&KIDS  &GROUP  &
         MODE  &VALUES&DEFAULT\cr
-        \noalign{\hrule}
+        \noalign{\hrule}%
         \@EA\globalprocesscommalist\@EA[\collectedfields]\getfield
-        \noalign{\hrule}}
+        \noalign{\hrule}}%
    \fi
    \egroup}
 
-\def\showfields%
+\def\showfields
   {\dosingleempty\doshowfields}
 
 \def\dologfields[#1]%
   {\bgroup
    \immediate\openout\scratchwrite=fields.log
-   \doifsomething{#1}{\def\collectedfields{#1}}
+   \doifsomething{#1}{\def\collectedfields{#1}}%
    \ifx\colledtedfields\empty
      \immediate\write\scratchwrite{use \tracefieldstrue}%
    \else
      \def\normalizedfieldmode##1##2##3%
        {\edef\@@DriverFieldMode
           {\ifcase##1 loner \or parent \or clone \or copy \fi
-           \ifcase##2 \else(done)\fi}}
+           \ifcase##2 \else(done)\fi}}%
      \def\dosetfield##1##2##3##4##5##6##7##8##9%
        {\normalizedfieldmode##7%
         \immediate\write\scratchwrite
@@ -399,15 +399,15 @@
 
 \def\setfieldreferences
   {\def\fieldreference##1##2%
-     {\ifundefined{\r!widget##1}
+     {\ifundefined{\r!widget##1}%
         \setxvalue{\r!widget##1}{##2}%
       \else
         \edef\!!stringa{\getvalue{\r!widget##1}}%
         \setxvalue{\r!widget##1}{\!!stringa,##2}%
       \fi}}
 
-\def\resetfieldreferences%
-  {\let\fieldreference=\gobbletwoarguments}
+\def\resetfieldreferences
+  {\let\fieldreference\gobbletwoarguments}
 
 \def\getmainfieldkids#1%
   {\checkfieldreferences
@@ -647,14 +647,10 @@
      \writestatus\m!fields{pass parent field and copies}%
    \fi}
 
-\def\copyfield%
-  {\dodoubleempty\docopyfield}
+\def\copyfield{\dodoubleempty\docopyfield}
 
-\unexpanded\def\field%
-  {\dotripleempty\dofield[\dohandlefield]}
-
-\unexpanded\def\fitfield%
-  {\dotripleempty\dofield[\dohandlefitfield]}
+\unexpanded\def\field   {\dotripleempty\dofield[\dohandlefield]}
+\unexpanded\def\fitfield{\dotripleempty\dofield[\dohandlefitfield]}
 
 \def\dofield[#1][#2][#3]%
   {\iffirstargument
@@ -751,7 +747,7 @@
      \def\docommando##1{\dodosetupfield[##1][#2][][][#3]}%
      \processcommalist[#1]\docommando
    \else\ifsecondargument
-     \doifelse{#2}{\v!reset}
+     \doifelse{#2}\v!reset
        {\def\docommando##1{\donosetupfield[#1][][][][]}}
        {\def\docommando##1{\dodosetupfield[##1][][][][#2]}}%
      \processcommalist[#1]\docommando
@@ -826,13 +822,13 @@
    \fi
      \dontcomplain
      \ifShowFieldLabel
-       \setbox0=\hbox
+       \setbox0\hbox
          {\reshapeframeboxtrue % else wrong dimensions
           \framed
             [\c!style=,\c!color=,\c!align=\c!right,#4]
             {\@@DriverFieldLabel}}%
      \fi
-     \setbox2=\hbox
+     \setbox2\hbox
        {\reshapeframeboxtrue % else wrong dimensions
         \ifVerticalField
           \setupframed[\c!height=6ex,\c!width=\hsize]%
@@ -924,8 +920,8 @@
       \doifelsenothing{#1}
         {\def\therightanswer{#2}}
         {\def\therightanswer{#1}}%
-      \setbox0=\hbox{#2}%
-      \setbox2=\hbox{\therightanswer}%
+      \setbox0\hbox{#2}%
+      \setbox2\hbox{\therightanswer}%
       \dimen0=\ifdim\wd0>\wd2 \wd0 \else \wd2 \fi
       \advance\dimen0 .2em
       \definefield
@@ -955,7 +951,7 @@
    \setbox0\hbox
      {\dontcomplain
       \nextsystemfield
-      \setbox0=\hbox{#2}%
+      \setbox0\hbox{#2}%
       \definesymbol
         [\currentsystemfield:txt]
         [{\inframed[\c!frame=\v!off,\c!background=\v!screen]{#3}}]%
diff --git a/tex/context/base/core-job.tex b/tex/context/base/core-job.tex
index b45b5d495..9942f2430 100644
--- a/tex/context/base/core-job.tex
+++ b/tex/context/base/core-job.tex
@@ -364,19 +364,19 @@
 
 \def\executesystemcommand{\immediate\write18}
 
-\ifnum\etexversion<202
+\ifx\etexversion\undefined \else \ifnum\etexversion<202
   \prependtoks
      \writestatus\m!systems{eTeX version \number\etexversion\space -> too old (bugs)}%
      \writeline
   \to \everyjob
-\fi
+\fi \fi
 
-\ifnum\number\pdftexversion<120
+\ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion<120
   \prependtoks
      \writestatus\m!systems{pdfTeX version \number\pdftexversion\space -> please update}%
      \writeline
   \to \everyjob
-\fi
+\fi \fi
 
 \prependtoks \showcontextbanner \to \everyjob
 
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index be7ba2008..c86df8716 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -1667,49 +1667,6 @@
      \setrigidcolumnhsize\hsize\@@lddistance\@@ldn
    \fi}
 
-% \def\afterbothpairedboxes
-%   {\setbox\secondpairedbox\vbox
-%      {\ifnum\@@ldn>1 \rigidcolumnbalance\nextbox \else \flushnextbox \fi}%
-%    \ifnum\pairedlocationa<2\hbox\else\vbox\fi\bgroup % hide vsize
-%    \forgetall
-%    \ifnum\pairedlocationa<2
-%      \scratchdimen\maxoftwoboxdimens\ht\firstpairedbox\secondpairedbox
-%      \vsize\scratchdimen
-%      \ifdim\scratchdimen<\@@ldhoogte\relax % can be \vsize
-%        \scratchdimen\@@ldhoogte
-%      \fi
-%      \ifdim\scratchdimen>\@@ldmaxhoogte\relax
-%        \scratchdimen\@@ldmaxhoogte
-%      \fi
-%      \valignpairedbox\firstpairedbox \scratchdimen
-%      \valignpairedbox\secondpairedbox\scratchdimen
-%    \else
-%      \scratchdimen\maxoftwoboxdimens\wd\firstpairedbox\secondpairedbox
-%      \halignpairedbox\firstpairedbox \scratchdimen
-%      \halignpairedbox\secondpairedbox\scratchdimen
-%      \scratchdimen\ht\secondpairedbox
-%      \vsize\scratchdimen
-%      \ifdim\ht\secondpairedbox<\@@ldhoogte\relax % can be \vsize
-%        \scratchdimen\@@ldhoogte\relax % \relax needed
-%      \fi
-%      \ifdim\scratchdimen>\@@ldmaxhoogte\relax % todo: totale hoogte
-%        \scratchdimen\@@ldmaxhoogte\relax % \relax needed
-%      \fi
-%      \ifdim\scratchdimen>\ht\secondpairedbox
-%        \setbox\secondpairedbox\vbox to \scratchdimen
-%          {\ifnum\pairedlocationa=3 \vss\fi %
-%           \box\secondpairedbox
-%           \ifnum\pairedlocationa=2 \vss\fi}% \kern\zeropoint
-%      \fi
-%    \fi
-%    \ifcase\pairedlocationa
-%      \box\secondpairedbox\hskip\@@ldafstand\box\firstpairedbox \or
-%      \box\firstpairedbox \hskip\@@ldafstand\box\secondpairedbox\or
-%      \box\secondpairedbox\par  \@@ldtussen \box\firstpairedbox \or
-%      \box\firstpairedbox \par  \@@ldtussen \box\secondpairedbox\else
-%    \fi
-%    \egroup}
-
 \def\afterbothpairedboxes
   {\setbox\secondpairedbox\vbox
      {% \localstartcolor[\@@ldcolor]% does not work yet
diff --git a/tex/context/base/core-ref.tex b/tex/context/base/core-ref.tex
index 75ff24a6d..cfb885e84 100644
--- a/tex/context/base/core-ref.tex
+++ b/tex/context/base/core-ref.tex
@@ -2235,19 +2235,19 @@
        \v!start=>\referencingtrue]%
    \processaction
      [\@@rfinteraction]
-     [  \v!all=>\let\dowantedreference\docompletereference,
-        \v!label=>\let\dowantedreference\dolabelonlyreference,
+     [   \v!all=>\let\dowantedreference\docompletereference,
+       \v!label=>\let\dowantedreference\dolabelonlyreference,
         \v!text=>\let\dowantedreference\dotextonlyreference,
       \v!symbol=>\let\dowantedreference\dosymbolreference]%
    \chardef\autocrossfilereferences\zerocount
    \processaction
      [\@@rfautofile]
-     [     \v!yes=>\chardef\autocrossfilereferences\plusone,
+     [  \v!yes=>\chardef\autocrossfilereferences\plusone,
        \v!page=>\chardef\autocrossfilereferences\plustwo]%
    \chardef\referencefilecase\zerocount
    \processaction[\@@rfconvertfile]
-     [   \v!yes=>\chardef\referencefilecase\plusone,
-      \v!big=>\chardef\referencefilecase\plusone,
+     [  \v!yes=>\chardef\referencefilecase\plusone,
+        \v!big=>\chardef\referencefilecase\plusone,
       \v!small=>\chardef\referencefilecase\plustwo]%
   %\doifelse\@@rfstrut\v!yes % some day an option
   %  \referencetruttrue\referencestrutfalse
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
index 4d4f3248e..bb27285d4 100644
--- a/tex/context/base/core-sec.tex
+++ b/tex/context/base/core-sec.tex
@@ -2028,7 +2028,7 @@
 % uit van een meerregelige kop
 
 \defineheadplacement[\v!bottom][\v!vertical]#1#2{\placeheadlohi\vbox{#1}{#2}}
-\defineheadplacement[\v!top][\v!vertical]#1#2{\placeheadlohi\vtop{#1}{#2}}
+\defineheadplacement[\v!top]   [\v!vertical]#1#2{\placeheadlohi\vtop{#1}{#2}}
 
 % default   == instellingen
 % koppeling == koppen, breaks, marks, enz.
diff --git a/tex/context/base/enco-acc.tex b/tex/context/base/enco-acc.tex
index b8b0ff40a..59d89dc54 100644
--- a/tex/context/base/enco-acc.tex
+++ b/tex/context/base/enco-acc.tex
@@ -24,8 +24,8 @@
 \defineaccent ^ E {\Ecircumflex}   \defineaccent ^ e {\ecircumflex}
 \defineaccent ^ G {\Gcircumflex}   \defineaccent ^ g {\gcircumflex}
 \defineaccent ^ H {\Hcircumflex}   \defineaccent ^ h {\hcircumflex}
-\defineaccent ^ I {\Icircumflex}   \defineaccent ^ i {\icircumflex}
-\defineaccent ^ J {\Jcircumflex}   \defineaccent ^ j {\jcircumflex}
+\defineaccent ^ I {\Icircumflex}   \defineaccent ^ i {\icircumflex}  \defineaccent ^ {\i} {\icircumflex}
+\defineaccent ^ J {\Jcircumflex}   \defineaccent ^ j {\jcircumflex}  \defineaccent ^ {\j} {\jcircumflex}
 \defineaccent ^ O {\Ocircumflex}   \defineaccent ^ o {\ocircumflex}
 \defineaccent ^ S {\Scircumflex}   \defineaccent ^ s {\scircumflex}
 \defineaccent ^ U {\Ucircumflex}   \defineaccent ^ u {\ucircumflex}
@@ -34,19 +34,19 @@
 
 \defineaccent ` A {\Agrave}        \defineaccent ` a {\agrave}
 \defineaccent ` E {\Egrave}        \defineaccent ` e {\egrave}
-\defineaccent ` I {\Igrave}        \defineaccent ` i {\igrave}
+\defineaccent ` I {\Igrave}        \defineaccent ` i {\igrave}       \defineaccent ` {\i} {\igrave}
 \defineaccent ` O {\Ograve}        \defineaccent ` o {\ograve}
 \defineaccent ` U {\Ugrave}        \defineaccent ` u {\ugrave}
 \defineaccent ` Y {\Ygrave}        \defineaccent ` y {\ygrave}
 
 \defineaccent ~ A {\Atilde}        \defineaccent ~ a {\atilde}
-\defineaccent ~ I {\Itilde}        \defineaccent ~ i {\itilde}
+\defineaccent ~ I {\Itilde}        \defineaccent ~ i {\itilde}       \defineaccent ~ {\i} {\itilde}
 \defineaccent ~ O {\Otilde}        \defineaccent ~ o {\otilde}
 \defineaccent ~ U {\Utilde}        \defineaccent ~ u {\utilde}
 
 \defineaccent " A {\Adiaeresis}    \defineaccent " a {\adiaeresis}
 \defineaccent " E {\Ediaeresis}    \defineaccent " e {\ediaeresis}
-\defineaccent " I {\Idiaeresis}    \defineaccent " i {\idiaeresis}
+\defineaccent " I {\Idiaeresis}    \defineaccent " i {\idiaeresis}   \defineaccent " {\i} {\idiaeresis}
 \defineaccent " O {\Odiaeresis}    \defineaccent " o {\odiaeresis}
 \defineaccent " U {\Udiaeresis}    \defineaccent " u {\udiaeresis}
 \defineaccent " Y {\Ydiaeresis}    \defineaccent " y {\ydiaeresis}
@@ -54,7 +54,7 @@
 \defineaccent ' A {\Aacute}        \defineaccent ' a {\aacute}
 \defineaccent ' C {\Cacute}        \defineaccent ' c {\cacute}
 \defineaccent ' E {\Eacute}        \defineaccent ' e {\eacute}
-\defineaccent ' I {\Iacute}        \defineaccent ' i {\iacute}
+\defineaccent ' I {\Iacute}        \defineaccent ' i {\iacute}       \defineaccent ' {\i} {\iacute}
 \defineaccent ' L {\Lacute}        \defineaccent ' l {\lacute}
 \defineaccent ' N {\Nacute}        \defineaccent ' n {\nacute}
 \defineaccent ' O {\Oacute}        \defineaccent ' o {\oacute}
@@ -67,12 +67,12 @@
 \defineaccent . C {\Cdotaccent}    \defineaccent . c {\cdotaccent}
 \defineaccent . E {\Edotaccent}    \defineaccent . e {\edotaccent}
 \defineaccent . G {\Gdotaccent}    \defineaccent . g {\gdotaccent}
-\defineaccent . I {\Idotaccent}    \defineaccent . i {\idotaccent}
+\defineaccent . I {\Idotaccent}    \defineaccent . i {\idotaccent}   \defineaccent . {\i} {\idotaccent}
 \defineaccent . Z {\Zdotaccent}    \defineaccent . z {\zdotaccent}
 
 \defineaccent = A {\Amacron}       \defineaccent = a {\amacron}
 \defineaccent = E {\Emacron}       \defineaccent = e {\emacron}
-\defineaccent = I {\Imacron}       \defineaccent = i {\imacron}
+\defineaccent = I {\Imacron}       \defineaccent = i {\imacron}      \defineaccent = {\i} {\imacron}
 \defineaccent = O {\Omacron}       \defineaccent = o {\omacron}
 \defineaccent = U {\Umacron}       \defineaccent = u {\umacron}
 
@@ -98,7 +98,7 @@
 \defineaccent u A {\Abreve}        \defineaccent u a {\abreve}
 \defineaccent u E {\Ebreve}        \defineaccent u e {\ebreve}
 \defineaccent u G {\Gbreve}        \defineaccent u g {\gbreve}
-\defineaccent u I {\Ibreve}        \defineaccent u i {\ibreve}
+\defineaccent u I {\Ibreve}        \defineaccent u i {\ibreve}       \defineaccent u {\i} {\ibreve}
 \defineaccent u O {\Obreve}        \defineaccent u o {\obreve}
 \defineaccent u U {\Ubreve}        \defineaccent u u {\ubreve}
 
diff --git a/tex/context/base/enco-fde.tex b/tex/context/base/enco-fde.tex
index 7a3e533cb..92ce7cc96 100644
--- a/tex/context/base/enco-fde.tex
+++ b/tex/context/base/enco-fde.tex
@@ -65,7 +65,7 @@
   \installcompoundcharacter "' {\handlequotation\c!rightquotation}
   \installcompoundcharacter ". {\kern.1em\ignorespaces}
 
-  \def\setupDElanguage%
+  \def\setupDElanguage
     {\setuplanguage
        [\s!de]
        [\c!leftsentence=\leftguillemot,
@@ -84,9 +84,11 @@
 
 %D An experimental hack:
 
+% no {\simplifiedcompoundcharacter"}
+
 \startencoding[pdfdoc]
   \startlanguagespecifics[\s!de]% hm, a % is needed
-    \defineactivecharacter " {\"} % no {\simplifiedcompoundcharacter"}
+    \defineactivecharacter " {\"}
   \stoplanguagespecifics
 \stopencoding
 
diff --git a/tex/context/base/enco-lat.tex b/tex/context/base/enco-lat.tex
index 3b52c9701..2623aae8d 100644
--- a/tex/context/base/enco-lat.tex
+++ b/tex/context/base/enco-lat.tex
@@ -1,7 +1,7 @@
 % temporary module, needed for downward compatibility
 
-\input regi-lat.tex 
+\input regi-lat.tex
 
-\enableregime[latin2] 
+\enableregime[latin2]
 
-\endinput 
+\endinput
diff --git a/tex/context/base/enco-uc.tex b/tex/context/base/enco-uc.tex
index 87121a29d..751f9f340 100644
--- a/tex/context/base/enco-uc.tex
+++ b/tex/context/base/enco-uc.tex
@@ -1,3 +1,19 @@
+%D \module
+%D   [     file=enco-uc,
+%D      version=2000.xx.xx, % and later
+%D        title=\CONTEXT\ Encoding Macros,
+%D     subtitle=Unicode (backwards mapping),
+%D       author={Adam Lindsay \& Hans Hagen},
+%D         date=\currentdate,
+%D    copyright=PRAGMA ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D An alternative approach would be to misuse the utf vectors, but they
+%D don't carry enough info around.
+
 \startencoding[uc]
 
 \definecharacter Agrave        {\uchar0{192}}
@@ -113,7 +129,7 @@
 \definecharacter Iogonek       {\uchar1{46}}
 \definecharacter iogonek       {\uchar1{47}}
 \definecharacter Idotaccent    {\uchar1{48}}
-\definecharacter idotless      {\uchar1{49}}
+\definecharacter dotlessi      {\uchar1{49}}
 \definecharacter IJligature    {\uchar1{50}}
 \definecharacter ijligature    {\uchar1{51}}
 \definecharacter Jcircumflex   {\uchar1{52}}
@@ -195,4 +211,294 @@
 
 \stopencoding
 
+\startencoding[uc]
+
+\definecharacter endash          {\uchar{32}{19}}
+\definecharacter emdash          {\uchar{32}{20}}
+\definecharacter quoteleft       {\uchar{32}{24}}
+\definecharacter quoteright      {\uchar{32}{25}}
+\definecharacter quotesinglebase {\uchar{32}{26}}
+
+\definecharacter quotedblleft    {\uchar{32}{28}}
+\definecharacter quotedblright   {\uchar{32}{29}}
+\definecharacter quotedblbase    {\uchar{32}{30}}
+
+\definecharacter leftguillemot   {\uchar0{171}}
+\definecharacter rightguillemot  {\uchar0{187}}
+\definecharacter guilsingleleft  {\uchar{32}{57}}
+\definecharacter guilsingleright {\uchar{32}{58}}
+
+\stopencoding
+
+%D a temporary guess:
+
+\startencoding[default]
+
+\definecommand Greekleftquot  {\leftguillemot}
+\definecommand Greekrightquot {\rightguillemot}
+
+\stopencoding
+
+%D Adam Lindsay's additions
+
+\startencoding[uc]
+
+\definecharacter exclamdown     {\uchar0{161}}
+\definecharacter textcent       {\uchar0{162}}
+\definecharacter textsterling   {\uchar0{163}}
+\definecharacter textcurrency   {\uchar0{164}}
+\definecharacter textyen        {\uchar0{165}}
+\definecharacter textbrokenbar  {\uchar0{166}}
+\definecharacter sectionmark    {\uchar0{167}}
+\definecharacter textdiaresis   {\uchar0{168}}
+\definecharacter copyright      {\uchar0{169}}
+
+\definecharacter textlognot     {\uchar0{172}}
+\definecharacter softhyphen     {\uchar0{173}}
+\definecharacter registered     {\uchar0{174}}
+\definecharacter textmacron     {\uchar0{175}}
+\definecharacter textdegree     {\uchar0{176}}
+\definecharacter textpm         {\uchar0{177}}
+\definecharacter twosuperior    {\uchar0{178}}
+\definecharacter threesuperior  {\uchar0{179}}
+\definecharacter textacute      {\uchar0{180}}
+\definecharacter textmu         {\uchar0{181}}
+\definecharacter paragraphmark  {\uchar0{182}}
+\definecharacter periodcentered {\uchar0{183}}
+\definecharacter textcedilla    {\uchar0{184}}
+\definecharacter onesuperior    {\uchar0{185}}
+
+\definecharacter textgrave        {\uchar3{0}}
+\definecharacter textacute        {\uchar3{1}}
+\definecharacter textcircumflex   {\uchar3{2}}
+\definecharacter texttilde        {\uchar3{3}}
+\definecharacter textmacron       {\uchar3{4}}
+\definecharacter textbreve        {\uchar3{6}}
+\definecharacter textdotaccent    {\uchar3{7}}
+\definecharacter textdiaeresis    {\uchar3{8}}
+\definecharacter textring         {\uchar3{10}}
+\definecharacter texthungarumlaut {\uchar3{11}}
+\definecharacter textcaron        {\uchar3{12}}
+\definecharacter textogonek       {\uchar3{40}}
+
+\definecharacter onequarter       {\uchar0{188}}
+\definecharacter onehalf          {\uchar0{189}}
+\definecharacter threequarters    {\uchar0{190}}
+\definecharacter questiondown     {\uchar0{191}}
+
+\definecharacter textmultiply     {\uchar0{215}}
+\definecharacter textdiv          {\uchar0{247}}
+
+\definecharacter textdag          {\uchar{32}{32}}
+\definecharacter textddag         {\uchar{32}{33}}
+\definecharacter textbullet       {\uchar{32}{34}}
+\definecharacter textellipsis     {\uchar{32}{38}}
+\definecharacter perthousand      {\uchar{32}{48}}
+
+%D semi-automatic conversion meant it was easier to use
+%D hex numbers here:
+
+\definecharacter GreekAlphatonos         {\uchar3{"86}}
+\definecharacter GreekEpsilontonos       {\uchar3{"88}}
+\definecharacter GreekEtatonos           {\uchar3{"89}}
+\definecharacter GreekIotatonos          {\uchar3{"8A}}
+\definecharacter GreekOmicrontonos       {\uchar3{"8C}}
+\definecharacter GreekUpsilontonos       {\uchar3{"8E}}
+\definecharacter GreekOmegatonos         {\uchar3{"8F}}
+\definecharacter Greekiotadialytikatonos {\uchar3{"90}}
+\definecharacter GreekAlpha              {\uchar3{"91}}
+\definecharacter GreekBeta               {\uchar3{"92}}
+\definecharacter GreekGamma              {\uchar3{"93}}
+\definecharacter GreekDelta              {\uchar3{"94}}
+\definecharacter GreekEpsilon            {\uchar3{"95}}
+\definecharacter GreekZeta               {\uchar3{"96}}
+\definecharacter GreekEta                {\uchar3{"97}}
+\definecharacter GreekTheta              {\uchar3{"98}}
+\definecharacter GreekIota               {\uchar3{"99}}
+\definecharacter GreekKappa              {\uchar3{"9A}}
+\definecharacter GreekLamda              {\uchar3{"9B}}
+\definecharacter GreekMu                 {\uchar3{"9C}}
+\definecharacter GreekNu                 {\uchar3{"9D}}
+\definecharacter GreekXi                 {\uchar3{"9E}}
+\definecharacter GreekOmicron            {\uchar3{"9F}}
+\definecharacter GreekPi                 {\uchar3{"A0}}
+\definecharacter GreekRho                {\uchar3{"A1}}
+\definecharacter GreekSigma              {\uchar3{"A3}}
+\definecharacter GreekTau                {\uchar3{"A4}}
+\definecharacter GreekUpsilon            {\uchar3{"A5}}
+\definecharacter GreekPhi                {\uchar3{"A6}}
+\definecharacter GreekChi                {\uchar3{"A7}}
+\definecharacter GreekPsi                {\uchar3{"A8}}
+\definecharacter GreekOmega              {\uchar3{"A9}}
+
+\definecharacter GreekIotadialytika      {\uchar3{"AA}}
+\definecharacter GreekUpsilondialytika   {\uchar3{"AB}}
+
+\definecharacter Greekalphatonos         {\uchar3{"AC}}
+\definecharacter Greekepsilontonos       {\uchar3{"AD}}
+\definecharacter Greeketatonos           {\uchar3{"AE}}
+\definecharacter Greekiotatonos          {\uchar3{"AF}}
+\definecharacter Greekupsilondialytikatonos    {\uchar3{"B0}}
+
+\definecharacter Greekalpha              {\uchar3{"B1}}
+\definecharacter Greekbeta               {\uchar3{"B2}}
+\definecharacter Greekgamma              {\uchar3{"B3}}
+\definecharacter Greekdelta              {\uchar3{"B4}}
+\definecharacter Greekepsilon            {\uchar3{"B5}}
+\definecharacter Greekzeta               {\uchar3{"B6}}
+\definecharacter Greeketa                {\uchar3{"B7}}
+\definecharacter Greektheta              {\uchar3{"B8}}
+\definecharacter Greekiota               {\uchar3{"B9}}
+\definecharacter Greekkappa              {\uchar3{"BA}}
+\definecharacter Greeklamda              {\uchar3{"BB}}
+\definecharacter Greekmu                 {\uchar3{"BC}}
+\definecharacter Greeknu                 {\uchar3{"BD}}
+\definecharacter Greekxi                 {\uchar3{"BE}}
+\definecharacter Greekomicron            {\uchar3{"BF}}
+\definecharacter Greekpi                 {\uchar3{"C0}}
+\definecharacter Greekrho                {\uchar3{"C1}}
+\definecharacter Greekfinalsigma         {\uchar3{"C2}}
+\definecharacter Greeksigma              {\uchar3{"C3}}
+\definecharacter Greektau                {\uchar3{"C4}}
+\definecharacter Greekupsilon            {\uchar3{"C5}}
+\definecharacter Greekphi                {\uchar3{"C6}}
+\definecharacter Greekchi                {\uchar3{"C7}}
+\definecharacter Greekpsi                {\uchar3{"C8}}
+\definecharacter Greekomega              {\uchar3{"C9}}
+\definecharacter Greekiotadialytika      {\uchar3{"CA}}
+\definecharacter Greekupsilondialytika   {\uchar3{"CB}}
+\definecharacter Greekomicrontonos       {\uchar3{"CC}}
+\definecharacter Greekupsilontonos       {\uchar3{"CD}}
+\definecharacter Greekomegatonos         {\uchar3{"CE}}
+
+\definecharacter cyrillicA     {\uchar4{"10}}
+\definecharacter cyrillicB     {\uchar4{"11}}
+\definecharacter cyrillicV     {\uchar4{"12}}
+\definecharacter cyrillicG     {\uchar4{"13}}
+\definecharacter cyrillicD     {\uchar4{"14}}
+\definecharacter cyrillicE     {\uchar4{"15}}
+\definecharacter cyrillicZH    {\uchar4{"16}}
+\definecharacter cyrillicZ     {\uchar4{"17}}
+\definecharacter cyrillicI     {\uchar4{"18}}
+\definecharacter cyrillicISHRT {\uchar4{"19}}
+\definecharacter cyrillicK     {\uchar4{"1A}}
+\definecharacter cyrillicL     {\uchar4{"1B}}
+\definecharacter cyrillicM     {\uchar4{"1C}}
+\definecharacter cyrillicN     {\uchar4{"1D}}
+\definecharacter cyrillicO     {\uchar4{"1E}}
+\definecharacter cyrillicP     {\uchar4{"1F}}
+\definecharacter cyrillicR     {\uchar4{"20}}
+\definecharacter cyrillicS     {\uchar4{"21}}
+\definecharacter cyrillicT     {\uchar4{"22}}
+\definecharacter cyrillicU     {\uchar4{"23}}
+\definecharacter cyrillicF     {\uchar4{"24}}
+\definecharacter cyrillicH     {\uchar4{"25}}
+\definecharacter cyrillicC     {\uchar4{"26}}
+\definecharacter cyrillicCH    {\uchar4{"27}}
+\definecharacter cyrillicSH    {\uchar4{"28}}
+\definecharacter cyrillicSHCH  {\uchar4{"29}}
+\definecharacter cyrillicHRDSN {\uchar4{"2A}}
+\definecharacter cyrillicERY   {\uchar4{"2B}}
+\definecharacter cyrillicSFTSN {\uchar4{"2C}}
+\definecharacter cyrillicEREV  {\uchar4{"2D}}
+\definecharacter cyrillicYU    {\uchar4{"2E}}
+\definecharacter cyrillicYA    {\uchar4{"2F}}
+
+\definecharacter cyrillica     {\uchar4{"30}}
+\definecharacter cyrillicb     {\uchar4{"31}}
+\definecharacter cyrillicv     {\uchar4{"32}}
+\definecharacter cyrillicg     {\uchar4{"33}}
+\definecharacter cyrillicd     {\uchar4{"34}}
+\definecharacter cyrillice     {\uchar4{"35}}
+\definecharacter cyrilliczh    {\uchar4{"36}}
+\definecharacter cyrillicz     {\uchar4{"37}}
+\definecharacter cyrillici     {\uchar4{"38}}
+\definecharacter cyrillicishrt {\uchar4{"39}}
+\definecharacter cyrillick     {\uchar4{"3A}}
+\definecharacter cyrillicl     {\uchar4{"3B}}
+\definecharacter cyrillicm     {\uchar4{"3C}}
+\definecharacter cyrillicn     {\uchar4{"3D}}
+\definecharacter cyrillico     {\uchar4{"3E}}
+\definecharacter cyrillicp     {\uchar4{"3F}}
+\definecharacter cyrillicr     {\uchar4{"40}}
+\definecharacter cyrillics     {\uchar4{"41}}
+\definecharacter cyrillict     {\uchar4{"42}}
+\definecharacter cyrillicu     {\uchar4{"43}}
+\definecharacter cyrillicf     {\uchar4{"44}}
+\definecharacter cyrillich     {\uchar4{"45}}
+\definecharacter cyrillicc     {\uchar4{"46}}
+\definecharacter cyrillicch    {\uchar4{"47}}
+\definecharacter cyrillicsh    {\uchar4{"48}}
+\definecharacter cyrillicshch  {\uchar4{"49}}
+\definecharacter cyrillichrdsn {\uchar4{"4A}}
+\definecharacter cyrillicery   {\uchar4{"4B}}
+\definecharacter cyrillicsftsn {\uchar4{"4C}}
+\definecharacter cyrillicerev  {\uchar4{"4D}}
+\definecharacter cyrillicyu    {\uchar4{"4E}}
+\definecharacter cyrillicya    {\uchar4{"4F}}
+
+%D For victor:
+
+%D I tried to figure out what these were, but the unicode
+%D tables suggested they were the same as cyrillici, which was
+%D already defined! So, a temporary definition:
+
+% \def\cyrillicII{\cyrillicI}
+% \def\cyrillicii{\cyrillici}
+
+%D a guess derived from looking at enco-cyr suggests that this is
+%D identical to the Roman I/i pair. To me, that sounds like
+%D CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I in the UC tables!
+
+\definecharacter cyrillicII    {\uchar4{"06}}
+\definecharacter cyrillicii    {\uchar4{"56}}
+
+%D Guessing that tlir6a corresponds with t2a encoding as advertised,
+%D here are some more, cos I had some spare time:
+
+\definecharacter cyrillicDJE    {\uchar4{"02}}
+\definecharacter cyrillicdje    {\uchar4{"52}}
+\definecharacter cyrillicTSHE   {\uchar4{"0B}}
+\definecharacter cyrillictshe   {\uchar4{"5B}}
+%definecharacter cyrillicSHHA   132
+%definecharacter cyrillicshha   164
+%definecharacter cyrillicZHDSC  133
+%definecharacter cyrilliczhdsc  165
+\definecharacter cyrillicZDSC   {\uchar4{"98}}
+\definecharacter cyrilliczdsc   {\uchar4{"99}}
+\definecharacter cyrillicLJE    {\uchar4{"09}}
+\definecharacter cyrilliclje    {\uchar4{"59}}
+\definecharacter cyrillicYI     {\uchar4{"07}}
+\definecharacter cyrillicyi     {\uchar4{"57}}
+\definecharacter cyrillicAE     {\uchar4{"D4}}
+\definecharacter cyrillicae     {\uchar4{"D5}}
+%definecharacter cyrillicNDSC   141
+%definecharacter cyrillicndsc   173
+%definecharacter cyrillicNG     142
+%definecharacter cyrillicng     174
+\definecharacter cyrillicDZE    {\uchar4{"05}}
+\definecharacter cyrillicdze    {\uchar4{"55}}
+%definecharacter cyrillicOTLD   144
+%definecharacter cyrillicotld   176
+\definecharacter cyrillicSDSC   {\uchar4{"AA}}
+\definecharacter cyrillicsdsc   {\uchar4{"AB}}
+\definecharacter cyrillicUSHRT  {\uchar4{"0E}}
+\definecharacter cyrillicushrt  {\uchar4{"5E}}
+%definecharacter cyrillicY      147
+%definecharacter cyrillicy      179
+%definecharacter cyrillicYHCRS  148
+%definecharacter cyrillicyhcrs  180
+%definecharacter cyrillicHDSC   149
+%definecharacter cyrillichdsc   181
+\definecharacter cyrillicDZHE   {\uchar4{"0F}}
+\definecharacter cyrillicdzhe   {\uchar4{"5F}}
+\definecharacter cyrillicIE     {\uchar4{"04}}
+\definecharacter cyrillicie     {\uchar4{"54}}
+\definecharacter cyrillicNJE    {\uchar4{"0A}}
+\definecharacter cyrillicnje    {\uchar4{"5A}}
+\definecharacter cyrillicYO     {\uchar4{"01}}
+\definecharacter cyrillicyo     {\uchar4{"51}}
+
+\stopencoding
+
 \endinput
diff --git a/tex/context/base/lang-grk.tex b/tex/context/base/lang-grk.tex
index b0b0e0b15..9e9223adc 100644
--- a/tex/context/base/lang-grk.tex
+++ b/tex/context/base/lang-grk.tex
@@ -32,54 +32,54 @@
    \c!date={\v!day\ \v!month\ \v!year},
    \c!state=\v!stop]
 
-\installlanguage [greek]    [\s!gr]
+\installlanguage [greek] [\s!gr]
 
-\setupheadtext  [\s!fi] [\v!content=\GreekPi\Greekepsilon\Greekrho\Greekiota\Greekepsilon\Greekchi\Greekomicrontonos\Greekmu\Greekepsilon\Greeknu\Greekalpha]
-\setupheadtext  [\s!fi] [\v!tables=\GreekPi\Greekiotatonos\Greeknu\Greekalpha\Greekkappa\Greekepsilon\Greekfinalsigma]
-\setupheadtext  [\s!fi] [\v!figures=\GreekSigma\Greekchi\Greeketatonos\Greekmu\Greekalpha\Greektau\Greekalpha]
-\setupheadtext  [\s!fi] [\v!graphics=\GreekGamma\Greekrho\Greekalpha\Greekphi\Greekiota\Greekkappa\Greekalphatonos]
-\setupheadtext  [\s!fi] [\v!intermezzi=\GreekPi\Greekalpha\Greekupsilontonos\Greeksigma\Greekepsilon\Greekiota\Greekfinalsigma]
-\setupheadtext  [\s!fi] [\v!index=\GreekEpsilon\Greekupsilon\Greekrho\Greekepsilon\Greektau\Greeketatonos\Greekrho\Greekiota\Greekomicron]
-\setupheadtext  [\s!fi] [\v!abbreviations=\GreekSigma\Greekupsilon\Greeknu\Greektau\Greekomicron\Greekmu\Greekomicron\Greekgamma\Greekrho\Greekalpha\Greekphi\Greekiotatonos\Greekepsilon\Greekfinalsigma]
-\setupheadtext  [\s!fi] [\v!logos=\GreekLamda\Greekomicron\Greekgamma\Greekomicrontonos\Greektau\Greekupsilon\Greekpi\Greekalpha]
-\setupheadtext  [\s!fi] [\v!units=\GreekMu\Greekomicron\Greeknu\Greekalphatonos\Greekdelta\Greekepsilon\Greekfinalsigma]
+\setupheadtext  [\s!gr]          [\v!content=\GreekPi\Greekepsilon\Greekrho\Greekiota\Greekepsilon\Greekchi\Greekomicrontonos\Greekmu\Greekepsilon\Greeknu\Greekalpha]
+\setupheadtext  [\s!gr]           [\v!tables=\GreekPi\Greekiotatonos\Greeknu\Greekalpha\Greekkappa\Greekepsilon\Greekfinalsigma]
+\setupheadtext  [\s!gr]          [\v!figures=\GreekSigma\Greekchi\Greeketatonos\Greekmu\Greekalpha\Greektau\Greekalpha]
+\setupheadtext  [\s!gr]         [\v!graphics=\GreekGamma\Greekrho\Greekalpha\Greekphi\Greekiota\Greekkappa\Greekalphatonos]
+\setupheadtext  [\s!gr]       [\v!intermezzi=\GreekPi\Greekalpha\Greekupsilontonos\Greeksigma\Greekepsilon\Greekiota\Greekfinalsigma]
+\setupheadtext  [\s!gr]            [\v!index=\GreekEpsilon\Greekupsilon\Greekrho\Greekepsilon\Greektau\Greeketatonos\Greekrho\Greekiota\Greekomicron]
+\setupheadtext  [\s!gr]    [\v!abbreviations=\GreekSigma\Greekupsilon\Greeknu\Greektau\Greekomicron\Greekmu\Greekomicron\Greekgamma\Greekrho\Greekalpha\Greekphi\Greekiotatonos\Greekepsilon\Greekfinalsigma]
+\setupheadtext  [\s!gr]            [\v!logos=\GreekLamda\Greekomicron\Greekgamma\Greekomicrontonos\Greektau\Greekupsilon\Greekpi\Greekalpha]
+\setupheadtext  [\s!gr]            [\v!units=\GreekMu\Greekomicron\Greeknu\Greekalphatonos\Greekdelta\Greekepsilon\Greekfinalsigma]
 
+\setuplabeltext [\s!gr]            [\v!table=\GreekPi\Greekiotatonos\Greeknu\Greekalpha\Greekkappa\Greekalpha\Greekfinalsigma]
+\setuplabeltext [\s!gr]           [\v!figure=\GreekSigma\Greekchi\Greeketatonos\Greekmu\Greekalpha]
+\setuplabeltext [\s!gr]       [\v!intermezzo=\GreekPi\Greekalpha\Greekupsilontonos\Greeksigma\Greeketa]
+\setuplabeltext [\s!gr]          [\v!graphic=\GreekGamma\Greekrho\Greekalpha\Greekphi\Greekiota\Greekkappa\Greekomicrontonos]
 
-\setuplabeltext [\s!fi] [\v!table=\GreekPi\Greekiotatonos\Greeknu\Greekalpha\Greekkappa\Greekalpha\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!figure=\GreekSigma\Greekchi\Greeketatonos\Greekmu\Greekalpha]
-\setuplabeltext [\s!fi] [\v!intermezzo=\GreekPi\Greekalpha\Greekupsilontonos\Greeksigma\Greeketa]
-\setuplabeltext [\s!fi] [\v!graphic=\GreekGamma\Greekrho\Greekalpha\Greekphi\Greekiota\Greekkappa\Greekomicrontonos]
-\setuplabeltext [\s!fi] [\v!chapter=\GreekKappa\Greekepsilon\Greekphi\Greekalphatonos\Greeklamda\Greekalpha\Greekiota\Greekomicron]
-\setuplabeltext [\s!fi] [\v!section=\GreekEpsilon\Greeknu\Greekomicrontonos\Greektau\Greeketa\Greektau\Greekalpha]
-\setuplabeltext [\s!fi] [\v!subsection=\GreekUpsilon\Greekpi\Greekomicrontonos\Greekepsilon\Greeknu\Greekomicrontonos\Greektau\Greeketa\Greektau\Greekalpha]
-\setuplabeltext [\s!fi] [\v!subsubsection=]
-\setuplabeltext [\s!fi] [\v!subsubsubsection=]
-\setuplabeltext [\s!fi] [\v!appendix=\GreekPi\Greekalpha\Greekrho\Greekalphatonos\Greekrho\Greektau\Greeketa\Greekmu\Greekalpha]
-\setuplabeltext [\s!fi] [\v!part=\GreekMu\Greekepsilontonos\Greekrho\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!line=\GreekGamma\Greekrho\Greekalpha\Greekmu\Greekmu\Greeketatonos]
-\setuplabeltext [\s!fi] [\v!lines=\GreekGamma\Greekrho\Greekalpha\Greekmu\Greekmu\Greekepsilontonos\Greekfinalsigma]
+\setuplabeltext [\s!gr]          [\v!chapter=\GreekKappa\Greekepsilon\Greekphi\Greekalphatonos\Greeklamda\Greekalpha\Greekiota\Greekomicron]
+\setuplabeltext [\s!gr]          [\v!section=\GreekEpsilon\Greeknu\Greekomicrontonos\Greektau\Greeketa\Greektau\Greekalpha]
+\setuplabeltext [\s!gr]       [\v!subsection=\GreekUpsilon\Greekpi\Greekomicrontonos\Greekepsilon\Greeknu\Greekomicrontonos\Greektau\Greeketa\Greektau\Greekalpha]
+\setuplabeltext [\s!gr]    [\v!subsubsection=]
+\setuplabeltext [\s!gr] [\v!subsubsubsection=]
 
-\setuplabeltext [\s!fi] [\v!january=\GreekIota\Greekalpha\Greeknu\Greekomicron\Greekupsilon\Greekalphatonos\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!february=\GreekPhi\Greekepsilon\Greekbeta\Greekrho\Greekomicron\Greekupsilon\Greekalphatonos\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!march=\GreekMu\Greekalphatonos\Greekrho\Greektau\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!april=\GreekAlpha\Greekpi\Greekrho\Greekiotatonos\Greeklamda\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!may=\GreekMu\Greekalphatonos\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!june=\GreekIota\Greekomicron\Greekupsilontonos\Greeknu\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!july=\GreekIota\Greekomicron\Greekupsilontonos\Greeklamda\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!august=\GreekAlpha\Greekupsilontonos\Greekgamma\Greekomicron\Greekupsilon\Greeksigma\Greektau\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!september=\GreekSigma\Greekepsilon\Greekpi\Greektau\Greekepsilontonos\Greekmu\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!october=\GreekOmicron\Greekkappa\Greektau\Greekomegatonos\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!november=\GreekNu\Greekomicron\Greekepsilontonos\Greekmu\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
-\setuplabeltext [\s!fi] [\v!december=\GreekDelta\Greekepsilon\Greekkappa\Greekepsilontonos\Greekmu\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]         [\v!appendix=\GreekPi\Greekalpha\Greekrho\Greekalphatonos\Greekrho\Greektau\Greeketa\Greekmu\Greekalpha]
+\setuplabeltext [\s!gr]             [\v!part=\GreekMu\Greekepsilontonos\Greekrho\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]             [\v!line=\GreekGamma\Greekrho\Greekalpha\Greekmu\Greekmu\Greeketatonos]
+\setuplabeltext [\s!gr]            [\v!lines=\GreekGamma\Greekrho\Greekalpha\Greekmu\Greekmu\Greekepsilontonos\Greekfinalsigma]
 
+\setuplabeltext [\s!gr]         [\v!january=\GreekIota\Greekalpha\Greeknu\Greekomicron\Greekupsilon\Greekalphatonos\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]        [\v!february=\GreekPhi\Greekepsilon\Greekbeta\Greekrho\Greekomicron\Greekupsilon\Greekalphatonos\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]           [\v!march=\GreekMu\Greekalphatonos\Greekrho\Greektau\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]           [\v!april=\GreekAlpha\Greekpi\Greekrho\Greekiotatonos\Greeklamda\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]             [\v!may=\GreekMu\Greekalphatonos\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]            [\v!june=\GreekIota\Greekomicron\Greekupsilontonos\Greeknu\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]            [\v!july=\GreekIota\Greekomicron\Greekupsilontonos\Greeklamda\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]          [\v!august=\GreekAlpha\Greekupsilontonos\Greekgamma\Greekomicron\Greekupsilon\Greeksigma\Greektau\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]       [\v!september=\GreekSigma\Greekepsilon\Greekpi\Greektau\Greekepsilontonos\Greekmu\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]         [\v!october=\GreekOmicron\Greekkappa\Greektau\Greekomegatonos\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]        [\v!november=\GreekNu\Greekomicron\Greekepsilontonos\Greekmu\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
+\setuplabeltext [\s!gr]        [\v!december=\GreekDelta\Greekepsilon\Greekkappa\Greekepsilontonos\Greekmu\Greekbeta\Greekrho\Greekiota\Greekomicron\Greekfinalsigma]
 
-\setuplabeltext [\s!fi] [\v!sunday=\GreekKappa\Greekupsilon\Greekrho\Greekiota\Greekalpha\Greekkappa\Greeketatonos]
-\setuplabeltext [\s!fi] [\v!monday=\GreekDelta\Greekepsilon\Greekupsilon\Greektau\Greekepsilontonos\Greekrho\Greekalpha]
-\setuplabeltext [\s!fi] [\v!tuesday=\GreekTau\Greekrho\Greekiotatonos\Greektau\Greeketa]
-\setuplabeltext [\s!fi] [\v!wednesday=\GreekTau\Greekepsilon\Greektau\Greekalphatonos\Greekrho\Greektau\Greeketa]
-\setuplabeltext [\s!fi] [\v!thursday=\GreekPi\Greekepsilontonos\Greekmu\Greekpi\Greektau\Greeketa]
-\setuplabeltext [\s!fi] [\v!friday=\GreekPi\Greekalpha\Greekrho\Greekalpha\Greeksigma\Greekkappa\Greekepsilon\Greekupsilon\Greeketatonos]
-\setuplabeltext [\s!fi] [\v!saturday=\GreekSigma\Greekalphatonos\Greekbeta\Greekbeta\Greekalpha\Greektau\Greekomicron]
+\setuplabeltext [\s!gr]          [\v!sunday=\GreekKappa\Greekupsilon\Greekrho\Greekiota\Greekalpha\Greekkappa\Greeketatonos]
+\setuplabeltext [\s!gr]          [\v!monday=\GreekDelta\Greekepsilon\Greekupsilon\Greektau\Greekepsilontonos\Greekrho\Greekalpha]
+\setuplabeltext [\s!gr]         [\v!tuesday=\GreekTau\Greekrho\Greekiotatonos\Greektau\Greeketa]
+\setuplabeltext [\s!gr]       [\v!wednesday=\GreekTau\Greekepsilon\Greektau\Greekalphatonos\Greekrho\Greektau\Greeketa]
+\setuplabeltext [\s!gr]        [\v!thursday=\GreekPi\Greekepsilontonos\Greekmu\Greekpi\Greektau\Greeketa]
+\setuplabeltext [\s!gr]          [\v!friday=\GreekPi\Greekalpha\Greekrho\Greekalpha\Greeksigma\Greekkappa\Greekepsilon\Greekupsilon\Greeketatonos]
+\setuplabeltext [\s!gr]        [\v!saturday=\GreekSigma\Greekalphatonos\Greekbeta\Greekbeta\Greekalpha\Greektau\Greekomicron]
 
 %D % \ShowAllLanguageValues [\s!gr] [\GreekEpsilon\Greeklamda\Greeklamda\Greeketa\Greeknu\Greekiota\Greekkappa\Greekalphatonos] Greek ...
 
diff --git a/tex/context/base/lang-ita.tex b/tex/context/base/lang-ita.tex
index 6bfe6c742..6db5bf54c 100644
--- a/tex/context/base/lang-ita.tex
+++ b/tex/context/base/lang-ita.tex
@@ -358,7 +358,7 @@
 
 \setuplabeltext [\s!ca]   [\v!january=gener]
 \setuplabeltext [\s!ca]  [\v!february=febrer]
-\setuplabeltext [\s!ca]     [\v!march=mar\,c]
+\setuplabeltext [\s!ca]     [\v!march=mar\c{c}]
 \setuplabeltext [\s!ca]     [\v!april=abril]
 \setuplabeltext [\s!ca]       [\v!may=maig]
 \setuplabeltext [\s!ca]      [\v!june=juny]
diff --git a/tex/context/base/lang-sla.tex b/tex/context/base/lang-sla.tex
index c61d36fae..77b6e879b 100644
--- a/tex/context/base/lang-sla.tex
+++ b/tex/context/base/lang-sla.tex
@@ -324,7 +324,7 @@
 \setuplabeltext [\s!hr] [\v!appendix=Dodatak ]
 \setuplabeltext [\s!sl] [\v!appendix=Dodatek ]
 
-\setuplabeltext [\s!pl] [\v!part=Ust\c{e}p]
+\setuplabeltext [\s!pl] [\v!part=Ust\k{e}p]
 \setuplabeltext [\s!cz] [\v!part=\v{C}\'ast]
 \setuplabeltext [\s!sk] [\v!part=\v{C}as\v{t}]
 \setuplabeltext [\s!hr] [\v!part=Dio]
diff --git a/tex/context/base/lang-ura.tex b/tex/context/base/lang-ura.tex
index 1686a2e41..3e77c7a22 100644
--- a/tex/context/base/lang-ura.tex
+++ b/tex/context/base/lang-ura.tex
@@ -80,7 +80,7 @@
 \setupheadtext  [\s!hu] [\v!graphics=Grafik\'ak]
 \setupheadtext  [\s!hu] [\v!intermezzi=Intermezzok]
 \setupheadtext  [\s!hu] [\v!index=Index]
-\setupheadtext  [\s!hu] [\v!abbreviations=R\"ovid\'\it\'esek]
+\setupheadtext  [\s!hu] [\v!abbreviations=R\"ovid\'it\'esek]
 \setupheadtext  [\s!hu] [\v!logos=Fejl\'ecek]
 \setupheadtext  [\s!hu] [\v!units=M\'ert\'ekegys\'egek]
 
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index fcca715d6..20a72ebdc 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -1168,10 +1168,10 @@
        \hbox{\doattributes{\??kj#1}\c!headstyle\c!headcolor{\strut#2\floatcaptionsuffix}}%
        \ifnofloatcaption \else \ifemptyfloatcaption \else
          \ifcase#4\relax
-           \scratchskip\@@kjkjafstand\relax
+           \scratchskip\@@kjkjdistance\relax
            \dotfskip\scratchskip\emergencystretch.5\scratchskip
          \else
-           \ifx\@@kjkjtussen\empty\else\unskip\@@kjkjtussen\fi
+           \ifx\@@kjkjinbetween\empty\else\unskip\@@kjkjinbetween\fi
          \fi
        \fi \fi
      \fi
@@ -1217,7 +1217,7 @@
    \setbox\tempfloatbox\vbox{\borderedfloatbox{#4}}%
    \def\locatefloat
      {\chardef\alignstrutmode\zerocount
-      \alignedline\@@flflplaats\v!middle}%
+      \alignedline\@@flfllocation\v!middle}%
    \docheckcaptioncontent{#1}{#2}{#3}{#4}%
    \ifnofloatcaption
      \dopreparenocaption{#1}{#2}{#3}{#4}%
@@ -1225,13 +1225,13 @@
      \doglobal\addlocalbackgroundtobox\floatbox
    \else
      % todo: installable maken, variant/method=auto vs macro
-     \doifinsetelse\@@kjkjplaats{\v!high,\v!middle,\v!low}
+     \doifinsetelse\@@kjkjlocation{\v!high,\v!middle,\v!low}
        {\dopreparesidecaption{#1}{#2}{#3}{#4}}
-       {\doifelse\@@kjkjminbreedte\v!fit
-          {\doifelse\@@kjkjbreedte\v!max
+       {\doifelse\@@kjkjminwidth\v!fit
+          {\doifelse\@@kjkjwidth\v!max
              {\dopreparestackcaptionmax{#1}{#2}{#3}{#4}}
              {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox % wider caption
-                \doifelse\@@kjkjbreedte\v!fit
+                \doifelse\@@kjkjwidth\v!fit
                   {\dopreparestackcaptionaut{#1}{#2}{#3}{#4}}
                   {\dopreparestackcaptionwid{#1}{#2}{#3}{#4}}%
               \else
@@ -1240,7 +1240,7 @@
           {\dopreparestackcaptionfix{#1}{#2}{#3}{#4}}}% new, special effects (see icare)
      \edef\width{\the\wd\tempfloatbox}%
      \addlocalbackgroundtobox\tempfloatbox
-     \setbox\tempcaptionbox\hbox{\@@kjkjcommando{\box\tempcaptionbox}}%
+     \setbox\tempcaptionbox\hbox{\@@kjkjcommand{\box\tempcaptionbox}}%
      \addlocalbackgroundtobox\tempcaptionbox
      \buildfloatbox
    \fi
@@ -1268,43 +1268,43 @@
       \locatefloat{\copy\tempfloatbox}}}
 
 \def\dopreparestackcaptionfix#1#2#3#4%
-  {\dosetraggedvbox\@@kjkjuitlijnen
+  {\dosetraggedvbox\@@kjkjalign
    \setbox\tempcaptionbox\raggedbox
-     {\hsize\@@kjkjminbreedte % special effects
+     {\hsize\@@kjkjminwidth % special effects
       \putcompletecaption{#4}{#2}{#3}{0}}}
 
 \def\dopreparestackcaptionmax#1#2#3#4%
-  {\dosetraggedvbox\@@kjkjuitlijnen
+  {\dosetraggedvbox\@@kjkjalign
    \setbox\tempcaptionbox\raggedbox
      {\hsize\wd\tempfloatbox
       \putcompletecaption{#4}{#2}{#3}{0}}}
 
 \def\dopreparestackcaptionwid#1#2#3#4%
-  {\dosetraggedvbox\@@kjkjuitlijnen
+  {\dosetraggedvbox\@@kjkjalign
    \setbox\tempcaptionbox\raggedbox
-     {\hsize\@@kjkjbreedte
+     {\hsize\@@kjkjwidth
       \putcompletecaption{#4}{#2}{#3}{0}}}
 
 \def\dopreparestackcaptionmin#1#2#3#4%
   {\raggedcenter                    % the default
-   \dosetraggedvbox\@@kjkjuitlijnen % when given
+   \dosetraggedvbox\@@kjkjalign % when given
    \setbox\tempcaptionbox\raggedbox % vbox, keeps footnotes
      {\hsize\wd\tempfloatbox
       \putcompletecaption{#4}{#2}{#3}{0}}}
 
 % \def\dopreparestackcaptionaut#1#2#3#4%
-%   {\doifsomething\@@kjkjuitlijnen
-%      {\ExpandBothAfter\doifnotinset\v!middle\@@kjkjuitlijnen
+%   {\doifsomething\@@kjkjalign
+%      {\ExpandBothAfter\doifnotinset\v!middle\@@kjkjalign
 %         {\let\captionovershoot\!!zeropoint}}%
 %    \ifdim\wd\tempfloatbox>\hsize
 %      % float is wider than \hsize
-%      \dosetraggedvbox\@@kjkjuitlijnen
+%      \dosetraggedvbox\@@kjkjalign
 %      \setbox\scratchbox\raggedbox % trial run
 %        {\hsize\wd\tempfloatbox
 %         \notesenabledfalse
 %         \putcompletecaption{#4}{#2}{#3}{0}}%
 %      \ifdim\ht\scratchbox>\lineheight % more lines
-%        \dosetraggedvbox\@@kjkjuitlijnen
+%        \dosetraggedvbox\@@kjkjalign
 %        \setbox\tempcaptionbox\raggedbox
 %          {\hsize\wd\tempfloatbox
 %           \advance\hsize -\captionovershoot\relax
@@ -1332,16 +1332,16 @@
 %         \putcompletecaption{#4}{#2}{#3}{0}}%
 %      \ifdim\ht\scratchbox>\lineheight
 %        % at least an average word longer than a line
-%        \dosetraggedvbox\@@kjkjuitlijnen
+%        \dosetraggedvbox\@@kjkjalign
 %        \setbox\tempcaptionbox\raggedbox
 %          {\advance\scratchdimen \captionovershoot
 %           \ifdim\scratchdimen<\hsize \hsize\scratchdimen \fi
 %           \putcompletecaption{#4}{#2}{#3}{0}}%
 %      \else
 %        % just over a line, don't use an overshoot
-%        % \doifinsetelse\@@kjkjuitlijnen{\v!left,\v!right}
-%        \expanded{\doifcommonelse{\@@kjkjuitlijnen}}{\v!left,\v!right,\v!flushleft,\v!flushright}
-%          {\dosetraggedvbox\@@kjkjuitlijnen
+%        % \doifinsetelse\@@kjkjalign{\v!left,\v!right}
+%        \expanded{\doifcommonelse{\@@kjkjalign}}{\v!left,\v!right,\v!flushleft,\v!flushright}
+%          {\dosetraggedvbox\@@kjkjalign
 %           \setbox\tempcaptionbox\raggedbox
 %             {\hsize\scratchdimen
 %              % strange : \raggedcenter
@@ -1354,19 +1354,19 @@
 %    \fi}
 
 \def\dopreparestackcaptionaut#1#2#3#4%
-  {\doifsomething\@@kjkjuitlijnen
-     {\ExpandBothAfter\doifnotinset\v!middle\@@kjkjuitlijnen
+  {\doifsomething\@@kjkjalign
+     {\ExpandBothAfter\doifnotinset\v!middle\@@kjkjalign
         {\let\captionovershoot\!!zeropoint}}%
    \edef\captionhsize{\the\wd\tempfloatbox}%
    \ifdim\captionhsize>\hsize
      % float is wider than \hsize
-     \dosetraggedvbox\@@kjkjuitlijnen
+     \dosetraggedvbox\@@kjkjalign
      \setbox\scratchbox\raggedbox % trial run
        {\hsize\captionhsize
         \notesenabledfalse
         \putcompletecaption{#4}{#2}{#3}{0}}%
      \ifdim\ht\scratchbox>\lineheight % more lines
-       \dosetraggedvbox\@@kjkjuitlijnen
+       \dosetraggedvbox\@@kjkjalign
        \setbox\tempcaptionbox\raggedbox
          {\hsize\captionhsize
           \advance\hsize -\captionovershoot\relax
@@ -1394,7 +1394,7 @@
         \putcompletecaption{#4}{#2}{#3}{0}}%
      \ifdim\ht\scratchbox>\lineheight
        % at least an average word longer than a line
-       \dosetraggedvbox\@@kjkjuitlijnen
+       \dosetraggedvbox\@@kjkjalign
        \setbox\tempcaptionbox\raggedbox
          {\scratchdimen\captionhsize
           \advance\scratchdimen \captionovershoot
@@ -1402,8 +1402,8 @@
           \putcompletecaption{#4}{#2}{#3}{0}}%
      \else
        % just over a line, don't use an overshoot
-       \expanded{\doifcommonelse{\@@kjkjuitlijnen}}{\v!left,\v!right,\v!flushleft,\v!flushright}
-         {\dosetraggedvbox\@@kjkjuitlijnen
+       \expanded{\doifcommonelse{\@@kjkjalign}}{\v!left,\v!right,\v!flushleft,\v!flushright}
+         {\dosetraggedvbox\@@kjkjalign
           \setbox\tempcaptionbox\raggedbox
             {\hsize\captionhsize
              % strange : \raggedcenter
@@ -1435,38 +1435,38 @@
      {\setlocalfloathsize
       \forgetall
       \processaction
-        [\@@kjkjplaats]
+        [\@@kjkjlocation]
         [ \v!top=>\locatefloat{\box\tempcaptionbox}%
-                    \endgraf\nointerlineskip\@@kjkjtussen
+                    \endgraf\nointerlineskip\@@kjkjinbetween
                     \locatefloat{\box\tempfloatbox},
           \v!bottom=>\locatefloat{\box\tempfloatbox}%
-                    \endgraf\nointerlineskip\@@kjkjtussen
+                    \endgraf\nointerlineskip\@@kjkjinbetween
                     \locatefloat{\box\tempcaptionbox},
            \v!high=>\locatefloat
-                      {\doifelse\@@flflplaats\v!left
+                      {\doifelse\@@flfllocation\v!left
                          {\box\tempfloatbox
-                          \dotfskip\@@kjkjafstand
-                          \vbox to\ht\tempfloatbox{\@@kjkjtussen\box\tempcaptionbox\vfill}}
-                         {\vbox to\ht\tempfloatbox{\@@kjkjtussen\box\tempcaptionbox\vfill}%
+                          \dotfskip\@@kjkjdistance
+                          \vbox to\ht\tempfloatbox{\@@kjkjinbetween\box\tempcaptionbox\vfill}}
+                         {\vbox to\ht\tempfloatbox{\@@kjkjinbetween\box\tempcaptionbox\vfill}%
                           \tfskip
                           \box\tempfloatbox}},
            \v!low=>\locatefloat
-                      {\doifelse\@@flflplaats\v!left
+                      {\doifelse\@@flfllocation\v!left
                          {\box\tempfloatbox
-                          \dotfskip\@@kjkjafstand
+                          \dotfskip\@@kjkjdistance
                           \vbox to\ht\tempfloatbox
-                            {\vfill\box\tempcaptionbox\@@kjkjtussen}}
+                            {\vfill\box\tempcaptionbox\@@kjkjinbetween}}
                          {\vbox to\ht\tempfloatbox
-                            {\vfill\box\tempcaptionbox\@@kjkjtussen}%
-                          \dotfskip\@@kjkjafstand
+                            {\vfill\box\tempcaptionbox\@@kjkjinbetween}%
+                          \dotfskip\@@kjkjdistance
                           \box\tempfloatbox}},
          \v!middle=>\locatefloat
-                      {\doifelse\@@flflplaats\v!left
+                      {\doifelse\@@flfllocation\v!left
                          {\box\tempfloatbox
-                          \dotfskip\@@kjkjafstand
+                          \dotfskip\@@kjkjdistance
                           \vbox to\ht\tempfloatbox{\vfill\box\tempcaptionbox\vfill}}
                          {\vbox to\ht\tempfloatbox{\vfill\box\tempcaptionbox\vfill}%
-                          \dotfskip\@@kjkjafstand
+                          \dotfskip\@@kjkjdistance
                           \box\tempfloatbox}},
         \s!unknown=>\locatefloat{\box\tempfloatbox},
            \v!none=>\locatefloat{\box\tempfloatbox}]}}
@@ -1567,11 +1567,11 @@
    \ifnofloatcaption
      \global\setbox\floatbox\vbox{\box\tempfloatbox}%
    \else
-     \doifelse\@@kjkjbreedte\v!max
-       {\dosetraggedvbox\@@kjkjuitlijnen
+     \doifelse\@@kjkjwidth\v!max
+       {\dosetraggedvbox\@@kjkjalign
         \setbox\tempcaptionbox\raggedbox
           {\hsize\wd\tempfloatbox\putcompletecaption{#4}{#2}{#3}{0}}}%
-       {\doifelse\@@kjkjbreedte\v!fit
+       {\doifelse\@@kjkjwidth\v!fit
           {\ifdim\wd\tempcaptionbox>\wd\tempfloatbox\relax
              \setbox\tempcaptionbox\vbox
                {\forgetall\hsize\wd\tempfloatbox\putcompletecaption{#4}{#2}{#3}{0}}%
@@ -1579,23 +1579,23 @@
              \setbox\tempcaptionbox\hbox to \wd\tempfloatbox
                {\hss\box\tempcaptionbox\hss}%
            \fi}
-          {\dosetraggedvbox\@@kjkjuitlijnen
+          {\dosetraggedvbox\@@kjkjalign
            \setbox\tempcaptionbox\raggedbox
              {\hsize\wd\tempfloatbox\putcompletecaption{#4}{#2}{#3}{0}}}}%
-     \setbox\tempcaptionbox\hbox{\@@kjkjcommando{\box\tempcaptionbox}}%
+     \setbox\tempcaptionbox\hbox{\@@kjkjcommand{\box\tempcaptionbox}}%
      \addlocalbackgroundtobox\tempcaptionbox % no \doglobal
      \global\setbox\floatbox\vbox
        {\processaction
-          [\@@kjkjplaats]
-          [ \v!top=>\box\tempcaptionbox
-                      \endgraf\nointerlineskip\@@kjkjtussen
+          [\@@kjkjlocation]
+          [   \v!top=>\box\tempcaptionbox
+                      \endgraf\nointerlineskip\@@kjkjinbetween
                       \box\tempfloatbox,
-            \v!bottom=>\box\tempfloatbox
-                      \endgraf\nointerlineskip\@@kjkjtussen
+           \v!bottom=>\box\tempfloatbox
+                      \endgraf\nointerlineskip\@@kjkjinbetween
                       \box\tempcaptionbox,
              \v!none=>\box\tempfloatbox,
           \s!unknown=>\box\tempfloatbox
-                      \endgraf\nointerlineskip\@@kjkjtussen
+                      \endgraf\nointerlineskip\@@kjkjinbetween
                       \box\tempcaptionbox]}%
    \fi
 %   \doglobal\addlocalbackgroundtobox\floatbox
@@ -1606,14 +1606,14 @@
 \long\def\dosetfloatbox#1#2#3#4% todo : \global\setbox
   {\ifvisible
      \par
-     \edef\@@kjkjplaats    {\getvalue{\??kj#4\c!location    }}%
-      \def\@@kjkjtussen    {\getvalue{\??kj#4\c!inbetween    }}%  no \edef
-      \def\@@kjkjcommando  {\getvalue{\??kj#4\c!command  }}%  no \edef
-     \edef\@@kjkjbreedte   {\getvalue{\??kj#4\c!width   }}%
-     \edef\@@kjkjminbreedte{\getvalue{\??kj#4\c!minwidth}}%  in geval van automatisch
-     \edef\@@kjkjafstand   {\getvalue{\??kj#4\c!distance   }}%
-     \edef\@@kjkjuitlijnen {\getvalue{\??kj#4\c!align }}%
-     \edef\@@flflplaats    {\getvalue{\??fl#4\c!location    }}%
+     \edef\@@kjkjlocation {\getvalue{\??kj#4\c!location}}%
+      \def\@@kjkjinbetween{\getvalue{\??kj#4\c!inbetween}}%  no \edef
+      \def\@@kjkjcommand  {\getvalue{\??kj#4\c!command}}%  no \edef
+     \edef\@@kjkjwidth    {\getvalue{\??kj#4\c!width}}%
+     \edef\@@kjkjminwidth {\getvalue{\??kj#4\c!minwidth}}%  in geval van automatisch
+     \edef\@@kjkjdistance {\getvalue{\??kj#4\c!distance}}%
+     \edef\@@kjkjalign    {\getvalue{\??kj#4\c!align}}%
+     \edef\@@flfllocation {\getvalue{\??fl#4\c!location}}%
      \ifparfloat
        \@EA\dosetparfloat % {#1}{#2}{#3}{#4}%
      \else
diff --git a/tex/context/base/page-new.tex b/tex/context/base/page-new.tex
index 1c79f428c..8158f2e97 100644
--- a/tex/context/base/page-new.tex
+++ b/tex/context/base/page-new.tex
@@ -1,5 +1,7 @@
 \unprotect
 
+% % % NOT ENGLISH % % %
+
 % clean up footnotes to notes
 
 % We need to set the \dimen globally since we are in the
diff --git a/tex/context/base/page-num.tex b/tex/context/base/page-num.tex
index 5bab4251e..f27e2e8a7 100644
--- a/tex/context/base/page-num.tex
+++ b/tex/context/base/page-num.tex
@@ -384,7 +384,7 @@
      \global\rightpagetrue
    \fi}
 
-\def\@@nmin     {} % kan vervallen  (upward compatibility)
+\def\@@nmin       {} % kan vervallen  (upward compatibility)
 \def\@@nmlocation {} % mag {plaats, in} zijn
 
 \newcounter\@@pagenumberlocation
@@ -402,16 +402,14 @@
      \ExpandFirstAfter\processallactionsinset
        [\@@nmlocation]
        [    \v!middle=>\dododosetpagenumberlocation{\v!text\c!middletext},
-             \v!left=>\dododosetpagenumberlocation{\v!text\c!lefttext},
-            \v!right=>\dododosetpagenumberlocation{\v!text\c!righttext},
-          \v!inleft=>\dododosetpagenumberlocation{\v!margin\c!lefttext},
-         \v!inright=>\dododosetpagenumberlocation{\v!margin\c!righttext},
-           \v!inmargin=>\dododosetpagenumberlocation{\v!margin\ifdubbelzijdig
-                         \c!margintext\else\c!righttext\fi},
-             \v!margin=>\dododosetpagenumberlocation{\v!margin\ifdubbelzijdig
-                         \c!margintext\else\c!righttext\fi},
-           \v!atmargin=>\dododosetpagenumberlocation{\v!text\c!marginedgetext},
-          \v!marginedge=>\dododosetpagenumberlocation{\v!text\c!marginedgetext}]%
+              \v!left=>\dododosetpagenumberlocation{\v!text\c!lefttext},
+             \v!right=>\dododosetpagenumberlocation{\v!text\c!righttext},
+            \v!inleft=>\dododosetpagenumberlocation{\v!margin\c!lefttext},
+           \v!inright=>\dododosetpagenumberlocation{\v!margin\c!righttext},
+          \v!inmargin=>\dododosetpagenumberlocation{\v!margin\ifdubbelzijdig\c!margintext\else\c!righttext\fi},
+            \v!margin=>\dododosetpagenumberlocation{\v!margin\ifdubbelzijdig\c!margintext\else\c!righttext\fi},
+          \v!atmargin=>\dododosetpagenumberlocation{\v!text\c!marginedgetext},
+        \v!marginedge=>\dododosetpagenumberlocation{\v!text\c!marginedgetext}]%
      \ifdone \else
        \dododosetpagenumberlocation{\v!text\c!middletext}% default
      \fi
@@ -528,7 +526,8 @@
      {\ifnum\countervalue{\??se#1}>\zerocount
         \getvalue{#1\c!number}\@@nmnumberseparator
       \fi}%
-   \doifsomething\@@nmtext{\@@nmtext\@@nmnumberseparator}\donexttracklevel{#1}}
+   \doifsomething\@@nmtext{\@@nmtext\@@nmnumberseparator}% strange option, what was the purpose of text?
+   \donexttracklevel{#1}}
 
 \unexpanded\def\completepagenumber
   {\doif{\@@nmstate\@@pnstate}{\v!start\v!start}
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index cc5fc1d35..cdf95cb7a 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -2385,7 +2385,7 @@
         \processaction
           [\getvalue{\??mt##1#2\c!state}]
           [  \v!start=>\donetrue,
-           \v!repeat=>\donetrue,
+            \v!repeat=>\donetrue,
            \s!unknown=>\doperformtest\commalistelement\donetrue\donefalse]%
         \ifdone\dodoinitializecolumntextareas{##1}{#2}\fi
       \fi}%
diff --git a/tex/context/base/s-mod-00.tex b/tex/context/base/s-mod-00.tex
index e0026fafc..f584a23b6 100644
--- a/tex/context/base/s-mod-00.tex
+++ b/tex/context/base/s-mod-00.tex
@@ -255,7 +255,7 @@
 \definetyping [MP]  [\c!option=MP, \c!margin=\v!standard]
 \definetyping [TEX] [\c!option=TEX,\c!margin=\v!standard]
 
-\setuptyping [\v!typing]   [\c!margin=\v!standard]
+\setuptyping [\v!typing]  [\c!margin=\v!standard]
 \setuptyping [\v!file]    [\c!margin=\v!standard]
 \setuptyping [definition] [\c!margin=0pt]
 
@@ -353,13 +353,13 @@
 \defineparagraphs [interface] [\c!n=2]
 \setupparagraphs  [interface] [1] [\c!width=4cm]
 
-\def\startvoorbeeld{\par\startnarrower}
-\def\stopvoorbeeld {\stopnarrower}
+\def\startexample{\par\startnarrower}  \let\startvoorbeeld\startexample
+\def\stopexample {\stopnarrower}       \let\stopvoorbeeld \stopexample
 
 \gdef\VisualizeLastSpace{\ifdim\lastskip>0pt\unskip\tttf\char32\fi}
 
-\gdef\ShowHeadText #1{\tttf#1\VL\headtext {#1}\VisualizeLastSpace}
-\gdef\ShowLabelText#1{\tttf#1\VL\labeltext{#1}\VisualizeLastSpace}
+\gdef\ShowHeadText #1{\tttf#1\VL\mainlanguage[\currentlanguage]\headtext {#1}\VisualizeLastSpace}
+\gdef\ShowLabelText#1{\tttf#1\VL\mainlanguage[\currentlanguage]\labeltext{#1}\VisualizeLastSpace}
 
 \startbuffer[lang-a]
 \starttable[|l|l|]
@@ -390,8 +390,8 @@
   \VL \ShowLabelText \v!graphic            \VL\MR
   \VL \ShowLabelText \v!chapter            \VL\MR
   \VL \ShowLabelText \v!section            \VL\MR
-  \VL \ShowLabelText \subsection           \VL\MR
-  \VL \ShowLabelText \subsubsection        \VL\MR
+  \VL \ShowLabelText \v!subsection         \VL\MR
+  \VL \ShowLabelText \v!subsubsection      \VL\MR
   \VL \ShowLabelText \v!appendix           \VL\MR
   \VL \ShowLabelText \v!part               \VL\MR
   \VL \ShowLabelText \v!line               \VL\MR
@@ -440,9 +440,9 @@
 \gdef\ShowTextsValues [#1] [#2]
   {\vbox\bgroup
    \language[#1]%
-   \setbox0=\hbox to \hsize{\hss\bfb#2 language defaults\hss}
-   \dp0=0pt
-   \box0
+   \setbox\scratchbox\hbox to \hsize{\hss\bfb#2 language defaults\hss}
+   \dp\scratchbox\zeropoint
+   \box\scratchbox
    \vskip1em
    \hrule
    \vskip2em
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index a1e792bf1..819be008e 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -1416,9 +1416,9 @@
 \def\setFDFalignment[#1]%
   {\processaction
      [#1]
-     [ \v!left=>\edef\FDFalign{2},    % raggedleft
+     [  \v!left=>\edef\FDFalign{2},    % raggedleft
       \v!middle=>\edef\FDFalign{1},    % raggedcenter
-      \v!right=>\edef\FDFalign{0}]}   % raggedright
+       \v!right=>\edef\FDFalign{0}]}   % raggedright
 
 %D \macros
 %D   {setFDFattributes}
@@ -1448,7 +1448,7 @@
 
 \def\setFDFattributes[#1,#2,#3,#4]% style, color, backgroundcolor, framecolor
   {\bgroup % nog interlinie: n TL
-   \setbox\scratchbox=\hbox
+   \setbox\scratchbox\hbox
      \bgroup
        \doconvertfont{#1}{}%
        \PointsToBigPoints\bodyfontsize\size % x/xx, so better the actual size
@@ -1589,12 +1589,10 @@
 %D which simply redefined the previous macro to one that prints
 %D a message to the console.
 
-\def\testFDFactions%
+\def\testFDFactions
   {\def\setFDFaction##1##2%
-     {\doPSsanitizeJScode console.show();console.println("executing:##1");
-        \to\sanitizedJScode
-      \edef\FDFactions%
-        {\FDFactions /##1 << /S /JavaScript /JS (\sanitizedJScode) >> }}}
+     {\doPSsanitizeJScode console.show();console.println("executing:##1"); \to\sanitizedJScode
+      \edef\FDFactions{\FDFactions /##1 << /S /JavaScript /JS (\sanitizedJScode) >> }}}
 
 %D \macros
 %D   {doFDFregistercalculationset}
@@ -1665,7 +1663,7 @@
 \newif\ifbuildFDFdictionary     \buildFDFdictionarytrue
 \newif\ifbuildFDFencodingvector \buildFDFencodingvectortrue
 
-\def\defineFDFfonts%
+\def\defineFDFfonts
   {\let\FDFfonts\empty
    \processcommacommand[\FDFusedfonts]\defineFDFfont}
 
@@ -1771,13 +1769,13 @@
 \def\dosetuppageview#1% watch the v-h swapping here
   {\processaction
      [#1]
-     [\v!fit=>\def\PDFpageviewkey  {fit}\def\PDFpageviewwrd{/Fit},
-      \v!width=>\def\PDFpageviewkey {fith}\def\PDFpageviewwrd{/FitH},
-       \v!height=>\def\PDFpageviewkey {fitv}\def\PDFpageviewwrd{/FitV},
-   \v!minbreedte=>\def\PDFpageviewkey{fitbh}\def\PDFpageviewwrd{/FitBH},
-    \v!minhoogte=>\def\PDFpageviewkey{fitbv}\def\PDFpageviewwrd{/FitBV},
-    \v!standard=>\def\PDFpageviewkey{xyz \PDFpagexyzspec}\def\PDFpageviewwrd{/XYZ \PDFpagexyzspec},
-      \s!unknown=>\def\PDFpageviewkey  {fit}\def\PDFpageviewwrd{/Fit}]%
+     [       \v!fit=>\def\PDFpageviewkey  {fit}\def\PDFpageviewwrd{/Fit},
+           \v!width=>\def\PDFpageviewkey {fith}\def\PDFpageviewwrd{/FitH},
+          \v!height=>\def\PDFpageviewkey {fitv}\def\PDFpageviewwrd{/FitV},
+        \v!minwidth=>\def\PDFpageviewkey{fitbh}\def\PDFpageviewwrd{/FitBH},
+       \v!minheight=>\def\PDFpageviewkey{fitbv}\def\PDFpageviewwrd{/FitBV},
+        \v!standard=>\def\PDFpageviewkey{xyz \PDFpagexyzspec}\def\PDFpageviewwrd{/XYZ \PDFpagexyzspec},
+         \s!unknown=>\def\PDFpageviewkey  {fit}\def\PDFpageviewwrd{/Fit}]%
    \edef\PDFpageview{/View [\PDFpageviewwrd]}}
 
 %D \macros
@@ -2433,7 +2431,7 @@
 %   {\reducetocoding[pdfdoc]\simplifycommands}
 
 \def\enablePDFdocencoding
-  {\enablecoding[pdfdoc]
+  {\enablecoding[pdfdoc]%
    \enablelanguagespecifics[\currentlanguage]% redundant ?
    \simplifycommands}
 
diff --git a/tex/context/base/supp-ini.tex b/tex/context/base/supp-ini.tex
index 96639d108..2dc88d246 100644
--- a/tex/context/base/supp-ini.tex
+++ b/tex/context/base/supp-ini.tex
@@ -20,9 +20,9 @@
 \newif\ifeightbitcharacters  \eightbitcharacterstrue
 
 %D We want to have access to the raw alternatives of the
-%D special characters. We use a \type {\xdef} instead of 
-%D \type {\let} because we need an expandable token in a 
-%D \type {\write}. 
+%D special characters. We use a \type {\xdef} instead of
+%D \type {\let} because we need an expandable token in a
+%D \type {\write}.
 
 \bgroup
 
@@ -36,6 +36,8 @@
 .catcode `.< 12 .xdef .letterless            B.string<E
 .catcode `.> 12 .xdef .lettermore            B.string>E
 .catcode `.# 12 .xdef .letterhash            B.string#E
+.catcode `." 12 .xdef .letterdoublequote     B.string"E
+.catcode `.' 12 .xdef .lettersinglequote     B.string'E
 .catcode `.$ 12 .xdef .letterdollar          B.string$E
 .catcode `.% 12 .xdef .letterpercent         B.string%E
 .catcode `.^ 12 .xdef .letterhat             B.string^E
diff --git a/tex/context/base/supp-lan.tex b/tex/context/base/supp-lan.tex
index e49eac5c8..43c25f755 100644
--- a/tex/context/base/supp-lan.tex
+++ b/tex/context/base/supp-lan.tex
@@ -880,7 +880,7 @@
 %D Since we don't have to bother about active characters any
 %D longer, we end up with a pretty simple activating macro:
 
-\def\enableactivediscretionaries%
+\def\enableactivediscretionaries
   {\let\dotextmodediscretionary=\activedotextmodediscretionary}
 
 %D Done somewhere else: \type {\enableactivediscretionaries}.
@@ -891,7 +891,7 @@
 %D In those situations where the nature of characters is
 %D less predictable, we can use the more direct approach:
 
-\def\directdiscretionary#1%
+\unexpanded\def\directdiscretionary#1%
   {\convertargument#1\to\discretionarytoken
    \let\textmodediscretionary\compoundhyphen
    \expandafter\ifx\csname\@tmd@\string#1\endcsname\relax
diff --git a/tex/context/base/supp-mis.tex b/tex/context/base/supp-mis.tex
index c568dda14..ab089a297 100644
--- a/tex/context/base/supp-mis.tex
+++ b/tex/context/base/supp-mis.tex
@@ -1,6 +1,6 @@
 %D \module
 %D   [       file=supp-mis,
-%D        version=1997.01.04,
+%D        version=2004.10.26, % 1997.01.04,
 %D          title=\CONTEXT\ Support Macros,
 %D       subtitle=Missing (For Generic Use),
 %D         author=Hans Hagen,
@@ -93,7 +93,7 @@
 
 %D Let's see if it works.
 
-\writestatus{loading}{Context Support Macros / Miscellaneous }
+\writestatus{loading}{Context Support Macros / Miscellaneous (2004.10.26)}
 
 %D \macros
 %D   {protect,unprotect}
@@ -177,28 +177,24 @@
 \ifnocontextobject \scratchread    \do \newread   \scratchread    \fi
 \ifnocontextobject \scratchwrite   \do \newwrite  \scratchwrite   \fi
 
-\ifnocontextobject \zeropoint      \do \newdimen  \zeropoint      \fi % else problems with dimen12
-\ifnocontextobject \onepoint       \do \newdimen  \onepoint       \fi
-\ifnocontextobject \onebasepoint   \do \newdimen  \onebasepoint   \fi
-\ifnocontextobject \zerocount      \do \chardef   \zerocount =0   \fi
-\ifnocontextobject \plusone        \do \chardef   \plusone   =1   \fi
-\ifnocontextobject \minusone       \do \newcount  \minusone       \fi
-
-\ifnocontextobject \thousandpoint  \do \newdimen  \thousandpoint  \fi
-
-\ifnocontextobject \onerealpoint   \do \newdimen  \onerealpoint   \fi % latex has a funny \onepoint
-
-\thousandpoint = 1000pt
-\zeropoint     =    0pt
-\onepoint      =    1pt
-\onebasepoint  =    1bp
-\minusone      =   -1
-\onerealpoint  =    1pt
-
-\ifnocontextobject \emptytoks      \do \newtoks   \emptytoks      \fi
-
-\ifnocontextobject \nextbox   \do \newbox   \nextbox   \fi
-\ifnocontextobject \nextdepth \do \newdimen \nextdepth \fi
+%D Watch out, in the past we ran into troubles with \type {\onepoint}
+%D (and others) mening something different in \LATEX\ then here. In
+%D such situations clashes are bound to happen. For this reason the
+%D assignments are no inside the test. We try to catch those situations
+%D but we cannot keep ahead of teh future.
+
+\ifnocontextobject \zeropoint      \do \newdimen  \zeropoint      \zeropoint     =    0pt \fi % else problems with dimen12
+\ifnocontextobject \onepoint       \do \newdimen  \onepoint       \onepoint      =    1pt \fi
+\ifnocontextobject \onebasepoint   \do \newdimen  \onebasepoint   \onebasepoint  =    1bp \fi
+\ifnocontextobject \zerocount      \do \chardef   \zerocount                     =      0 \fi
+\ifnocontextobject \plusone        \do \chardef   \plusone                       =      1 \fi
+\ifnocontextobject \minusone       \do \newcount  \minusone       \minusone      =     -1 \fi
+\ifnocontextobject \thousandpoint  \do \newdimen  \thousandpoint  \thousandpoint = 1000pt \fi
+\ifnocontextobject \onerealpoint   \do \newdimen  \onerealpoint   \onerealpoint  =    1pt \fi % latex has a funny \onepoint
+
+\ifnocontextobject \emptytoks      \do \newtoks   \emptytoks \fi
+\ifnocontextobject \nextbox        \do \newbox    \nextbox   \fi
+\ifnocontextobject \nextdepth      \do \newdimen  \nextdepth \fi
 
 \ifnocontextobject \CONTEXTtrue            \do \newif\ifCONTEXT            \fi
 \ifnocontextobject \eightbitcharacterstrue \do \newif\ifeightbitcharacters \fi
diff --git a/tex/context/base/supp-pdf.tex b/tex/context/base/supp-pdf.tex
index c2c8f79e5..eaca8a0e9 100644
--- a/tex/context/base/supp-pdf.tex
+++ b/tex/context/base/supp-pdf.tex
@@ -1,6 +1,6 @@
 %D \module
 %D   [       file=supp-pdf,
-%D        version=2004.03.26,
+%D        version=2004.10.26,
 %D          title=\CONTEXT\ Support Macros,
 %D       subtitle=\METAPOST\ to \PDF\ conversion,
 %D         author=Hans Hagen,
@@ -48,7 +48,7 @@
 %D default engine for \TEX\ distributions, we need a more complex
 %D test.
 
-\writestatus{loading}{Context Support Macros / PDF (2004.03.26)}
+\writestatus{loading}{Context Support Macros / PDF (2004.10.26)}
 
 \unprotect
 
diff --git a/tex/context/base/syst-new.tex b/tex/context/base/syst-new.tex
index c56dda731..942f8e643 100644
--- a/tex/context/base/syst-new.tex
+++ b/tex/context/base/syst-new.tex
@@ -525,24 +525,28 @@
 % \long\def\unstringdouble"#1"{#1}
 % \long\def\unstringsingle'#1'{#1}
 % \long\def\unstringspaced #1 {#1}
+%
+% \def\grabstring
+%   {\dowithstringed\grabstringdouble\grabstringsingle\grabstringspaced}
+%
+% \def\dowithgrabbedstring#1%
+%   {\def\@@dowithgrabbedstring{#1}%
+%    \afterassignment\@@dowithgrabbedstring\grabstring}
+%
+% \long\def\grabstringdouble"#1"{\scratchtoks{#1}}
+% \long\def\grabstringsingle'#1'{\scratchtoks{#1}}
+% \long\def\grabstringspaced #1 {\scratchtoks{#1}}
 
-\long\def\unstringed#1% " ' space
-  {\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
-
-\long\setvalue{@u@s@"}#1#2"{#2}
-\long\setvalue{@u@s@'}#1#2'{#2}
-\long\setvalue{@u@s@ }#1#2 {#2}
+\long\setvalue{@u@s@"}#1#2"{#2} \long\setvalue{@g@s@"}#1#2"{\scratchtoks{#2}}
+\long\setvalue{@u@s@'}#1#2'{#2} \long\setvalue{@g@s@'}#1#2'{\scratchtoks{#2}}
+\long\setvalue{@u@s@ }#1#2 {#2} \long\setvalue{@g@s@ }#1#2 {\scratchtoks{#2}}
 
-\def\grabstring
-  {\dowithstringed\grabstringdouble\grabstringsingle\grabstringspaced}
+\long\def\unstringed#1{\csname\ifcsname @u@s@#1\endcsname @u@s@#1\else\s!empty\fi\endcsname#1}
+\long\def\grabstring#1{\csname\ifcsname @g@s@#1\endcsname @g@s@#1\else\s!empty\fi\endcsname#1}
 
 \def\dowithgrabbedstring#1%
   {\def\@@dowithgrabbedstring{#1}%
    \afterassignment\@@dowithgrabbedstring\grabstring}
-
-\long\def\grabstringdouble"#1"{\scratchtoks{#1}}
-\long\def\grabstringsingle'#1'{\scratchtoks{#1}}
-\long\def\grabstringspaced #1 {\scratchtoks{#1}}
 
 \def\expifequalelse#1#2%
   {\@@ifequal#1\relax\relax\@@and#2\relax\relax\@@then}
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index 4cb3940dc..0e08bc083 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -235,6 +235,8 @@
 % \def\alwaysreduceXMLtokens   {\XMLtokensreduction\plusone}
 % \def\permanentreduceXMLtokens{\XMLtokensreduction\plustwo}
 
+% part of this should move to a low level module
+
 \bgroup
 \catcode`\*=\@@comment
 \catcode`\.=\@@escape
@@ -242,19 +244,19 @@
 .catcode`.E=.@@endgroup
 .catcode`.P=.@@parameter
 
-.catcode`.&=.@@active * .gdef.letterampersand  B.string&E
-.catcode`.<=.@@active * .gdef.letterless       B.string<E
-                      * .gdef.lettermore       B.string>E
-.catcode`.#=.@@active * .gdef.letterhash       B.string#E
-.catcode`.$=.@@active * .gdef.letterdollar     B.string$E
-.catcode`.%=.@@active * .gdef.letterpercent    B.string%E
-.catcode`.\=.@@active * .gdef.letterbackslash  B.string\E
-.catcode`.^=.@@active * .gdef.letterhat        B.string^E
-.catcode`._=.@@active * .gdef.letterunderscore B.string_E
-.catcode`.{=.@@active * .gdef.letterbgroup     B.string{E
-.catcode`.}=.@@active * .gdef.letteregroup     B.string}E
-.catcode`.|=.@@active * .gdef.letterbar        B.string|E
-.catcode`.~=.@@active * .gdef.lettertilde      B.string~E
+.catcode`.&=.@@active * .xdef.letterampersand  B.string&E
+.catcode`.<=.@@active * .xdef.letterless       B.string<E
+                      * .xdef.lettermore       B.string>E
+.catcode`.#=.@@active * .xdef.letterhash       B.string#E
+.catcode`.$=.@@active * .xdef.letterdollar     B.string$E
+.catcode`.%=.@@active * .xdef.letterpercent    B.string%E
+.catcode`.\=.@@active * .xdef.letterbackslash  B.string\E
+.catcode`.^=.@@active * .xdef.letterhat        B.string^E
+.catcode`._=.@@active * .xdef.letterunderscore B.string_E
+.catcode`.{=.@@active * .xdef.letterbgroup     B.string{E
+.catcode`.}=.@@active * .xdef.letteregroup     B.string}E
+.catcode`.|=.@@active * .xdef.letterbar        B.string|E
+.catcode`.~=.@@active * .xdef.lettertilde      B.string~E
 
 .gdef.enableXMLexpansion
   B.def<B.doXMLelementE.let&=.doXMLentityE
-- 
cgit v1.2.3