summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2005-01-28 00:00:00 +0100
committerHans Hagen <pragma@wxs.nl>2005-01-28 00:00:00 +0100
commit26a80a0ee4c29e1353b88e1b7a056fbac0b7b599 (patch)
treef06697ecffb003220f2587e7682e4286c5b87c87 /tex
parent5a3212ab13d7de08a389ee0e40ff0e2737140736 (diff)
downloadcontext-26a80a0ee4c29e1353b88e1b7a056fbac0b7b599.tar.gz
stable 2005.01.28
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/colo-ini.tex4
-rw-r--r--tex/context/base/cont-new.tex57
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-con.tex20
-rw-r--r--tex/context/base/core-itm.tex15
-rw-r--r--tex/context/base/core-job.tex53
-rw-r--r--tex/context/base/core-spa.tex30
-rw-r--r--tex/context/base/enco-cyr.tex135
-rw-r--r--tex/context/base/enco-def.tex259
-rw-r--r--tex/context/base/enco-grk.tex417
-rw-r--r--tex/context/base/enco-heb.tex16
-rw-r--r--tex/context/base/enco-mis.tex6
-rw-r--r--tex/context/base/enco-uc.tex630
-rw-r--r--tex/context/base/enco-vna.tex237
-rw-r--r--tex/context/base/java-ini.tex155
-rw-r--r--tex/context/base/lang-grk.tex88
-rw-r--r--tex/context/base/math-ini.tex144
-rw-r--r--tex/context/base/page-ini.tex9
-rw-r--r--tex/context/base/regi-cyr.tex98
-rw-r--r--tex/context/base/regi-grk.tex152
-rw-r--r--tex/context/base/regi-win.tex28
-rw-r--r--tex/context/base/supp-fil.tex13
-rw-r--r--tex/context/base/supp-mps.tex17
-rw-r--r--tex/context/base/syst-ext.tex4
-rw-r--r--tex/context/base/syst-gen.tex38
-rw-r--r--tex/context/base/syst-new.tex24
-rw-r--r--tex/context/base/unic-001.tex145
-rw-r--r--tex/context/base/unic-002.tex17
-rw-r--r--tex/context/base/unic-003.tex73
-rw-r--r--tex/context/base/unic-004.tex272
-rw-r--r--tex/context/base/unic-005.tex1
-rw-r--r--tex/context/base/unic-032.tex270
-rw-r--r--tex/context/base/unic-ini.tex32
-rw-r--r--tex/context/base/xtag-ini.tex12
-rw-r--r--tex/context/bib/t-bib.tex4
-rw-r--r--tex/context/interface/keys-cz.xml2
-rw-r--r--tex/context/interface/keys-de.xml2
-rw-r--r--tex/context/interface/keys-en.xml2
-rw-r--r--tex/context/interface/keys-it.xml2
-rw-r--r--tex/context/interface/keys-nl.xml2
-rw-r--r--tex/context/interface/keys-ro.xml2
41 files changed, 2056 insertions, 1433 deletions
diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index 805e6aee8..fc7e27269 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -388,9 +388,9 @@
{\ifx\allspotcolors\empty \else
\bgroup
\let\usedspotcolors\empty
- \def\docommando##1%
+ \def\docommand##1%
{\doifdefined{\??cs##1}{\addtocommalist{##1}\usedspotcolors}}%
- \processcommacommand[\allspotcolors]\docommando
+ \processcommacommand[\allspotcolors]\docommand
\savecurrentvalue\usedspotcolors\usedspotcolors
\egroup
\fi}
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index e306f99bf..6a8e686b2 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -39,58 +39,6 @@
% \egroup
% \convertcommand\@@globalexpanded\to}
-% twice as fast in #1=5 #2=40 situations, only gains some speed when
-% multiple runs of large docs are done; fully expandable, no
-% statuscounter needed, no restore (due to grouping) needed etc
-
-\beginETEX \numexpr
-
-\def\writestatus#1#2%
- {\writestring{\expandafter\dosplitstatus\expandafter\statuswidth#1%
- \space\space\space\space\space\space\space
- \space\space\space\space\space\space\space
- \space\space\space\space\space\space\end
- \space:\space#2}}
-
-\def\dosplitstatus#1#2%
- {\ifcase#1 \expandafter\nosplitstatus\fi#2%
- \expandafter\dosplitstatus\expandafter{\the\numexpr#1+\minusone\relax}}
-
-\endETEX
-
-\beginETEX
-
-% fallback to math when in text mode (handy for unicode vectors)
-
-\def\dohandlemathtoken#1%
- {\csname
- \ifmmode
- \ifcsname\@mt@\mathcollection#1\endcsname
- \@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \@mt@\nomathcollection
- \else\ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else
- \nocharacterencoding
- \fi\fi\fi
- \else
- \ifcsname\characterencoding#1\endcsname
- \characterencoding
- \else\ifcsname\nocharacterencoding#1\endcsname
- \nocharacterencoding
- \else\ifcsname\@mt@\mathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
- \else
- \nocharacterencoding
- \fi\fi\fi\fi
- \fi
- #1\endcsname}
-
-\endETEX
-
\def\defXMLattributestring#1#2#3#4%
{\ifcsname\@@XMLvariable:#2:#3\endcsname
\@EA\convertcommand\csname\@@XMLvariable:#2:#3\endcsname\to#1%
@@ -111,11 +59,6 @@
\unexpanded\def\xmlrent#1{\doXMLentity#1;}
-\def\dosetupitemgroupconstant[#1][#2]%
- {\def\dodosetupitemgroupconstant##1% catches empty in [a,b,] handy for xml
- {\doifsomething{##1}{\dododosetupitemgroupconstant[#1][##1*]}}%
- \processcommacommand[#2]\dodosetupitemgroupconstant} % expansion of #2 is handy for xml
-
% \page[left]
% \definecolumntextarea[intro][left][x=1,y=1,nx=4,ny=20,state=start,background=introlayer]
% \setupcolumntextareatext[intro][left][\setups{intro}]
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index cc8638d75..8026ded2e 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{2005.01.26}
+\def\contextversion{2005.01.28}
%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-con.tex b/tex/context/base/core-con.tex
index ecb7d9ee8..97ff27801 100644
--- a/tex/context/base/core-con.tex
+++ b/tex/context/base/core-con.tex
@@ -136,6 +136,8 @@
%D \showsetup{\y!characters}
%D \showsetup{\y!Characters}
+\beginTEX
+
\def\doconvertcharacters#1#2%
{\ifnum#2>26
\bgroup
@@ -156,6 +158,24 @@
#1{#2}% pure expansion, used in references
\fi}
+\endTEX
+
+%D A fully expandable alternative:
+
+\beginETEX \numexpr
+
+\def\doconvertcharacters#1#2%
+ {\ifcase#2\else
+ \ifnum#2>26
+ \expandafter\doconvertcharacters\expandafter#1\expandafter{\the\numexpr(#2+12)/26-1\relax}%
+ \expandafter#1\expandafter{\the\numexpr#2-((#2+12)/26-)*26\relax}%
+ \else
+ \expandafter#1\expandafter{\number#2}%
+ \fi
+ \fi}
+
+\endETEX
+
\def\characters{\doconvertcharacters\character}
\def\Characters{\doconvertcharacters\Character}
diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex
index b4b13bffc..d3a0c61aa 100644
--- a/tex/context/base/core-itm.tex
+++ b/tex/context/base/core-itm.tex
@@ -86,7 +86,11 @@
\def\@@itemcounter{\s!itemcount\currentitemgroup}
-\def\doitembreak#1{\iftextitems\else\dosomebreak#1\fi}
+% \def\doitembreak#1{\iftextitems\else\dosomebreak#1\fi}
+%
+% s-pre-61 / pre-dis, test extensively, 2004/5
+
+\def\doitembreak#1{\ifoptimizeitems\iftextitems\else\dosomebreak#1\fi\fi}
\def\dolistreference
{\immediatewriteutilitycommand
@@ -200,9 +204,14 @@
\letitemparameter{#1}\c!after \empty
\letitemparameter{#1}\c!inbetween \empty}
+% \def\dosetupitemgroupconstant[#1][#2]%
+% {\def\dodosetupitemgroupconstant##1%
+% {\dododosetupitemgroupconstant[#1][##1*]}%
+% \processcommacommand[#2]\dodosetupitemgroupconstant} % expansion of #2 is handy for xml
+
\def\dosetupitemgroupconstant[#1][#2]%
- {\def\dodosetupitemgroupconstant##1%
- {\dododosetupitemgroupconstant[#1][##1*]}%
+ {\def\dodosetupitemgroupconstant##1% catches empty in [a,b,] handy for xml
+ {\doifsomething{##1}{\dododosetupitemgroupconstant[#1][##1*]}}%
\processcommacommand[#2]\dodosetupitemgroupconstant} % expansion of #2 is handy for xml
%\def\dododododosetupitemgroup[#1][#2]%
diff --git a/tex/context/base/core-job.tex b/tex/context/base/core-job.tex
index a743a8350..c1af7f62a 100644
--- a/tex/context/base/core-job.tex
+++ b/tex/context/base/core-job.tex
@@ -76,19 +76,43 @@
\let\allinputpaths\empty
+% \def\usepath[#1]%
+% {\def\docommando##1%
+% {\doifelse{##1}\v!reset
+% {\let\allinputpaths\empty}
+% {\addtocommalist{##1}\allinputpaths}}%
+% \processcommalist[#1]\docommando}
+%
+% \def\usesubpath[#1]% new, see webschrift for usage
+% {\ifx\allinputpaths\empty
+% \edef\allinputpaths{#1}%
+% \else
+% \def\docommando##1%
+% {\def\dodocommando####1{\addtocommalist{##1/####1}\allinputpaths}%
+% \processcommalist[#1]\dodocommando}%
+% \processcommacommand[\allinputpaths]\docommando
+% \fi}
+%
+% the following alternatives permit ../{name} i.e. braces
+
\def\usepath[#1]%
{\def\docommando##1%
{\doifelse{##1}\v!reset
{\let\allinputpaths\empty}
- {\addtocommalist{##1}\allinputpaths}}%
+ {\sanitizefilename#1\to\ascii
+ \convertcommand\ascii\to\ascii
+ \addtocommalist\ascii\allinputpaths}}%
\processcommalist[#1]\docommando}
-\def\usesubpath[#1]% new, see webschrift for usage
+\def\usesubpath[#1]% test for a real long time, permits ../{name} i.e. braces
{\ifx\allinputpaths\empty
- \edef\allinputpaths{#1}%
+ \sanitizefilename#1\to\allinputpaths
\else
\def\docommando##1%
- {\def\dodocommando####1{\addtocommalist{##1/####1}\allinputpaths}%
+ {\def\dodocommando####1%
+ {\sanitizefilename####1\to\ascii
+ \convertcommand\ascii\to\ascii
+ \addtocommalist{##1/\ascii}\allinputpaths}%
\processcommalist[#1]\dodocommando}%
\processcommacommand[\allinputpaths]\docommando
\fi}
@@ -180,7 +204,7 @@
\appendtoks \checknotes \to \everyjob % depends on bodyfont
\appendtoks \initializeMPgraphics \to \everyjob % after loading system files
-\appendtoks \page[\v!last] \page \to \everybye
+\appendtoks \page[\v!last] \page \to \everybye
\appendtoks \ifarrangingpages\poparrangedpages\fi \to \everybye
\appendtoks \registerfileinfo[end]\jobname \to \everybye
@@ -363,6 +387,25 @@
\def\executesystemcommand{\immediate\write18}
+% soon, when pdftex 1.22 is out in the field:
+%
+% \chardef\systemcommandmode\zerocount % 0=unknown 1=disabled 2=enabled
+%
+% \ifx\pdftexversion\undefined \else \ifnum\number\pdftexversion>122
+% \prependtoks
+% \chardef\systemcommandmode \ifeof18 \plusone \else \plustwo \fi
+% \to \everyjob
+% \fi
+%
+% maybe in meta-ini
+%
+% \appendtoks
+% \ifrunMPgraphics \ifcase\systemcommandmode \or
+% \writestatus\m!systems{system commands are disabled}%
+% \runMPgraphicsfalse
+% \fi \fi
+% \to \everyjob
+
\ifx\etexversion\undefined \else \ifnum\etexversion<202
\prependtoks
\writestatus\m!systems{eTeX version \number\etexversion\space -> too old (bugs)}%
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index 6baa67782..5a1d11c41 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -3624,8 +3624,26 @@
% \def\woordrechts
% {\groupedcommand{\hfill\hbox}{\parfillskip\zeropoint}}
-\def\wordright % zie naw
- {\groupedcommand
+% beware: \wordright{whatever\kern-\rightskip} should work!
+% so, no funny boxing here
+
+% \def\wordright % zie naw
+% {% don't change
+% \groupedcommand
+% {\removeunwantedspaces
+% \hfill
+% \hskip\zeropoint % permit break, \allowbreak fails here
+% \strut
+% \hfill
+% \quad % decent spacing
+% \hbox}
+% {% there can be \hskip-\rightskip here
+% \parfillskip\zeropoint
+% \par}}
+
+\def\dowordright[#1]%
+ {% don't change
+ \groupedcommand
{\removeunwantedspaces
\hfill
\hskip\zeropoint % permit break, \allowbreak fails here
@@ -3633,8 +3651,14 @@
\hfill
\quad % decent spacing
\hbox}
- {\parfillskip\zeropoint
+ {\doifelse{#1}\v!right{\kern-\rightskip}{\doifsomething{#1}{\kern-#1}}%
+ \parfillskip\zeropoint
\par}}
+
+\def\wordright
+ {\dosingleempty\dowordright}
+
+% \wordright[\rightskip]{whatever}
%D \macros
%D {pushindentation,popindentation}
diff --git a/tex/context/base/enco-cyr.tex b/tex/context/base/enco-cyr.tex
index 731d31b8c..9ee7f50b0 100644
--- a/tex/context/base/enco-cyr.tex
+++ b/tex/context/base/enco-cyr.tex
@@ -53,141 +53,6 @@
%D We start with a fallback, define by HH, who assumes that
%D this is phonetic.
-\startencoding[default]
-
-\definecharacter cyrillicA {A}
-\definecharacter cyrillica {a}
-\definecharacter cyrillicB {B}
-\definecharacter cyrillicb {b}
-\definecharacter cyrillicV {V}
-\definecharacter cyrillicv {v}
-\definecharacter cyrillicG {G}
-\definecharacter cyrillicg {g}
-\definecharacter cyrillicD {D}
-\definecharacter cyrillicd {d}
-\definecharacter cyrillicE {E}
-\definecharacter cyrillice {e}
-\definecharacter cyrillicZH {ZH}
-\definecharacter cyrilliczh {zh}
-\definecharacter cyrillicZ {Z}
-\definecharacter cyrillicz {z}
-\definecharacter cyrillicI {I}
-\definecharacter cyrillici {i}
-\definecharacter cyrillicISHRT {ISHRT}
-\definecharacter cyrillicishrt {ishrt}
-\definecharacter cyrillicK {K}
-\definecharacter cyrillick {k}
-\definecharacter cyrillicL {L}
-\definecharacter cyrillicl {l}
-\definecharacter cyrillicM {M}
-\definecharacter cyrillicm {m}
-\definecharacter cyrillicN {N}
-\definecharacter cyrillicn {n}
-\definecharacter cyrillicO {O}
-\definecharacter cyrillico {o}
-\definecharacter cyrillicP {P}
-\definecharacter cyrillicp {p}
-\definecharacter cyrillicR {R}
-\definecharacter cyrillicr {r}
-\definecharacter cyrillicS {S}
-\definecharacter cyrillics {s}
-\definecharacter cyrillicT {T}
-\definecharacter cyrillict {t}
-\definecharacter cyrillicU {U}
-\definecharacter cyrillicu {u}
-\definecharacter cyrillicF {F}
-\definecharacter cyrillicf {f}
-\definecharacter cyrillicH {H}
-\definecharacter cyrillich {h}
-\definecharacter cyrillicC {C}
-\definecharacter cyrillicc {c}
-\definecharacter cyrillicCH {CH}
-\definecharacter cyrillicch {ch}
-\definecharacter cyrillicSH {SH}
-\definecharacter cyrillicsh {sh}
-\definecharacter cyrillicSHCH {SHCH}
-\definecharacter cyrillicshch {shch}
-\definecharacter cyrillicHRDSN {HRDSN}
-\definecharacter cyrillichrdsn {hrdsn}
-\definecharacter cyrillicERY {ERY}
-\definecharacter cyrillicery {ery}
-\definecharacter cyrillicSFTSN {SFTSN}
-\definecharacter cyrillicsftsn {sftsn}
-\definecharacter cyrillicEREV {EREV}
-\definecharacter cyrillicerev {erev}
-\definecharacter cyrillicYU {YU}
-\definecharacter cyrillicyu {yu}
-\definecharacter cyrillicYA {YA}
-\definecharacter cyrillicya {ya}
-\definecharacter cyrillicGUP {GUP}
-\definecharacter cyrillicgup {gup}
-\definecharacter cyrillicGHCRS {GHCRS}
-\definecharacter cyrillicghcrs {ghcrs}
-\definecharacter cyrillicDJE {DJE}
-\definecharacter cyrillicdje {dje}
-\definecharacter cyrillicTSHE {TSHE}
-\definecharacter cyrillictshe {tshe}
-\definecharacter cyrillicSHHA {SHHA}
-\definecharacter cyrillicshha {shha}
-\definecharacter cyrillicZHDSC {ZHDSC}
-\definecharacter cyrilliczhdsc {zhdsc}
-\definecharacter cyrillicZDSC {ZDSC}
-\definecharacter cyrilliczdsc {zdsc}
-\definecharacter cyrillicLJE {LJE}
-\definecharacter cyrilliclje {lje}
-\definecharacter cyrillicYI {YI}
-\definecharacter cyrillicyi {yi}
-\definecharacter cyrillicKDSC {KDSC}
-\definecharacter cyrillickdsc {kdsc}
-\definecharacter cyrillicKBEAK {KBEAK}
-\definecharacter cyrillickbeak {kbeak}
-\definecharacter cyrillicKVCRS {KVCRS}
-\definecharacter cyrillickvcrs {kvcrs}
-\definecharacter cyrillicAE {AE}
-\definecharacter cyrillicae {ae}
-\definecharacter cyrillicNDSC {NDSC}
-\definecharacter cyrillicndsc {ndsc}
-\definecharacter cyrillicNG {NG}
-\definecharacter cyrillicng {ng}
-\definecharacter cyrillicDZE {DZE}
-\definecharacter cyrillicdze {dze}
-\definecharacter cyrillicOTLD {OTLD}
-\definecharacter cyrillicotld {otld}
-\definecharacter cyrillicSDSC {SDSC}
-\definecharacter cyrillicsdsc {sdsc}
-\definecharacter cyrillicUSHRT {USHRT}
-\definecharacter cyrillicushrt {ushrt}
-\definecharacter cyrillicY {Y}
-\definecharacter cyrillicy {y}
-\definecharacter cyrillicYHCRS {YHCRS}
-\definecharacter cyrillicyhcrs {yhcrs}
-\definecharacter cyrillicHDSC {HDSC}
-\definecharacter cyrillichdsc {hdsc}
-\definecharacter cyrillicDZHE {DZHE}
-\definecharacter cyrillicdzhe {dzhe}
-\definecharacter cyrillicCHVCRS {CHVCRS}
-\definecharacter cyrillicchvcrs {chvcrs}
-\definecharacter cyrillicCHRDSC {CHRDSC}
-\definecharacter cyrillicchrdsc {chrdsc}
-\definecharacter cyrillicIE {IE}
-\definecharacter cyrillicie {ie}
-\definecharacter cyrillicSCHWA {SCHWA}
-\definecharacter cyrillicschwa {schwa}
-\definecharacter cyrillicNJE {NJE}
-\definecharacter cyrillicnje {nje}
-\definecharacter cyrillicYO {YO}
-\definecharacter cyrillicyo {yo}
-\definecharacter cyrillicII {II}
-\definecharacter cyrillicii {ii}
-\definecharacter cyrillicJE {JE}
-\definecharacter cyrillicje {je}
-\definecharacter cyrillicQ {Q}
-\definecharacter cyrillicq {q}
-\definecharacter cyrillicW {W}
-\definecharacter cyrillicw {w}
-
-\stopencoding
-
\startmapping[t2a]
\resetcaserange 128 to 255
diff --git a/tex/context/base/enco-def.tex b/tex/context/base/enco-def.tex
index 65c44c30f..5e87c8e03 100644
--- a/tex/context/base/enco-def.tex
+++ b/tex/context/base/enco-def.tex
@@ -19,7 +19,7 @@
%D usage of the the original \TEX\ fonts, where composed
%D characters were not part of the design. So, occasionally
%D we have to revert to hacks. Thanks to all those users who
-%D helped me to fill in the details!
+%D helped me to fill in the details.
\startencoding[default]
@@ -59,11 +59,11 @@
\definecharacter ssharp {\char25 } % "19
\definecharacter Ssharp {SS}
-\definecharacter thorn {\missingglyph}
-\definecharacter Thorn {\missingglyph}
+\definecharacter thorn {\unknownchar}
+\definecharacter Thorn {\unknownchar}
-\definecharacter eth {\missingglyph}
-\definecharacter Eth {\missingglyph}
+\definecharacter eth {\unknownchar}
+\definecharacter Eth {\unknownchar}
\definecharacter exclamdown 60
\definecharacter questiondown 62
@@ -84,7 +84,7 @@
\definecharacter threesuperior {\high{3}}
\definecharacter textcent {c}
-\definecharacter textcurrency {\missingglyph}
+\definecharacter textcurrency {\unknownchar}
\definecharacter textdollar {\fakedollar}
\definecharacter texteuro {E}
\definecharacter textflorin {\fakeflorin}
@@ -101,9 +101,9 @@
\definecharacter periodcentered {\mathematics\cdot}
\definecharacter compoundwordmark 23
-\definecharacter textasciicircum 94
-\definecharacter textasciitilde 126
-\definecharacter textslash 47
+\definecharacter textasciicircum 94
+\definecharacter textasciitilde 126
+\definecharacter textslash 47
\definecharacter textbackslash {\tex{}} % todo
\definecharacter textbraceleft {\mathematics\{}
\definecharacter textbraceright {\mathematics\}}
@@ -451,6 +451,247 @@
\stopencoding
+%D Greek (moved to here):
+
+\startencoding[default]
+
+% Uppercase Greek letters
+
+\definecharacter greekAlpha {\Alpha}
+\definecharacter greekBeta {\Beta}
+\definecharacter greekGamma {\Gamma}
+\definecharacter greekDelta {\Delta}
+\definecharacter greekEpsilon {\Epsilon}
+\definecharacter greekZeta {\Zeta}
+\definecharacter greekEta {\Eta}
+\definecharacter greekTheta {\Theta}
+\definecharacter greekIota {\Iota}
+\definecharacter greekKappa {\Kappa}
+\definecharacter greekLamda {\Lamba}
+\definecharacter greekMu {\Mu}
+\definecharacter greekNu {\Nu}
+\definecharacter greekXi {\Xi}
+\definecharacter greekOmicron {\Omicron}
+\definecharacter greekPi {\Pi}
+\definecharacter greekRho {\Rho}
+\definecharacter greekSigma {\Sigma}
+\definecharacter greekTau {\Tau}
+\definecharacter greekUpsilon {\Upsilon}
+\definecharacter greekPhi {\Phi}
+\definecharacter greekChi {\Chi}
+\definecharacter greekPsi {\Psi}
+\definecharacter greekOmega {\Omega}
+
+% Lowercase Greek letters
+
+\definecharacter greekalpha {\alpha}
+\definecharacter greekbeta {\beta}
+\definecharacter greekgamma {\gamma}
+\definecharacter greekdelta {\delta}
+\definecharacter greekepsilon {\epsilon}
+\definecharacter greekzeta {\zeta}
+\definecharacter greeketa {\eta}
+\definecharacter greektheta {\theta}
+\definecharacter greekiota {\iota}
+\definecharacter greekkappa {\kappa}
+\definecharacter greeklamda {\lambda}
+\definecharacter greekmu {\mu}
+\definecharacter greeknu {\nu}
+\definecharacter greekxi {\xi}
+\definecharacter greekomicron {\omicron}
+\definecharacter greekpi {\pi}
+\definecharacter greekrho {\rho}
+\definecharacter greekfinalsigma {\sigma}
+\definecharacter greeksigma {\sigma}
+\definecharacter greektau {\tau}
+\definecharacter greekupsilon {\upsilon}
+\definecharacter greekphi {\phi}
+\definecharacter greekchi {\chi}
+\definecharacter greekpsi {\psi}
+\definecharacter greekomega {\omega}
+
+% Accented Uppercase Greek letters
+
+\definecharacter greekAlphatonos {'A}
+\definecharacter greekEpsilontonos {'E}
+\definecharacter greekEtatonos {'H}
+\definecharacter greekIotatonos {'I}
+\definecharacter greekOmicrontonos {'O}
+\definecharacter greekUpsilontonos {'U}
+\definecharacter greekOmegatonos {'W}
+\definecharacter greekIotadialytika {"I}
+\definecharacter greekUpsilondialytika {"U}
+
+% Accented Lowercase Greek letters
+
+\definecharacter greekalphatonos {'a}
+\definecharacter greekepsilontonos {'e}
+\definecharacter greeketatonos {'h}
+\definecharacter greekiotatonos {'i}
+\definecharacter greekomicrontonos {'o}
+\definecharacter greekupsilontonos {'u}
+\definecharacter greekomegatonos {'w}
+\definecharacter greekiotadialytika {"i}
+\definecharacter greekupsilondialytika {"u}
+\definecharacter greekiotadialytikatonos {'"i}
+\definecharacter greekupsilondialytikatonos {'"u}
+
+% Miscellaneous Greek symbols
+
+\definecharacter greekleftquot {((}
+\definecharacter greekrightquot {))}
+\definecharacter greektonos {'}
+\definecharacter greekdialytikatonos {'"}
+\definecharacter greekapostrophos {''}
+
+\stopencoding
+
+%D Cyrillic (moved to here):
+
+\startencoding[default]
+
+\definecharacter cyrillicA {A}
+\definecharacter cyrillicB {B}
+\definecharacter cyrillicV {V}
+\definecharacter cyrillicG {G}
+\definecharacter cyrillicD {D}
+\definecharacter cyrillicE {E}
+\definecharacter cyrillicZH {ZH}
+\definecharacter cyrillicZ {Z}
+\definecharacter cyrillicI {I}
+\definecharacter cyrillicISHRT {ISHRT}
+\definecharacter cyrillicK {K}
+\definecharacter cyrillicL {L}
+\definecharacter cyrillicM {M}
+\definecharacter cyrillicN {N}
+\definecharacter cyrillicO {O}
+\definecharacter cyrillicP {P}
+\definecharacter cyrillicR {R}
+\definecharacter cyrillicS {S}
+\definecharacter cyrillicT {T}
+\definecharacter cyrillicU {U}
+\definecharacter cyrillicF {F}
+\definecharacter cyrillicH {H}
+\definecharacter cyrillicC {C}
+\definecharacter cyrillicCH {CH}
+\definecharacter cyrillicSH {SH}
+\definecharacter cyrillicSHCH {SHCH}
+\definecharacter cyrillicHRDSN {HRDSN}
+\definecharacter cyrillicERY {ERY}
+\definecharacter cyrillicSFTSN {SFTSN}
+\definecharacter cyrillicEREV {EREV}
+\definecharacter cyrillicYU {YU}
+\definecharacter cyrillicYA {YA}
+\definecharacter cyrillicGUP {GUP}
+\definecharacter cyrillicGHCRS {GHCRS}
+\definecharacter cyrillicDJE {DJE}
+\definecharacter cyrillicTSHE {TSHE}
+\definecharacter cyrillicSHHA {SHHA}
+\definecharacter cyrillicZHDSC {ZHDSC}
+\definecharacter cyrillicZDSC {ZDSC}
+\definecharacter cyrillicLJE {LJE}
+\definecharacter cyrillicYI {YI}
+\definecharacter cyrillicKDSC {KDSC}
+\definecharacter cyrillicKBEAK {KBEAK}
+\definecharacter cyrillicKVCRS {KVCRS}
+\definecharacter cyrillicAE {AE}
+\definecharacter cyrillicNDSC {NDSC}
+\definecharacter cyrillicNG {NG}
+\definecharacter cyrillicDZE {DZE}
+\definecharacter cyrillicOTLD {OTLD}
+\definecharacter cyrillicSDSC {SDSC}
+\definecharacter cyrillicUSHRT {USHRT}
+\definecharacter cyrillicY {Y}
+\definecharacter cyrillicYHCRS {YHCRS}
+\definecharacter cyrillicHDSC {HDSC}
+\definecharacter cyrillicDZHE {DZHE}
+\definecharacter cyrillicCHVCRS {CHVCRS}
+\definecharacter cyrillicCHRDSC {CHRDSC}
+\definecharacter cyrillicIE {IE}
+\definecharacter cyrillicSCHWA {SCHWA}
+\definecharacter cyrillicNJE {NJE}
+\definecharacter cyrillicYO {YO}
+\definecharacter cyrillicII {II}
+\definecharacter cyrillicJE {JE}
+\definecharacter cyrillicQ {Q}
+\definecharacter cyrillicW {W}
+
+\definecharacter cyrillica {a}
+\definecharacter cyrillicb {b}
+\definecharacter cyrillicv {v}
+\definecharacter cyrillicg {g}
+\definecharacter cyrillicd {d}
+\definecharacter cyrillice {e}
+\definecharacter cyrilliczh {zh}
+\definecharacter cyrillicz {z}
+\definecharacter cyrillici {i}
+\definecharacter cyrillicishrt {ishrt}
+\definecharacter cyrillick {k}
+\definecharacter cyrillicl {l}
+\definecharacter cyrillicm {m}
+\definecharacter cyrillicn {n}
+\definecharacter cyrillico {o}
+\definecharacter cyrillicp {p}
+\definecharacter cyrillicr {r}
+\definecharacter cyrillics {s}
+\definecharacter cyrillict {t}
+\definecharacter cyrillicu {u}
+\definecharacter cyrillicf {f}
+\definecharacter cyrillich {h}
+\definecharacter cyrillicc {c}
+\definecharacter cyrillicch {ch}
+\definecharacter cyrillicsh {sh}
+\definecharacter cyrillicshch {shch}
+\definecharacter cyrillichrdsn {hrdsn}
+\definecharacter cyrillicery {ery}
+\definecharacter cyrillicsftsn {sftsn}
+\definecharacter cyrillicerev {erev}
+\definecharacter cyrillicyu {yu}
+\definecharacter cyrillicya {ya}
+\definecharacter cyrillicgup {gup}
+\definecharacter cyrillicghcrs {ghcrs}
+\definecharacter cyrillicdje {dje}
+\definecharacter cyrillictshe {tshe}
+\definecharacter cyrillicshha {shha}
+\definecharacter cyrilliczhdsc {zhdsc}
+\definecharacter cyrilliczdsc {zdsc}
+\definecharacter cyrilliclje {lje}
+\definecharacter cyrillicyi {yi}
+\definecharacter cyrillickdsc {kdsc}
+\definecharacter cyrillickbeak {kbeak}
+\definecharacter cyrillickvcrs {kvcrs}
+\definecharacter cyrillicae {ae}
+\definecharacter cyrillicndsc {ndsc}
+\definecharacter cyrillicng {ng}
+\definecharacter cyrillicdze {dze}
+\definecharacter cyrillicotld {otld}
+\definecharacter cyrillicsdsc {sdsc}
+\definecharacter cyrillicushrt {ushrt}
+\definecharacter cyrillicy {y}
+\definecharacter cyrillicyhcrs {yhcrs}
+\definecharacter cyrillichdsc {hdsc}
+\definecharacter cyrillicdzhe {dzhe}
+\definecharacter cyrillicchvcrs {chvcrs}
+\definecharacter cyrillicchrdsc {chrdsc}
+\definecharacter cyrillicie {ie}
+\definecharacter cyrillicschwa {schwa}
+\definecharacter cyrillicnje {nje}
+\definecharacter cyrillicyo {yo}
+\definecharacter cyrillicii {ii}
+\definecharacter cyrillicje {je}
+\definecharacter cyrillicq {q}
+\definecharacter cyrillicw {w}
+
+\stopencoding
+
+%D Hebrew:
+
+\startencoding[default]
+
+\definecharacter hebrewAlef {'} \definecharacter hebrewBet {b} \definecharacter hebrewGimel {g} \definecharacter hebrewDalet {d} \definecharacter hebrewHe {h} \definecharacter hebrewVav {w} \definecharacter hebrewZayin {z} \definecharacter hebrewHet {\hstroke} \definecharacter hebrewTet {\tcedilla} \definecharacter hebrewYod {y} \definecharacter hebrewKaffinal {k} \definecharacter hebrewKaf {k} \definecharacter hebrewLamed {l} \definecharacter hebrewMemfinal {m} \definecharacter hebrewMem {m} \definecharacter hebrewNunfinal {n} \definecharacter hebrewNun {n} \definecharacter hebrewSamekh {s} \definecharacter hebrewAyin {\gdotaccent} \definecharacter hebrewPefinal {p} \definecharacter hebrewPe {p} \definecharacter hebrewTsadifinal {\scedilla} \definecharacter hebrewTsadi {\scedilla} \definecharacter hebrewQof {q} \definecharacter hebrewResh {r} \definecharacter hebrewShin {\scaron} \definecharacter hebrewTav {th}
+
+\stopencoding
+
%D A few goodies:
\def\eszett {\ssharp}
diff --git a/tex/context/base/enco-grk.tex b/tex/context/base/enco-grk.tex
index dbab21302..039b44f11 100644
--- a/tex/context/base/enco-grk.tex
+++ b/tex/context/base/enco-grk.tex
@@ -11,307 +11,180 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-
-\startencoding[default]
-
-%
-% Uppercase Greek letters
-%
-
-\definecharacter GreekAlpha {A}
-\definecharacter GreekBeta {B}
-\definecharacter GreekGamma {G}
-\definecharacter GreekDelta {D}
-\definecharacter GreekEpsilon {E}
-\definecharacter GreekZeta {Z}
-\definecharacter GreekEta {H}
-\definecharacter GreekTheta {J}
-\definecharacter GreekIota {I}
-\definecharacter GreekKappa {K}
-\definecharacter GreekLamda {L}
-\definecharacter GreekMu {M}
-\definecharacter GreekNu {N}
-\definecharacter GreekXi {X}
-\definecharacter GreekOmicron {O}
-\definecharacter GreekPi {P}
-\definecharacter GreekRho {R}
-\definecharacter GreekSigma {S}
-\definecharacter GreekTau {T}
-\definecharacter GreekUpsilon {U}
-\definecharacter GreekPhi {F}
-\definecharacter GreekChi {Q}
-\definecharacter GreekPsi {Y}
-\definecharacter GreekOmega {W}
-
-%
-% Lowercase Greek letters
-%
-
-\definecharacter Greekalpha {a}
-\definecharacter Greekbeta {b}
-\definecharacter Greekgamma {g}
-\definecharacter Greekdelta {d}
-\definecharacter Greekepsilon {e}
-\definecharacter Greekzeta {z}
-\definecharacter Greeketa {h}
-\definecharacter Greektheta {j}
-\definecharacter Greekiota {i}
-\definecharacter Greekkappa {k}
-\definecharacter Greeklamda {l}
-\definecharacter Greekmu {m}
-\definecharacter Greeknu {n}
-\definecharacter Greekxi {x}
-\definecharacter Greekomicron {o}
-\definecharacter Greekpi {p}
-\definecharacter Greekrho {r}
-\definecharacter Greekfinalsigma {c}
-\definecharacter Greeksigma {s}
-\definecharacter Greektau {t}
-\definecharacter Greekupsilon {u}
-\definecharacter Greekphi {f}
-\definecharacter Greekchi {q}
-\definecharacter Greekpsi {y}
-\definecharacter Greekomega {w}
-
-%
-% Accented Uppercase Greek letters
-%
-
-\definecharacter GreekAlphatonos {'A}
-\definecharacter GreekEpsilontonos {'E}
-\definecharacter GreekEtatonos {'H}
-\definecharacter GreekIotatonos {'I}
-\definecharacter GreekOmicrontonos {'O}
-\definecharacter GreekUpsilontonos {'U}
-\definecharacter GreekOmegatonos {'W}
-\definecharacter GreekIotadialytika {"I}
-\definecharacter GreekUpsilondialytika {"U}
-
-%
-% Accented Lowercase Greek letters
-%
-
-\definecharacter Greekalphatonos {'a}
-\definecharacter Greekepsilontonos {'e}
-\definecharacter Greeketatonos {'h}
-\definecharacter Greekiotatonos {'i}
-\definecharacter Greekomicrontonos {'o}
-\definecharacter Greekupsilontonos {'u}
-\definecharacter Greekomegatonos {'w}
-\definecharacter Greekiotadialytika {"i}
-\definecharacter Greekupsilondialytika {"u}
-\definecharacter Greekiotadialytikatonos {'"i}
-\definecharacter Greekupsilondialytikatonos {'"u}
-
-%
-% Miscellaneous Greek symbols
-%
-
-\definecharacter Greekleftquot {((}
-\definecharacter Greekrightquot {))}
-\definecharacter Greektonos {'}
-\definecharacter Greekdialytikatonos {'"}
-\definecharacter Greekapostrophos {''}
-
-\stopencoding
-
-%%% Note that with the command
-%%% \definecasemap 165 181 165
-%%% character 165 becomes 181 in uppercase and 165 in lowercase
-
\startmapping[iso-8859-7]
-%
% Uppercase Greek letters
-%
-\definecasemap 193 193 225 % GreekAlpha
-\definecasemap 194 194 226 % GreekBeta
-\definecasemap 195 195 227 % GreekGamma
-\definecasemap 196 196 228 % GreekDelta
-\definecasemap 197 197 229 % GreekEpsilon
-\definecasemap 198 198 230 % GreekZeta
-\definecasemap 199 199 213 % GreekEta
-\definecasemap 200 200 232 % GreekTheta
-\definecasemap 201 201 233 % GreekIota
-\definecasemap 202 202 234 % GreekKappa
-\definecasemap 203 203 235 % GreekLamda
-\definecasemap 204 204 236 % GreekMu
-\definecasemap 205 205 237 % GreekNu
-\definecasemap 206 206 238 % GreekXi
-\definecasemap 207 207 239 % GreekOmicron
-\definecasemap 208 208 240 % GreekPi
-\definecasemap 209 209 241 % GreekRho
-\definecasemap 211 211 243 % GreekSigma
-\definecasemap 212 212 244 % GreekTau
-\definecasemap 213 213 245 % GreekUpsilon
-\definecasemap 214 214 246 % GreekPhi
-\definecasemap 215 215 247 % GreekChi
-\definecasemap 216 216 248 % GreekPsi
-\definecasemap 217 217 249 % GreekOmega
+\definecasemap 193 193 225 % greekAlpha
+\definecasemap 194 194 226 % greekBeta
+\definecasemap 195 195 227 % greekGamma
+\definecasemap 196 196 228 % greekDelta
+\definecasemap 197 197 229 % greekEpsilon
+\definecasemap 198 198 230 % greekZeta
+\definecasemap 199 199 213 % greekEta
+\definecasemap 200 200 232 % greekTheta
+\definecasemap 201 201 233 % greekIota
+\definecasemap 202 202 234 % greekKappa
+\definecasemap 203 203 235 % greekLamda
+\definecasemap 204 204 236 % greekMu
+\definecasemap 205 205 237 % greekNu
+\definecasemap 206 206 238 % greekXi
+\definecasemap 207 207 239 % greekOmicron
+\definecasemap 208 208 240 % greekPi
+\definecasemap 209 209 241 % greekRho
+\definecasemap 211 211 243 % greekSigma
+\definecasemap 212 212 244 % greekTau
+\definecasemap 213 213 245 % greekUpsilon
+\definecasemap 214 214 246 % greekPhi
+\definecasemap 215 215 247 % greekChi
+\definecasemap 216 216 248 % greekPsi
+\definecasemap 217 217 249 % greekOmega
-%
% Lowercase Greek letters
-%
-\definecasemap 225 193 225 % Greekalpha
-\definecasemap 226 194 226 % Greekbeta
-\definecasemap 227 195 227 % Greekgamma
-\definecasemap 228 196 228 % Greekdelta
-\definecasemap 229 197 229 % Greekepsilon
-\definecasemap 230 198 230 % Greekzeta
-\definecasemap 213 199 213 % Greeketa
-\definecasemap 232 200 232 % Greektheta
-\definecasemap 233 201 233 % Greekiota
-\definecasemap 234 202 234 % Greekkappa
-\definecasemap 235 203 235 % Greeklamda
-\definecasemap 236 204 236 % Greekmu
-\definecasemap 237 205 237 % Greeknu
-\definecasemap 238 206 238 % Greekxi
-\definecasemap 239 207 239 % Greekomicron
-\definecasemap 240 208 240 % Greekpi
-\definecasemap 241 209 241 % Greekrho
-\definecasemap 242 211 242 % Greekfinalsigma
-\definecasemap 243 211 243 % GreekSigma
-\definecasemap 244 212 244 % GreekTau
-\definecasemap 245 213 245 % GreekUpsilon
-\definecasemap 246 214 246 % GreekPhi
-\definecasemap 247 215 247 % GreekChi
-\definecasemap 248 216 248 % GreekPsi
-\definecasemap 249 217 249 % GreekOmega
+\definecasemap 225 193 225 % greekalpha
+\definecasemap 226 194 226 % greekbeta
+\definecasemap 227 195 227 % greekgamma
+\definecasemap 228 196 228 % greekdelta
+\definecasemap 229 197 229 % greekepsilon
+\definecasemap 230 198 230 % greekzeta
+\definecasemap 213 199 213 % greeketa
+\definecasemap 232 200 232 % greektheta
+\definecasemap 233 201 233 % greekiota
+\definecasemap 234 202 234 % greekkappa
+\definecasemap 235 203 235 % greeklamda
+\definecasemap 236 204 236 % greekmu
+\definecasemap 237 205 237 % greeknu
+\definecasemap 238 206 238 % greekxi
+\definecasemap 239 207 239 % greekomicron
+\definecasemap 240 208 240 % greekpi
+\definecasemap 241 209 241 % greekrho
+\definecasemap 242 211 242 % greekfinalsigma
+\definecasemap 243 211 243 % greekSigma
+\definecasemap 244 212 244 % greekTau
+\definecasemap 245 213 245 % greekUpsilon
+\definecasemap 246 214 246 % greekPhi
+\definecasemap 247 215 247 % greekChi
+\definecasemap 248 216 248 % greekPsi
+\definecasemap 249 217 249 % greekOmega
-%
% Accented Uppercase Greek letters
-%
-\definecasemap 182 193 220 % GreekAlphatonos
-\definecasemap 184 197 221 % GreekEpsilontonos
-\definecasemap 185 199 222 % GreekEtatonos
-\definecasemap 186 201 223 % GreekIotatonos
-\definecasemap 188 207 252 % GreekOmicrontonos
-\definecasemap 190 213 253 % GreekUpsilontonos
-\definecasemap 191 217 254 % GreekOmegatonos
-\definecasemap 218 218 250 % GreekIotadialytika
-\definecasemap 219 219 251 % GreekUpsilondialytika
+\definecasemap 182 193 220 % greekAlphatonos
+\definecasemap 184 197 221 % greekEpsilontonos
+\definecasemap 185 199 222 % greekEtatonos
+\definecasemap 186 201 223 % greekIotatonos
+\definecasemap 188 207 252 % greekOmicrontonos
+\definecasemap 190 213 253 % greekUpsilontonos
+\definecasemap 191 217 254 % greekOmegatonos
+\definecasemap 218 218 250 % greekIotadialytika
+\definecasemap 219 219 251 % greekUpsilondialytika
-%
% Accented Lowercase Greek letters
-%
-
-\definecasemap 220 193 220 % Greekalphatonos
-\definecasemap 221 197 221 % Greekepsilontonos
-\definecasemap 222 199 222 % Greeketatonos
-\definecasemap 223 201 223 % Greekiotatonos
-\definecasemap 252 207 252 % Greekomicrontonos
-\definecasemap 253 213 253 % Greekupsilontonos
-\definecasemap 254 217 254 % Greekomegatonos
-\definecasemap 250 218 250 % Greekiotadialytika
-\definecasemap 251 219 251 % Greekupsilondialytika
-\definecasemap 192 218 192 % Greekiotadialytikatonos
-\definecasemap 224 219 224 % Greekupsilondialytikatonos
+\definecasemap 220 193 220 % greekalphatonos
+\definecasemap 221 197 221 % greekepsilontonos
+\definecasemap 222 199 222 % greeketatonos
+\definecasemap 223 201 223 % greekiotatonos
+\definecasemap 252 207 252 % greekomicrontonos
+\definecasemap 253 213 253 % greekupsilontonos
+\definecasemap 254 217 254 % greekomegatonos
+\definecasemap 250 218 250 % greekiotadialytika
+\definecasemap 251 219 251 % greekupsilondialytika
+\definecasemap 192 218 192 % greekiotadialytikatonos
+\definecasemap 224 219 224 % greekupsilondialytikatonos
-\stopencoding
+\stopencoding
\startencoding[iso-8859-7]
-%
% Uppercase Greek letters
-%
-\definecharacter GreekAlpha 193
-\definecharacter GreekBeta 194
-\definecharacter GreekGamma 195
-\definecharacter GreekDelta 196
-\definecharacter GreekEpsilon 197
-\definecharacter GreekZeta 198
-\definecharacter GreekEta 199
-\definecharacter GreekTheta 200
-\definecharacter GreekIota 201
-\definecharacter GreekKappa 202
-\definecharacter GreekLamda 203
-\definecharacter GreekMu 204
-\definecharacter GreekNu 205
-\definecharacter GreekXi 206
-\definecharacter GreekOmicron 207
-\definecharacter GreekPi 208
-\definecharacter GreekRho 209
-\definecharacter GreekSigma 211
-\definecharacter GreekTau 212
-\definecharacter GreekUpsilon 213
-\definecharacter GreekPhi 214
-\definecharacter GreekChi 215
-\definecharacter GreekPsi 216
-\definecharacter GreekOmega 217
+\definecharacter greekAlpha 193
+\definecharacter greekBeta 194
+\definecharacter greekGamma 195
+\definecharacter greekDelta 196
+\definecharacter greekEpsilon 197
+\definecharacter greekZeta 198
+\definecharacter greekEta 199
+\definecharacter greekTheta 200
+\definecharacter greekIota 201
+\definecharacter greekKappa 202
+\definecharacter greekLamda 203
+\definecharacter greekMu 204
+\definecharacter greekNu 205
+\definecharacter greekXi 206
+\definecharacter greekOmicron 207
+\definecharacter greekPi 208
+\definecharacter greekRho 209
+\definecharacter greekSigma 211
+\definecharacter greekTau 212
+\definecharacter greekUpsilon 213
+\definecharacter greekPhi 214
+\definecharacter greekChi 215
+\definecharacter greekPsi 216
+\definecharacter greekOmega 217
-%
% Lowercase Greek letters
-%
-\definecharacter Greekalpha 225
-\definecharacter Greekbeta 226
-\definecharacter Greekgamma 227
-\definecharacter Greekdelta 228
-\definecharacter Greekepsilon 229
-\definecharacter Greekzeta 230
-\definecharacter Greeketa 231
-\definecharacter Greektheta 232
-\definecharacter Greekiota 233
-\definecharacter Greekkappa 234
-\definecharacter Greeklamda 235
-\definecharacter Greekmu 236
-\definecharacter Greeknu 237
-\definecharacter Greekxi 238
-\definecharacter Greekomicron 239
-\definecharacter Greekpi 240
-\definecharacter Greekrho 241
-\definecharacter Greekfinalsigma 242
-\definecharacter Greeksigma 243
-\definecharacter Greektau 244
-\definecharacter Greekupsilon 245
-\definecharacter Greekphi 246
-\definecharacter Greekchi 247
-\definecharacter Greekpsi 248
-\definecharacter Greekomega 249
+\definecharacter greekalpha 225
+\definecharacter greekbeta 226
+\definecharacter greekgamma 227
+\definecharacter greekdelta 228
+\definecharacter greekepsilon 229
+\definecharacter greekzeta 230
+\definecharacter greeketa 231
+\definecharacter greektheta 232
+\definecharacter greekiota 233
+\definecharacter greekkappa 234
+\definecharacter greeklamda 235
+\definecharacter greekmu 236
+\definecharacter greeknu 237
+\definecharacter greekxi 238
+\definecharacter greekomicron 239
+\definecharacter greekpi 240
+\definecharacter greekrho 241
+\definecharacter greekfinalsigma 242
+\definecharacter greeksigma 243
+\definecharacter greektau 244
+\definecharacter greekupsilon 245
+\definecharacter greekphi 246
+\definecharacter greekchi 247
+\definecharacter greekpsi 248
+\definecharacter greekomega 249
-%
% Accented Uppercase Greek letters
-%
-\definecharacter GreekAlphatonos 182
-\definecharacter GreekEpsilontonos 184
-\definecharacter GreekEtatonos 185
-\definecharacter GreekIotatonos 186
-\definecharacter GreekOmicrontonos 188
-\definecharacter GreekUpsilontonos 190
-\definecharacter GreekOmegatonos 191
-\definecharacter GreekIotadialytika 218
-\definecharacter GreekUpsilondialytika 219
+\definecharacter greekAlphatonos 182
+\definecharacter greekEpsilontonos 184
+\definecharacter greekEtatonos 185
+\definecharacter greekIotatonos 186
+\definecharacter greekOmicrontonos 188
+\definecharacter greekUpsilontonos 190
+\definecharacter greekOmegatonos 191
+\definecharacter greekIotadialytika 218
+\definecharacter greekUpsilondialytika 219
-%
% Accented Lowercase Greek letters
-%
-\definecharacter Greekalphatonos 220
-\definecharacter Greekepsilontonos 221
-\definecharacter Greeketatonos 222
-\definecharacter Greekiotatonos 223
-\definecharacter Greekomicrontonos 252
-\definecharacter Greekupsilontonos 253
-\definecharacter Greekomegatonos 254
-\definecharacter Greekiotadialytika 250
-\definecharacter Greekupsilondialytika 251
-\definecharacter Greekiotadialytikatonos 192
-\definecharacter Greekupsilondialytikatonos 224
+\definecharacter greekalphatonos 220
+\definecharacter greekepsilontonos 221
+\definecharacter greeketatonos 222
+\definecharacter greekiotatonos 223
+\definecharacter greekomicrontonos 252
+\definecharacter greekupsilontonos 253
+\definecharacter greekomegatonos 254
+\definecharacter greekiotadialytika 250
+\definecharacter greekupsilondialytika 251
+\definecharacter greekiotadialytikatonos 192
+\definecharacter greekupsilondialytikatonos 224
-%
% Miscellaneous Greek symbols
-%
-\definecharacter Greekleftquot 171
-\definecharacter Greekrightquot 187
-\definecharacter Greektonos 180
-\definecharacter Greekdialytikatonos 181
-\definecharacter Greekapostrophos 162
+\definecharacter greekleftquot 171
+\definecharacter greekrightquot 187
+\definecharacter greektonos 180
+\definecharacter greekdialytikatonos 181
+\definecharacter greekapostrophos 162
-\stopencoding
+\stopencoding
diff --git a/tex/context/base/enco-heb.tex b/tex/context/base/enco-heb.tex
new file mode 100644
index 000000000..443745752
--- /dev/null
+++ b/tex/context/base/enco-heb.tex
@@ -0,0 +1,16 @@
+%D \module
+%D [ file=enco-heb,
+%D version=2005.01.27,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=Hebrew,
+%D author=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 To be done.
+
+\endinput
diff --git a/tex/context/base/enco-mis.tex b/tex/context/base/enco-mis.tex
index 6c312a804..ceaf32584 100644
--- a/tex/context/base/enco-mis.tex
+++ b/tex/context/base/enco-mis.tex
@@ -201,8 +201,8 @@
\def\_{\ifmmode\mathunderscore\else\textunderscore\fi}
-%D Handy:
-
-\def\missingglyph{\ruledhbox{?}}
+% Handy but obsolete, replaced by \unknownchar:
+%
+% \def\missingglyph{\ruledhbox{?}}
\protect \endinput
diff --git a/tex/context/base/enco-uc.tex b/tex/context/base/enco-uc.tex
index 0d845685b..ffc111799 100644
--- a/tex/context/base/enco-uc.tex
+++ b/tex/context/base/enco-uc.tex
@@ -14,6 +14,8 @@
%D An alternative approach would be to misuse the utf vectors, but they
%D don't carry enough info around.
+% todo : \defineucharacter hebrewAlef 5 "D0
+
\startencoding[uc]
\definecharacter Agrave {\uchar0{192}}
@@ -31,7 +33,7 @@
\definecharacter Iacute {\uchar0{205}}
\definecharacter Icircumflex {\uchar0{206}}
\definecharacter Idiaeresis {\uchar0{207}}
-%\definecharacter Dstroke {\uchar0{208}}
+%\definecharacter Dstroke {\uchar0{208}}
\definecharacter Ntilde {\uchar0{209}}
\definecharacter Ograve {\uchar0{210}}
\definecharacter Oacute {\uchar0{211}}
@@ -63,7 +65,7 @@
\definecharacter iacute {\uchar0{237}}
\definecharacter icircumflex {\uchar0{238}}
\definecharacter idiaeresis {\uchar0{239}}
-%\definecharacter dmacron {\uchar0{240}}
+%\definecharacter dmacron {\uchar0{240}}
\definecharacter ntilde {\uchar0{241}}
\definecharacter ograve {\uchar0{242}}
\definecharacter oacute {\uchar0{243}}
@@ -225,48 +227,40 @@
\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 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}}
@@ -300,81 +294,193 @@
\definecharacter Eth {\uchar0{208}}
\definecharacter eth {\uchar0{240}}
-%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}}
+\stopencoding
+
+%D Vietnamese:
+
+\startencoding[uc]
+
+\definecharacter Ohorn {\uchar1{"A0}}
+\definecharacter ohorn {\uchar1{"A1}}
+\definecharacter Uhorn {\uchar1{"AF}}
+\definecharacter uhorn {\uchar1{"B0}}
+
+\definecharacter Yhook {\uchar{"1E}{"F6}}
+\definecharacter yhook {\uchar{"1E}{"F7}}
+\definecharacter Ydotbelow {\uchar{"1E}{"F4}}
+\definecharacter ydotbelow {\uchar{"1E}{"F5}}
+\definecharacter Ahook {\uchar{"1E}{"A2}}
+\definecharacter Adotbelow {\uchar{"1E}{"A0}}
+\definecharacter Acircumflexgrave {\uchar{"1E}{"A6}}
+\definecharacter Acircumflexacute {\uchar{"1E}{"A4}}
+\definecharacter Acircumflextilde {\uchar{"1E}{"AA}}
+\definecharacter Acircumflexhook {\uchar{"1E}{"A8}}
+\definecharacter Acircumflexdotbelow {\uchar{"1E}{"AC}}
+\definecharacter Abrevegrave {\uchar{"1E}{"B0}}
+\definecharacter Abreveacute {\uchar{"1E}{"AE}}
+\definecharacter Abrevetilde {\uchar{"1E}{"B4}}
+\definecharacter Abrevehook {\uchar{"1E}{"B2}}
+\definecharacter Abrevedotbelow {\uchar{"1E}{"B6}}
+\definecharacter Ehook {\uchar{"1E}{"BA}}
+\definecharacter Edotbelow {\uchar{"1E}{"B8}}
+\definecharacter Ecircumflexgrave {\uchar{"1E}{"C0}}
+\definecharacter Ecircumflexacute {\uchar{"1E}{"BE}}
+\definecharacter Ecircumflextilde {\uchar{"1E}{"C4}}
+\definecharacter Ecircumflexhook {\uchar{"1E}{"C2}}
+\definecharacter Ecircumflexdotbelow {\uchar{"1E}{"C6}}
+\definecharacter Ihook {\uchar{"1E}{"C8}}
+\definecharacter ahook {\uchar{"1E}{"A3}}
+\definecharacter adotbelow {\uchar{"1E}{"A1}}
+\definecharacter acircumflexgrave {\uchar{"1E}{"A7}}
+\definecharacter acircumflexacute {\uchar{"1E}{"A5}}
+\definecharacter acircumflextilde {\uchar{"1E}{"AB}}
+\definecharacter acircumflexhook {\uchar{"1E}{"A9}}
+\definecharacter acircumflexdotbelow {\uchar{"1E}{"AD}}
+\definecharacter abrevegrave {\uchar{"1E}{"B1}}
+\definecharacter abreveacute {\uchar{"1E}{"AF}}
+\definecharacter abrevetilde {\uchar{"1E}{"B5}}
+\definecharacter abrevehook {\uchar{"1E}{"B3}}
+\definecharacter abrevedotbelow {\uchar{"1E}{"B7}}
+\definecharacter ehook {\uchar{"1E}{"BB}}
+\definecharacter edotbelow {\uchar{"1E}{"B9}}
+\definecharacter ecircumflexgrave {\uchar{"1E}{"C1}}
+\definecharacter ecircumflexacute {\uchar{"1E}{"BF}}
+\definecharacter ecircumflextilde {\uchar{"1E}{"C5}}
+\definecharacter ecircumflexhook {\uchar{"1E}{"C3}}
+\definecharacter ecircumflexdotbelow {\uchar{"1E}{"C7}}
+\definecharacter ihook {\uchar{"1E}{"C9}}
+\definecharacter Idotbelow {\uchar{"1E}{"CA}}
+\definecharacter Ohook {\uchar{"1E}{"CE}}
+\definecharacter Odotbelow {\uchar{"1E}{"CC}}
+\definecharacter Ocircumflexgrave {\uchar{"1E}{"D2}}
+\definecharacter Ocircumflexacute {\uchar{"1E}{"D0}}
+\definecharacter Ocircumflextilde {\uchar{"1E}{"D6}}
+\definecharacter Ocircumflexhook {\uchar{"1E}{"D4}}
+\definecharacter Ocircumflexdotbelow {\uchar{"1E}{"D8}}
+\definecharacter Ohorngrave {\uchar{"1E}{"DC}}
+\definecharacter Ohornacute {\uchar{"1E}{"DA}}
+\definecharacter Ohorntilde {\uchar{"1E}{"E0}}
+\definecharacter Ohornhook {\uchar{"1E}{"DE}}
+\definecharacter Ohorndotbelow {\uchar{"1E}{"E2}}
+\definecharacter Uhook {\uchar{"1E}{"E6}}
+\definecharacter Udotbelow {\uchar{"1E}{"E4}}
+\definecharacter Uhorngrave {\uchar{"1E}{"EA}}
+\definecharacter Uhornacute {\uchar{"1E}{"E8}}
+\definecharacter Uhorntilde {\uchar{"1E}{"EE}}
+\definecharacter Uhornhook {\uchar{"1E}{"EC}}
+\definecharacter Uhorndotbelow {\uchar{"1E}{"F0}}
+\definecharacter Ytilde {\uchar{"1E}{"F8}}
+\definecharacter idotbelow {\uchar{"1E}{"CB}}
+\definecharacter ohook {\uchar{"1E}{"CF}}
+\definecharacter odotbelow {\uchar{"1E}{"CD}}
+\definecharacter ocircumflexgrave {\uchar{"1E}{"D3}}
+\definecharacter ocircumflexacute {\uchar{"1E}{"D1}}
+\definecharacter ocircumflextilde {\uchar{"1E}{"D7}}
+\definecharacter ocircumflexhook {\uchar{"1E}{"D5}}
+\definecharacter ocircumflexdotbelow {\uchar{"1E}{"D9}}
+\definecharacter ohorngrave {\uchar{"1E}{"DD}}
+\definecharacter ohornacute {\uchar{"1E}{"DB}}
+\definecharacter ohorntilde {\uchar{"1E}{"E1}}
+\definecharacter ohornhook {\uchar{"1E}{"DF}}
+\definecharacter ohorndotbelow {\uchar{"1E}{"E3}}
+\definecharacter uhook {\uchar{"1E}{"E7}}
+\definecharacter udotbelow {\uchar{"1E}{"E5}}
+\definecharacter uhorngrave {\uchar{"1E}{"EB}}
+\definecharacter uhornacute {\uchar{"1E}{"E9}}
+\definecharacter uhorntilde {\uchar{"1E}{"EF}}
+\definecharacter uhornhook {\uchar{"1E}{"ED}}
+\definecharacter uhorndotbelow {\uchar{"1E}{"F1}}
+\definecharacter ytilde {\uchar{"1E}{"F9}}
+
+\definecharacter Etilde {\uchar{"1E}{"BC}}
+\definecharacter etilde {\uchar{"1E}{"BD}}
+\definecharacter Ygrave {\uchar{"1E}{"F2}}
+\definecharacter ygrave {\uchar{"1E}{"F3}}
+
+\stopencoding
+
+% Greek:
+
+\startencoding[uc]
+
+\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 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 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}}
+
+\stopencoding
+
+% Cyrillic:
+
+\startencoding[uc]
\definecharacter cyrillicA {\uchar4{"10}}
\definecharacter cyrillicB {\uchar4{"11}}
@@ -442,8 +548,6 @@
\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:
@@ -459,149 +563,219 @@
\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:
+%D here are some more, cos I had some spare time: (AL)
\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 cyrillicdje {\uchar4{"52}}
+\definecharacter cyrillictshe {\uchar4{"5B}}
+%definecharacter cyrillicshha 164
+%definecharacter cyrilliczhdsc 165
+\definecharacter cyrilliczdsc {\uchar4{"99}}
+\definecharacter cyrilliclje {\uchar4{"59}}
+\definecharacter cyrillicyi {\uchar4{"57}}
+\definecharacter cyrillicae {\uchar4{"D5}}
+%definecharacter cyrillicndsc 173
+%definecharacter cyrillicng 174
+\definecharacter cyrillicdze {\uchar4{"55}}
+%definecharacter cyrillicotld 176
+\definecharacter cyrillicsdsc {\uchar4{"AB}}
+\definecharacter cyrillicushrt {\uchar4{"5E}}
+%definecharacter cyrillicy 179
+%definecharacter cyrillicyhcrs 180
+%definecharacter cyrillichdsc 181
+\definecharacter cyrillicdzhe {\uchar4{"5F}}
+\definecharacter cyrillicie {\uchar4{"54}}
+\definecharacter cyrillicnje {\uchar4{"5A}}
\definecharacter cyrillicyo {\uchar4{"51}}
-%D Some Vietnamese characters finally:
+\stopencoding
-\definecharacter Ohorn {\uchar1{"A0}}
-\definecharacter ohorn {\uchar1{"A1}}
-\definecharacter Uhorn {\uchar1{"AF}}
-\definecharacter uhorn {\uchar1{"B0}}
+% is there overlap with the above definitions
+
+\definecharacter cyrillicEgrave {\uchar4{"00}}
+\definecharacter cyrillicGJE {\uchar4{"03}}
+\definecharacter cyrillicJE {\uchar4{"08}}
+\definecharacter cyrillicKJE {\uchar4{"0C}}
+\definecharacter cyrillicIgrave {\uchar4{"0D}}
+\definecharacter cyrillicegrave {\uchar4{"50}}
+\definecharacter cyrillicgje {\uchar4{"53}}
+\definecharacter cyrillicje {\uchar4{"58}}
+\definecharacter cyrillickje {\uchar4{"5C}}
+\definecharacter cyrillicigrave {\uchar4{"5D}}
+\definecharacter cyrillicOMEGA {\uchar4{"60}}
+\definecharacter cyrillicomega {\uchar4{"61}}
+\definecharacter cyrillicYAT {\uchar4{"62}}
+\definecharacter cyrillicyat {\uchar4{"63}}
+\definecharacter cyrillicEiotified {\uchar4{"64}}
+\definecharacter cyrilliceiotified {\uchar4{"65}}
+\definecharacter cyrillicLITTLEYUS {\uchar4{"66}}
+\definecharacter cyrilliclittleyus {\uchar4{"67}}
+\definecharacter cyrillicLITTLEYUSiotified {\uchar4{"68}}
+\definecharacter cyrilliclittleyusiotified {\uchar4{"69}}
+\definecharacter cyrillicBIGYUS {\uchar4{"6A}}
+\definecharacter cyrillicbigyus {\uchar4{"6B}}
+\definecharacter cyrillicBIGYUSiotified {\uchar4{"6C}}
+\definecharacter cyrillicbigyusiotified {\uchar4{"6D}}
+\definecharacter cyrillicKSI {\uchar4{"6E}}
+\definecharacter cyrillicksi {\uchar4{"6F}}
+\definecharacter cyrillicPSI {\uchar4{"70}}
+\definecharacter cyrillicpsi {\uchar4{"71}}
+\definecharacter cyrillicFITA {\uchar4{"72}}
+\definecharacter cyrillicfita {\uchar4{"73}}
+\definecharacter cyrillicIZHITSA {\uchar4{"74}}
+\definecharacter cyrillicizhitsa {\uchar4{"75}}
+\definecharacter cyrillicIZHITSAdoublegrave {\uchar4{"76}}
+\definecharacter cyrillicizhitsadoublegrave {\uchar4{"77}}
+\definecharacter cyrillicUK {\uchar4{"78}}
+\definecharacter cyrillicuk {\uchar4{"79}}
+\definecharacter cyrillicOMEGAround {\uchar4{"7A}}
+\definecharacter cyrillicomegaround {\uchar4{"7B}}
+\definecharacter cyrillicOMEGAtitlo {\uchar4{"7C}}
+\definecharacter cyrillicomegatitlo {\uchar4{"7D}}
+\definecharacter cyrillicOT {\uchar4{"7E}}
+\definecharacter cyrillicot {\uchar4{"7F}}
+\definecharacter cyrillicKOPPA {\uchar4{"80}}
+\definecharacter cyrillickoppa {\uchar4{"81}}
+\definecharacter cyrillicTITLO {\uchar4{"83}}
+\definecharacter cyrillicPALATALIZATION {\uchar4{"84}}
+\definecharacter cyrillicDASIAPNEUMATA {\uchar4{"85}}
+\definecharacter cyrillicPSILIPNEUMATA {\uchar4{"86}}
+\definecharacter cyrillicISHRTtail {\uchar4{"8A}}
+\definecharacter cyrillicishrttail {\uchar4{"8B}}
+\definecharacter cyrillicSEMISOFT {\uchar4{"8C}}
+\definecharacter cyrillicsemisoft {\uchar4{"8D}}
+\definecharacter cyrillicERtick {\uchar4{"8E}}
+\definecharacter cyrillicertick {\uchar4{"8F}}
+\definecharacter cyrillicGHEupturn {\uchar4{"90}}
+\definecharacter cyrillicgheupturn {\uchar4{"91}}
+\definecharacter cyrillicGHEstroke {\uchar4{"92}}
+\definecharacter cyrillicghestroke {\uchar4{"93}}
+\definecharacter cyrillicGHEmidhook {\uchar4{"94}}
+\definecharacter cyrillicghemidhook {\uchar4{"95}}
+\definecharacter cyrillicZHEdescender {\uchar4{"96}}
+\definecharacter cyrilliczhedescender {\uchar4{"97}}
+\definecharacter cyrillicZDSC {\uchar4{"98}}
+\definecharacter cyrilliczdsc {\uchar4{"99}}
+\definecharacter cyrillicKADC {\uchar4{"9A}}
+\definecharacter cyrillickadc {\uchar4{"9B}}
+\definecharacter cyrillicKAvertstroke {\uchar4{"9C}}
+\definecharacter cyrillickavertstroke {\uchar4{"9D}}
+\definecharacter cyrillicKAstroke {\uchar4{"9E}}
+\definecharacter cyrillickastroke {\uchar4{"9F}}
+\definecharacter cyrillicKAbashkir {\uchar4{"A0}}
+\definecharacter cyrillickabashkir {\uchar4{"A1}}
+\definecharacter cyrillicENDC {\uchar4{"A2}}
+\definecharacter cyrillicendc {\uchar4{"A3}}
+\definecharacter cyrillicENGHE {\uchar4{"A4}}
+\definecharacter cyrillicenghe {\uchar4{"A5}}
+\definecharacter cyrillicPEmidhook {\uchar4{"A6}}
+\definecharacter cyrillicpemidhook {\uchar4{"A7}}
+\definecharacter cyrillicHA {\uchar4{"A8}}
+\definecharacter cyrillicha {\uchar4{"A9}}
+%\definecharacter cyrillicSDSC {\uchar4{"AA}} already defined
+%\definecharacter cyrilliccdsc {\uchar4{"AB}} already defined
+\definecharacter cyrillicTEDC {\uchar4{"AC}}
+\definecharacter cyrillictedc {\uchar4{"AD}}
+\definecharacter cyrillicYstr {\uchar4{"AE}}
+\definecharacter cyrillicystr {\uchar4{"AF}}
+\definecharacter cyrillicYstrstroke {\uchar4{"B0}}
+\definecharacter cyrillicystrstroke {\uchar4{"B1}}
+\definecharacter cyrillicHADC {\uchar4{"B2}}
+\definecharacter cyrillichadc {\uchar4{"B3}}
+\definecharacter cyrillicTETSE {\uchar4{"B4}}
+\definecharacter cyrillictetse {\uchar4{"B5}}
+\definecharacter cyrillicCHEDC {\uchar4{"B6}}
+\definecharacter cyrillicchedc {\uchar4{"B7}}
+\definecharacter cyrillicCHEvertstroke {\uchar4{"B8}}
+\definecharacter cyrillicchevertstroke {\uchar4{"B9}}
+\definecharacter cyrillicSHHA {\uchar4{"BA}}
+\definecharacter cyrillicshha {\uchar4{"BB}}
+\definecharacter cyrillicCHEabkhasian {\uchar4{"BC}}
+\definecharacter cyrilliccheabkhasian {\uchar4{"BD}}
+\definecharacter cyrillicCHEDCabkhasian {\uchar4{"BE}}
+\definecharacter cyrillicchedcabkhasian {\uchar4{"BF}}
+\definecharacter cyrillicPALOCHKA {\uchar4{"C0}}
+\definecharacter cyrillicZHEbreve {\uchar4{"C1}}
+\definecharacter cyrilliczhebreve {\uchar4{"C2}}
+\definecharacter cyrillicKAhook {\uchar4{"C3}}
+\definecharacter cyrillickahook {\uchar4{"C4}}
+\definecharacter cyrillicELtail {\uchar4{"C5}}
+\definecharacter cyrilliceltail {\uchar4{"C6}}
+\definecharacter cyrillicENhook {\uchar4{"C7}}
+\definecharacter cyrillicenhook {\uchar4{"C8}}
+\definecharacter cyrillicENtail {\uchar4{"C9}}
+\definecharacter cyrillicentail {\uchar4{"CA}}
+\definecharacter cyrillicCHEkhakassian {\uchar4{"CB}}
+\definecharacter cyrillicchekhakassian {\uchar4{"CC}}
+\definecharacter cyrillicEMtail {\uchar4{"CD}}
+\definecharacter cyrillicemtail {\uchar4{"CE}}
+\definecharacter cyrillicAbreve {\uchar4{"D0}}
+\definecharacter cyrillicabreve {\uchar4{"D1}}
+\definecharacter cyrillicAdiaeresis {\uchar4{"D2}}
+\definecharacter cyrillicadiaeresis {\uchar4{"D3}}
+%\definecharacter cyrillicAE {\uchar4{"D4}} already defined
+%\definecharacter cyrillicae {\uchar4{"D5}} already defined
+\definecharacter cyrillicEbreve {\uchar4{"D6}}
+\definecharacter cyrillicebreve {\uchar4{"D7}}
+\definecharacter cyrillicSCHWA {\uchar4{"D8}}
+\definecharacter cyrillicschwa {\uchar4{"D9}}
+\definecharacter cyrillicSCHWAdiaeresis {\uchar4{"DA}}
+\definecharacter cyrillicschwadiaeresis {\uchar4{"DB}}
+\definecharacter cyrillicZHEdiaeresis {\uchar4{"DC}}
+\definecharacter cyrilliczhediaeresis {\uchar4{"DD}}
+\definecharacter cyrillicZEdiaeresis {\uchar4{"DE}}
+\definecharacter cyrilliczediaeresis {\uchar4{"DF}}
+\definecharacter cyrillicDZEabkhasian {\uchar4{"E0}}
+\definecharacter cyrillicdzeabkhasian {\uchar4{"E1}}
+\definecharacter cyrillicImacron {\uchar4{"E2}}
+\definecharacter cyrillicimacron {\uchar4{"E3}}
+\definecharacter cyrillicIdiaeresis {\uchar4{"E4}}
+\definecharacter cyrillicidiaeresis {\uchar4{"E5}}
+\definecharacter cyrillicOdiaeresis {\uchar4{"E6}}
+\definecharacter cyrillicodiaeresis {\uchar4{"E7}}
+\definecharacter cyrillicObarred {\uchar4{"E8}}
+\definecharacter cyrillicobarred {\uchar4{"E9}}
+\definecharacter cyrillicObarreddiaeresis {\uchar4{"EA}}
+\definecharacter cyrillicobarreddiaeresis {\uchar4{"EB}}
+\definecharacter cyrillicEdiaeresis {\uchar4{"EC}}
+\definecharacter cyrillicediaeresis {\uchar4{"ED}}
+\definecharacter cyrillicUmacron {\uchar4{"EE}}
+\definecharacter cyrillicumacron {\uchar4{"EF}}
+\definecharacter cyrillicUdiaeresis {\uchar4{"F0}}
+\definecharacter cyrillicudiaeresis {\uchar4{"F1}}
+\definecharacter cyrillicUdoubleacute {\uchar4{"F2}}
+\definecharacter cyrillicudoubleacute {\uchar4{"F3}}
+\definecharacter cyrillicCHEdiaeresis {\uchar4{"F4}}
+\definecharacter cyrillicchediaeresis {\uchar4{"F5}}
+\definecharacter cyrillicYERUdiaeresis {\uchar4{"F8}}
+\definecharacter cyrillicyerudiaeresis {\uchar4{"F9}}
+
+% Hebrew:
-\definecharacter Yhook {\uchar{"1E}{"F6}}
-\definecharacter yhook {\uchar{"1E}{"F7}}
-\definecharacter Ydotbelow {\uchar{"1E}{"F4}}
-\definecharacter ydotbelow {\uchar{"1E}{"F5}}
-\definecharacter Ahook {\uchar{"1E}{"A2}}
-\definecharacter Adotbelow {\uchar{"1E}{"A0}}
-\definecharacter Acircumflexgrave {\uchar{"1E}{"A6}}
-\definecharacter Acircumflexacute {\uchar{"1E}{"A4}}
-\definecharacter Acircumflextilde {\uchar{"1E}{"AA}}
-\definecharacter Acircumflexhook {\uchar{"1E}{"A8}}
-\definecharacter Acircumflexdotbelow {\uchar{"1E}{"AC}}
-\definecharacter Abrevegrave {\uchar{"1E}{"B0}}
-\definecharacter Abreveacute {\uchar{"1E}{"AE}}
-\definecharacter Abrevetilde {\uchar{"1E}{"B4}}
-\definecharacter Abrevehook {\uchar{"1E}{"B2}}
-\definecharacter Abrevedotbelow {\uchar{"1E}{"B6}}
-\definecharacter Ehook {\uchar{"1E}{"BA}}
-\definecharacter Edotbelow {\uchar{"1E}{"B8}}
-\definecharacter Ecircumflexgrave {\uchar{"1E}{"C0}}
-\definecharacter Ecircumflexacute {\uchar{"1E}{"BE}}
-\definecharacter Ecircumflextilde {\uchar{"1E}{"C4}}
-\definecharacter Ecircumflexhook {\uchar{"1E}{"C2}}
-\definecharacter Ecircumflexdotbelow {\uchar{"1E}{"C6}}
-\definecharacter Ihook {\uchar{"1E}{"C8}}
-\definecharacter ahook {\uchar{"1E}{"A3}}
-\definecharacter adotbelow {\uchar{"1E}{"A1}}
-\definecharacter acircumflexgrave {\uchar{"1E}{"A7}}
-\definecharacter acircumflexacute {\uchar{"1E}{"A5}}
-\definecharacter acircumflextilde {\uchar{"1E}{"AB}}
-\definecharacter acircumflexhook {\uchar{"1E}{"A9}}
-\definecharacter acircumflexdotbelow {\uchar{"1E}{"AD}}
-\definecharacter abrevegrave {\uchar{"1E}{"B1}}
-\definecharacter abreveacute {\uchar{"1E}{"AF}}
-\definecharacter abrevetilde {\uchar{"1E}{"B5}}
-\definecharacter abrevehook {\uchar{"1E}{"B3}}
-\definecharacter abrevedotbelow {\uchar{"1E}{"B7}}
-\definecharacter ehook {\uchar{"1E}{"BB}}
-\definecharacter edotbelow {\uchar{"1E}{"B9}}
-\definecharacter ecircumflexgrave {\uchar{"1E}{"C1}}
-\definecharacter ecircumflexacute {\uchar{"1E}{"BF}}
-\definecharacter ecircumflextilde {\uchar{"1E}{"C5}}
-\definecharacter ecircumflexhook {\uchar{"1E}{"C3}}
-\definecharacter ecircumflexdotbelow {\uchar{"1E}{"C7}}
-\definecharacter ihook {\uchar{"1E}{"C9}}
-\definecharacter Idotbelow {\uchar{"1E}{"CA}}
-\definecharacter Ohook {\uchar{"1E}{"CE}}
-\definecharacter Odotbelow {\uchar{"1E}{"CC}}
-\definecharacter Ocircumflexgrave {\uchar{"1E}{"D2}}
-\definecharacter Ocircumflexacute {\uchar{"1E}{"D0}}
-\definecharacter Ocircumflextilde {\uchar{"1E}{"D6}}
-\definecharacter Ocircumflexhook {\uchar{"1E}{"D4}}
-\definecharacter Ocircumflexdotbelow {\uchar{"1E}{"D8}}
-\definecharacter Ohorngrave {\uchar{"1E}{"DC}}
-\definecharacter Ohornacute {\uchar{"1E}{"DA}}
-\definecharacter Ohorntilde {\uchar{"1E}{"E0}}
-\definecharacter Ohornhook {\uchar{"1E}{"DE}}
-\definecharacter Ohorndotbelow {\uchar{"1E}{"E2}}
-\definecharacter Uhook {\uchar{"1E}{"E6}}
-\definecharacter Udotbelow {\uchar{"1E}{"E4}}
-\definecharacter Uhorngrave {\uchar{"1E}{"EA}}
-\definecharacter Uhornacute {\uchar{"1E}{"E8}}
-\definecharacter Uhorntilde {\uchar{"1E}{"EE}}
-\definecharacter Uhornhook {\uchar{"1E}{"EC}}
-\definecharacter Uhorndotbelow {\uchar{"1E}{"F0}}
-\definecharacter Ytilde {\uchar{"1E}{"F8}}
-\definecharacter idotbelow {\uchar{"1E}{"CB}}
-\definecharacter ohook {\uchar{"1E}{"CF}}
-\definecharacter odotbelow {\uchar{"1E}{"CD}}
-\definecharacter ocircumflexgrave {\uchar{"1E}{"D3}}
-\definecharacter ocircumflexacute {\uchar{"1E}{"D1}}
-\definecharacter ocircumflextilde {\uchar{"1E}{"D7}}
-\definecharacter ocircumflexhook {\uchar{"1E}{"D5}}
-\definecharacter ocircumflexdotbelow {\uchar{"1E}{"D9}}
-\definecharacter ohorngrave {\uchar{"1E}{"DD}}
-\definecharacter ohornacute {\uchar{"1E}{"DB}}
-\definecharacter ohorntilde {\uchar{"1E}{"E1}}
-\definecharacter ohornhook {\uchar{"1E}{"DF}}
-\definecharacter ohorndotbelow {\uchar{"1E}{"E3}}
-\definecharacter uhook {\uchar{"1E}{"E7}}
-\definecharacter udotbelow {\uchar{"1E}{"E5}}
-\definecharacter uhorngrave {\uchar{"1E}{"EB}}
-\definecharacter uhornacute {\uchar{"1E}{"E9}}
-\definecharacter uhorntilde {\uchar{"1E}{"EF}}
-\definecharacter uhornhook {\uchar{"1E}{"ED}}
-\definecharacter uhorndotbelow {\uchar{"1E}{"F1}}
-\definecharacter ytilde {\uchar{"1E}{"F9}}
+\startencoding[uc]
-\definecharacter Etilde {\uchar{"1E}{"BC}}
-\definecharacter etilde {\uchar{"1E}{"BD}}
-\definecharacter Ygrave {\uchar{"1E}{"F2}}
-\definecharacter ygrave {\uchar{"1E}{"F3}}
+\definecharacter hebrewAlef {\uchar5{"D0}} % 05D0 \definecharacter hebrewBet {\uchar5{"D1}} \definecharacter hebrewGimel {\uchar5{"D2}} \definecharacter hebrewDalet {\uchar5{"D3}} \definecharacter hebrewHe {\uchar5{"D4}} \definecharacter hebrewVav {\uchar5{"D5}} \definecharacter hebrewZayin {\uchar5{"D6}} \definecharacter hebrewHet {\uchar5{"D7}} \definecharacter hebrewTet {\uchar5{"D8}} \definecharacter hebrewYod {\uchar5{"D9}} \definecharacter hebrewKaffinal {\uchar5{"DA}} \definecharacter hebrewKaf {\uchar5{"DB}} \definecharacter hebrewLamed {\uchar5{"DC}} \definecharacter hebrewMemfinal {\uchar5{"DD}} \definecharacter hebrewMem {\uchar5{"DE}} \definecharacter hebrewNunfinal {\uchar5{"DF}} \definecharacter hebrewNun {\uchar5{"E0}} \definecharacter hebrewSamekh {\uchar5{"E1}} \definecharacter hebrewAyin {\uchar5{"E2}} \definecharacter hebrewPefinal {\uchar5{"E3}} \definecharacter hebrewPe {\uchar5{"E4}} \definecharacter hebrewTsadifinal {\uchar5{"E5}} \definecharacter hebrewTsadi {\uchar5{"E6}} \definecharacter hebrewQof {\uchar5{"E7}} \definecharacter hebrewResh {\uchar5{"E8}} \definecharacter hebrewShin {\uchar5{"E9}} \definecharacter hebrewTav {\uchar5{"EA}} % 05EA
\stopencoding
diff --git a/tex/context/base/enco-vna.tex b/tex/context/base/enco-vna.tex
index aac129119..05753f37b 100644
--- a/tex/context/base/enco-vna.tex
+++ b/tex/context/base/enco-vna.tex
@@ -12,134 +12,133 @@
%C details.
%D This module is originally derived from the some files Han The Thanh
-%D prepared for \LATEX. The dual accent support is still
-%D preliminary, but works ok. It's now adapted to named
-%D glyphs, and is activated by \type {\useencoding[thisfile]}.
+%D prepared for \LATEX. The dual accent support is still preliminary,
+%D but works ok. It's now adapted to named glyphs, and is activated by
+%D \type {\useencoding[thisfile]}.
-% numbers are from original x5 encoding, and may not match with
-% the newer t5 encoding
+%D This was apparently buggy from the start: there is nothing to
+%D disambiguate \type {\ohorn} from \type {\ohook}. Both are entered
+%D with \type {\h{o}} (AL)!
-%D This was apparently buggy from the start: there is nothing
-%D to disambiguate \type{\ohorn} from \type{\ohook}. Both are
-%D entered with \type{\h{o}}!
+%D Once stable, this code will move to \type {enco-acc.tex}.
\startencoding[default]
-\defineaccent h A {\Ahook} % 131
-\defineaccent d A {\Adotbelow} % 132
-\defineaccent ` ^A {\Acircumflexgrave} % 134
-\defineaccent ' ^A {\Acircumflexacute} % 135
-\defineaccent ~ ^A {\Acircumflextilde} % 136
-\defineaccent h ^A {\Acircumflexhook} % 137
-\defineaccent d ^A {\Acircumflexdotbelow} % 138
-\defineaccent ` uA {\Abrevegrave} % 140
-\defineaccent ' uA {\Abreveacute} % 141
-\defineaccent ~ uA {\Abrevetilde} % 142
-\defineaccent h uA {\Abrevehook} % 143
-\defineaccent d uA {\Abrevedotbelow} % 144
-\defineaccent h E {\Ehook} % 148
-\defineaccent d E {\Edotbelow} % 149
-\defineaccent ` ^E {\Ecircumflexgrave} % 151
-\defineaccent ' ^E {\Ecircumflexacute} % 152
-\defineaccent ~ ^E {\Ecircumflextilde} % 153
-\defineaccent h ^E {\Ecircumflexhook} % 154
-\defineaccent d ^E {\Ecircumflexdotbelow} % 155
-\defineaccent h I {\Ihook} % 159
-\defineaccent d I {\Idotbelow} % 192
-\defineaccent h O {\Ohook} % 196
-\defineaccent d O {\Odotbelow} % 197
-\defineaccent ` ^O {\Ocircumflexgrave} % 199
-\defineaccent ' ^O {\Ocircumflexacute} % 200
-\defineaccent ~ ^O {\Ocircumflextilde} % 201
-\defineaccent h ^O {\Ocircumflexhook} % 202
-\defineaccent d ^O {\Ocircumflexdotbelow} % 203
+\defineaccent h A {\Ahook}
+\defineaccent d A {\Adotbelow}
+\defineaccent ` ^A {\Acircumflexgrave}
+\defineaccent ' ^A {\Acircumflexacute}
+\defineaccent ~ ^A {\Acircumflextilde}
+\defineaccent h ^A {\Acircumflexhook}
+\defineaccent d ^A {\Acircumflexdotbelow}
+\defineaccent ` uA {\Abrevegrave}
+\defineaccent ' uA {\Abreveacute}
+\defineaccent ~ uA {\Abrevetilde}
+\defineaccent h uA {\Abrevehook}
+\defineaccent d uA {\Abrevedotbelow}
+\defineaccent h E {\Ehook}
+\defineaccent d E {\Edotbelow}
+\defineaccent ` ^E {\Ecircumflexgrave}
+\defineaccent ' ^E {\Ecircumflexacute}
+\defineaccent ~ ^E {\Ecircumflextilde}
+\defineaccent h ^E {\Ecircumflexhook}
+\defineaccent d ^E {\Ecircumflexdotbelow}
+\defineaccent h I {\Ihook}
+\defineaccent d I {\Idotbelow}
+\defineaccent h O {\Ohook}
+\defineaccent d O {\Odotbelow}
+\defineaccent ` ^O {\Ocircumflexgrave}
+\defineaccent ' ^O {\Ocircumflexacute}
+\defineaccent ~ ^O {\Ocircumflextilde}
+\defineaccent h ^O {\Ocircumflexhook}
+\defineaccent d ^O {\Ocircumflexdotbelow}
%defineaccent h O {\Ohorn} % !!! conflict with \Ohook!
-\defineaccent ` hO {\Ohorngrave} % 205
-\defineaccent ` {\Ohorn} {\Ohorngrave} % 205
-\defineaccent ' hO {\Ohornacute} % 206
-\defineaccent ' {\Ohorn} {\Ohornacute} % 206
-\defineaccent ~ hO {\Ohorntilde} % 207
-\defineaccent ~ {\Ohorn} {\Ohorntilde} % 207
-\defineaccent h hO {\Ohornhook} % 208
-\defineaccent h {\Ohorn} {\Ohornhook} % 208
-\defineaccent d hO {\Ohorndotbelow} % 209
-\defineaccent d {\Ohorn} {\Ohorndotbelow} % 209
-\defineaccent h U {\Uhook} % 213
-\defineaccent d U {\Udotbelow} % 214
+\defineaccent ` hO {\Ohorngrave}
+\defineaccent ` {\Ohorn} {\Ohorngrave}
+\defineaccent ' hO {\Ohornacute}
+\defineaccent ' {\Ohorn} {\Ohornacute}
+\defineaccent ~ hO {\Ohorntilde}
+\defineaccent ~ {\Ohorn} {\Ohorntilde}
+\defineaccent h hO {\Ohornhook}
+\defineaccent h {\Ohorn} {\Ohornhook}
+\defineaccent d hO {\Ohorndotbelow}
+\defineaccent d {\Ohorn} {\Ohorndotbelow}
+\defineaccent h U {\Uhook}
+\defineaccent d U {\Udotbelow}
%defineaccent h U {\Uhorn} % !!! conflict with \Uhook! honestly, people!
-\defineaccent ` hU {\Uhorngrave} % 216
-\defineaccent ` {\Uhorn} {\Uhorngrave} % 216
-\defineaccent ' hU {\Uhornacute} % 217
-\defineaccent ' {\Uhorn} {\Uhornacute} % 217
-\defineaccent ~ hU {\Uhorntilde} % 218
-\defineaccent ~ {\Uhorn} {\Uhorntilde} % 218
-\defineaccent h hU {\Uhornhook} % 219
-\defineaccent h {\Uhorn} {\Uhornhook} % 219
-\defineaccent d hU {\Uhorndotbelow} % 220
-\defineaccent d {\Uhorn} {\Uhorndotbelow} % 220
-\defineaccent ` Y {\Ygrave} % 221
-\defineaccent ' Y {\Yacute} % 222
-\defineaccent ~ Y {\Ytilde} % 223
-\defineaccent h Y {\Yhook} % 26
-\defineaccent d Y {\Ydotbelow} % 28
-\defineaccent h a {\ahook} % 163
-\defineaccent d a {\adotbelow} % 164
-\defineaccent ` ^a {\acircumflexgrave} % 166
-\defineaccent ' ^a {\acircumflexacute} % 167
-\defineaccent ~ ^a {\acircumflextilde} % 168
-\defineaccent h ^a {\acircumflexhook} % 169
-\defineaccent d ^a {\acircumflexdotbelow} % 170
-\defineaccent ` ua {\abrevegrave} % 172
-\defineaccent ' ua {\abreveacute} % 173
-\defineaccent ~ ua {\abrevetilde} % 174
-\defineaccent h ua {\abrevehook} % 175
-\defineaccent d ua {\abrevedotbelow} % 176
-\defineaccent h e {\ehook} % 180
-\defineaccent d e {\edotbelow} % 181
-\defineaccent ` ^e {\ecircumflexgrave} % 183
-\defineaccent ' ^e {\ecircumflexacute} % 184
-\defineaccent ~ ^e {\ecircumflextilde} % 185
-\defineaccent h ^e {\ecircumflexhook} % 186
-\defineaccent d ^e {\ecircumflexdotbelow} % 187
-\defineaccent h i {\ihook} % 191
-\defineaccent d i {\idotbelow} % 224
-\defineaccent h o {\ohook} % 228
-\defineaccent d o {\odotbelow} % 229
-\defineaccent ^ o {\ocircumflex} % 230
-\defineaccent ` ^o {\ocircumflexgrave} % 231
-\defineaccent ' ^o {\ocircumflexacute} % 232
-\defineaccent ~ ^o {\ocircumflextilde} % 233
-\defineaccent h ^o {\ocircumflexhook} % 234
-\defineaccent d ^o {\ocircumflexdotbelow} % 235
+\defineaccent ` hU {\Uhorngrave}
+\defineaccent ` {\Uhorn} {\Uhorngrave}
+\defineaccent ' hU {\Uhornacute}
+\defineaccent ' {\Uhorn} {\Uhornacute}
+\defineaccent ~ hU {\Uhorntilde}
+\defineaccent ~ {\Uhorn} {\Uhorntilde}
+\defineaccent h hU {\Uhornhook}
+\defineaccent h {\Uhorn} {\Uhornhook}
+\defineaccent d hU {\Uhorndotbelow}
+\defineaccent d {\Uhorn} {\Uhorndotbelow}
+\defineaccent ` Y {\Ygrave}
+\defineaccent ' Y {\Yacute}
+\defineaccent ~ Y {\Ytilde}
+\defineaccent h Y {\Yhook}
+\defineaccent d Y {\Ydotbelow}
+\defineaccent h a {\ahook}
+\defineaccent d a {\adotbelow}
+\defineaccent ` ^a {\acircumflexgrave}
+\defineaccent ' ^a {\acircumflexacute}
+\defineaccent ~ ^a {\acircumflextilde}
+\defineaccent h ^a {\acircumflexhook}
+\defineaccent d ^a {\acircumflexdotbelow}
+\defineaccent ` ua {\abrevegrave}
+\defineaccent ' ua {\abreveacute}
+\defineaccent ~ ua {\abrevetilde}
+\defineaccent h ua {\abrevehook}
+\defineaccent d ua {\abrevedotbelow}
+\defineaccent h e {\ehook}
+\defineaccent d e {\edotbelow}
+\defineaccent ` ^e {\ecircumflexgrave}
+\defineaccent ' ^e {\ecircumflexacute}
+\defineaccent ~ ^e {\ecircumflextilde}
+\defineaccent h ^e {\ecircumflexhook}
+\defineaccent d ^e {\ecircumflexdotbelow}
+\defineaccent h i {\ihook}
+\defineaccent d i {\idotbelow}
+\defineaccent h o {\ohook}
+\defineaccent d o {\odotbelow}
+\defineaccent ^ o {\ocircumflex}
+\defineaccent ` ^o {\ocircumflexgrave}
+\defineaccent ' ^o {\ocircumflexacute}
+\defineaccent ~ ^o {\ocircumflextilde}
+\defineaccent h ^o {\ocircumflexhook}
+\defineaccent d ^o {\ocircumflexdotbelow}
%defineaccent h o {\ohorn} % !!!
-\defineaccent ` ho {\ohorngrave} % 237
-\defineaccent ' ho {\ohornacute} % 238
-\defineaccent ~ ho {\ohorntilde} % 239
-\defineaccent h ho {\ohornhook} % 240
-\defineaccent d ho {\ohorndotbelow} % 241
-\defineaccent ` {\ohorn} {\ohorngrave} % 237
-\defineaccent ' {\ohorn} {\ohornacute} % 238
-\defineaccent ~ {\ohorn} {\ohorntilde} % 239
-\defineaccent h {\ohorn} {\ohornhook} % 240
-\defineaccent d {\ohorn} {\ohorndotbelow} % 241
-\defineaccent h u {\uhook} % 245
-\defineaccent d u {\udotbelow} % 246
+\defineaccent ` ho {\ohorngrave}
+\defineaccent ' ho {\ohornacute}
+\defineaccent ~ ho {\ohorntilde}
+\defineaccent h ho {\ohornhook}
+\defineaccent d ho {\ohorndotbelow}
+\defineaccent ` {\ohorn} {\ohorngrave}
+\defineaccent ' {\ohorn} {\ohornacute}
+\defineaccent ~ {\ohorn} {\ohorntilde}
+\defineaccent h {\ohorn} {\ohornhook}
+\defineaccent d {\ohorn} {\ohorndotbelow}
+\defineaccent h u {\uhook}
+\defineaccent d u {\udotbelow}
%defineaccent h u {\uhorn} % !!!
-\defineaccent ` hu {\uhorngrave} % 248
-\defineaccent ' hu {\uhornacute} % 249
-\defineaccent ~ hu {\uhorntilde} % 250
-\defineaccent h hu {\uhornhook} % 251
-\defineaccent d hu {\uhorndotbelow} % 252
-\defineaccent ` {\uhorn} {\uhorngrave} % 248
-\defineaccent ' {\uhorn} {\uhornacute} % 249
-\defineaccent ~ {\uhorn} {\uhorntilde} % 250
-\defineaccent h {\uhorn} {\uhornhook} % 251
-\defineaccent d {\uhorn} {\uhorndotbelow} % 252
-\defineaccent ` y {\ygrave} % 253
-\defineaccent ' y {\yacute} % 254
-\defineaccent ~ y {\ytilde} % 255
-\defineaccent h y {\yhook} % 27
-\defineaccent d y {\ydotbelow} % 29
+\defineaccent ` hu {\uhorngrave}
+\defineaccent ' hu {\uhornacute}
+\defineaccent ~ hu {\uhorntilde}
+\defineaccent h hu {\uhornhook}
+\defineaccent d hu {\uhorndotbelow}
+\defineaccent ` {\uhorn} {\uhorngrave}
+\defineaccent ' {\uhorn} {\uhornacute}
+\defineaccent ~ {\uhorn} {\uhorntilde}
+\defineaccent h {\uhorn} {\uhornhook}
+\defineaccent d {\uhorn} {\uhorndotbelow}
+\defineaccent ` y {\ygrave}
+\defineaccent ' y {\yacute}
+\defineaccent ~ y {\ytilde}
+\defineaccent h y {\yhook}
+\defineaccent d y {\ydotbelow}
\stopencoding
diff --git a/tex/context/base/java-ini.tex b/tex/context/base/java-ini.tex
index e3fd4a115..09c6cb5cd 100644
--- a/tex/context/base/java-ini.tex
+++ b/tex/context/base/java-ini.tex
@@ -350,12 +350,33 @@
%D This command may be used more that once, but always before
%D the first page is shipped out.
-\newif\ifoneJSpreamble \oneJSpreambletrue
+\newif\ifoneJSpreamble \oneJSpreamblefalse
-\let\allJSpreambles=\empty
+\let\allJSpreambles\empty
\newcounter\nofJSpreambles
\newcounter\currentJSpreamble
+% \long\def\startJSpreamble#1 #2 %
+% {\bgroup % we need to restore the catcodes
+% \popendofline % just in case it happens while reading lists
+% \doifelse{#2}{used}
+% {\dostartJSpreamble#1 }
+% {\dostartJSpreamble#1 now #2 }}
+%
+% \long\def\dostartJSpreamble#1 #2 #3\stopJSpreamble
+% {\processaction
+% [#2]
+% [ later=>\chardef\JSstatus\zerocount,%
+% now=>\chardef\JSstatus\plusone ,%
+% \s!default=>\chardef\JSstatus\plustwo ,%
+% \s!unknown=>\chardef\JSstatus\plustwo ]%
+% \presetJSfunctions #3function ()\end
+% \long\setgvalue{\r!java\r!java#1}{#3}%
+% \ifcase\JSstatus \else
+% \useJSpreamblenow{#1}%
+% \fi
+% \egroup}
+
\long\def\startJSpreamble#1 #2 %
{\bgroup % we need to restore the catcodes
\popendofline % just in case it happens while reading lists
@@ -363,15 +384,22 @@
{\dostartJSpreamble#1 }
{\dostartJSpreamble#1 now #2 }}
-\long\def\dostartJSpreamble#1 #2 #3\stopJSpreamble
+\long\def\dostartJSpreamble#1 #2 %
{\processaction
[#2]
[ later=>\chardef\JSstatus\zerocount,%
now=>\chardef\JSstatus\plusone ,%
\s!default=>\chardef\JSstatus\plustwo ,%
\s!unknown=>\chardef\JSstatus\plustwo ]%
- \presetJSfunctions #3function ()\end
- \long\setgvalue{\r!java\r!java#1}{#3}%
+ \ifaddJSlinebreaks
+ \obeylines \let\obeyedline \normalpar
+ \obeyspaces \let\obeyedspace\normalspace
+ \fi
+ \dodostartJSpreamble{#1}}
+
+\long\def\dodostartJSpreamble#1#2\stopJSpreamble
+ {\presetJSfunctions #2function ()\end
+ \long\setgvalue{\r!java\r!java#1}{#2}%
\ifcase\JSstatus \else
\useJSpreamblenow{#1}%
\fi
@@ -411,8 +439,15 @@
%D functions. This means that we can call them directly as
%D well as indirectly when defined by \type {\startJScode} etc.
-\long\def\presetJSfunctions#1function #2(#3)%
- {\doifelsenothing{#2}
+% \long\def\presetJSfunctions#1function #2(#3)%
+% {\doifelsenothing{#2}
+% {\long\def\presetJSfunctions##1\end{}}
+% {\stripspaces\from#2\to\ascii
+% \doifundefined{\r!java\ascii}{\setgvalue{\r!java\ascii}{\do{}{!}}}}%
+% \presetJSfunctions}
+
+\long\def\presetJSfunctions#1function#2(#3)%
+ {\doifelse{#2}\space
{\long\def\presetJSfunctions##1\end{}}
{\stripspaces\from#2\to\ascii
\doifundefined{\r!java\ascii}{\setgvalue{\r!java\ascii}{\do{}{!}}}}%
@@ -516,10 +551,10 @@
%D \type{TEX}. When followed by a space, this keyword is
%D ignored, that is, filtered from the stream. Now we have:
-\chardef\JSisTEX =0
-\chardef\JScomment=0
+\chardef\JSisTEX \zerocount
+\chardef\JScomment\zerocount
-\newif\ifaddJSlinebreaks
+\newif\ifaddJSlinebreaks \addJSlinebreakstrue
\def\flushJSisTEX
{\ifcase\JSisTEX
@@ -529,36 +564,102 @@
\fi
\chardef\JSisTEX\zerocount}
+% \def\doJSlinebreak
+% {\ifaddJSlinebreaks
+% \aftergroup\string\aftergroup\n%
+% \fi}
+%
+% \def\dodoPSsanitizeJScode#1% % input stack>500 & TEX check
+% {\if#1/%
+% \ifnum\JScomment=0
+% \chardef\JScomment\plusone
+% \else\ifnum\JScomment=1
+% \chardef\JScomment\plustwo
+% \fi\fi
+% \else
+% \ifnum\JScomment=1
+% \aftergroup/%
+% \chardef\JScomment\zerocount
+% \fi
+% \ifnum\JScomment=2
+% \if#1\delcharacter
+% \chardef\JScomment\zerocount
+% \fi
+% \else
+% \if#1\delcharacter
+% \flushJSisTEX\doJSlinebreak
+% \else\if#1(%
+% \flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
+% \else\if#1)%
+% \flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
+% \else\if#1;%
+% \flushJSisTEX\aftergroup;\doJSlinebreak
+% \else\if#1T%
+% \ifnum\JSisTEX=0 \chardef\JSisTEX\plusone \else\flushJSisTEX\aftergroup T\fi
+% \else\if#1E%
+% \ifnum\JSisTEX=1 \chardef\JSisTEX\plustwo \else\flushJSisTEX\aftergroup E\fi
+% \else\if#1X%
+% \ifnum\JSisTEX=2 \chardef\JSisTEX\plusthree \else\flushJSisTEX\aftergroup X\fi
+% \else\if#1\normalspace
+% \ifnum\JSisTEX=3 \chardef\JSisTEX\zerocount \else\flushJSisTEX\aftergroup#1\fi
+% \else
+% \flushJSisTEX\aftergroup\string\expandafter\aftergroup#1%
+% \fi\fi\fi\fi\fi\fi\fi\fi
+% \fi
+% \fi
+% \dododoPSsanitizeJScode}
+
+% todo: "http:\\" -> simple. maar wel \" afvangen
+%
+% use new pdftex escape mechanism or make fully expandable version, not used that often btw
+
+\chardef\JSstring\zerocount
+
\def\doJSlinebreak
- {\ifaddJSlinebreaks
+ {\chardef\JScomment\zerocount
+ \chardef\JSstring\zerocount
+ \ifaddJSlinebreaks
\aftergroup\string\aftergroup\n%
\fi}
\def\dodoPSsanitizeJScode#1% % input stack>500 & TEX check
{\if#1/%
- \ifnum\JScomment=0
- \chardef\JScomment\plusone
- \else\ifnum\JScomment=1
- \chardef\JScomment\plustwo
- \fi\fi
+ \ifnum\JSstring=0
+ \ifnum\JScomment=0
+ \chardef\JScomment\plusone
+ \else\ifnum\JScomment=1
+ \chardef\JScomment\plustwo
+ \fi\fi
+ \else
+ \aftergroup/%
+ \fi
\else
\ifnum\JScomment=1
\aftergroup/%
\chardef\JScomment\zerocount
\fi
+ % is the delchar trick still needed?
\ifnum\JScomment=2
- \if#1\delcharacter
- \chardef\JScomment\zerocount
- \fi
+ \ifnum`#1=13 % brrr
+ \doJSlinebreak
+ \else\if#1\par
+ \doJSlinebreak
+ \else\if#1\delcharacter
+ \doJSlinebreak
+ \fi\fi\fi
\else
- \if#1\delcharacter
+ \ifnum`#1=13 % brrr
+ \flushJSisTEX\doJSlinebreak
+ \else\if#1\par
+ \flushJSisTEX\doJSlinebreak
+ \else\if#1\delcharacter
\flushJSisTEX\doJSlinebreak
\else\if#1(%
\flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
\else\if#1)%
\flushJSisTEX\aftergroup\string\expandafter\aftergroup\csname#1\endcsname
- \else\if#1;%
- \flushJSisTEX\aftergroup;\doJSlinebreak
+ %\else\if#1;%
+ % \flushJSisTEX\aftergroup;\doJSlinebreak
\else\if#1T%
\ifnum\JSisTEX=0 \chardef\JSisTEX\plusone \else\flushJSisTEX\aftergroup T\fi
\else\if#1E%
@@ -568,8 +669,16 @@
\else\if#1\normalspace
\ifnum\JSisTEX=3 \chardef\JSisTEX\zerocount \else\flushJSisTEX\aftergroup#1\fi
\else
+ % todo: "test\"test"
+ \if#1"%
+ \ifcase\JSstring
+ \chardef\JSstring\plusone
+ \else
+ \chardef\JSstring\zerocount
+ \fi
+ \fi
\flushJSisTEX\aftergroup\string\expandafter\aftergroup#1%
- \fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi % \fi
\fi
\fi
\dododoPSsanitizeJScode}
diff --git a/tex/context/base/lang-grk.tex b/tex/context/base/lang-grk.tex
index fe968be17..6dc38b1d6 100644
--- a/tex/context/base/lang-grk.tex
+++ b/tex/context/base/lang-grk.tex
@@ -25,62 +25,62 @@
\c!rightsentence=---,
\c!leftsubsentence=---,
\c!rightsubsentence=---,
- \c!leftquote=\Greekleftquot,
- \c!rightquote=\Greekrightquot,
- \c!leftquotation=\Greekleftquot,
- \c!rightquotation=\Greekrightquot,
+ \c!leftquote=\greekleftquot,
+ \c!rightquote=\greekrightquot,
+ \c!leftquotation=\greekleftquot,
+ \c!rightquotation=\greekrightquot,
\c!date={\v!day\ \v!month\ \v!year},
\c!state=\v!stop]
\installlanguage [greek] [\s!gr]
-\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]
+\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!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!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!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!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!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!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!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]
+\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} {love}
+%D % \ShowAllLanguageValues [\s!gr] [\greekEpsilon\greeklamda\greeklamda\greeketa\greeknu\greekiota\greekkappa\greekalphatonos] {Greek} {love}
\protect \endinput
diff --git a/tex/context/base/math-ini.tex b/tex/context/base/math-ini.tex
index 8be7fdeb2..61507afe8 100644
--- a/tex/context/base/math-ini.tex
+++ b/tex/context/base/math-ini.tex
@@ -62,34 +62,36 @@
\newif\iftracemathcollection
-\beginETEX \ifcsname
-
-\def\dohandlemathtoken#1%
- {\csname\@mt@
- \ifcsname\@mt@\mathcollection#1\endcsname
- \mathcollection
- \else\ifcsname\@mt@\nomathcollection#1\endcsname
- \nomathcollection
- \fi\fi
- #1\endcsname}
-
-\endETEX
-
-\beginTEX
-
-\def\dohandlemathtoken#1%
- {\csname\@mt@
- \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
- \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
- \else
- \nomathcollection
- \fi
- \else
- \mathcollection
- \fi
- #1\endcsname}
-
-\endTEX
+% Simple variant:
+%
+% \beginETEX \ifcsname
+%
+% \def\dohandlemathtoken#1%
+% {\csname\@mt@
+% \ifcsname\@mt@\mathcollection#1\endcsname
+% \mathcollection
+% \else\ifcsname\@mt@\nomathcollection#1\endcsname
+% \nomathcollection
+% \fi\fi
+% #1\endcsname}
+%
+% \endETEX
+%
+% \beginTEX
+%
+% \def\dohandlemathtoken#1%
+% {\csname\@mt@
+% \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
+% \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
+% \else
+% \nomathcollection
+% \fi
+% \else
+% \mathcollection
+% \fi
+% #1\endcsname}
+%
+% \endTEX
%D Because a command can have a different meaning in math
%D and in text mode, we provide a selector. We also provide
@@ -101,7 +103,65 @@
\let\mathcharacter\dohandlemathtoken
\let\textcharacter\dohandlecommand % better \dohandletexttoken
-\beginETEX \ifcsname
+% More clever layout:
+%
+% \beginETEX \ifcsname
+%
+% \def\dohandlemathtoken#1%
+% {\csname
+% \ifmmode
+% \ifcsname\@mt@\mathcollection#1\endcsname
+% \@mt@\mathcollection
+% \else\ifcsname\@mt@\nomathcollection#1\endcsname
+% \@mt@\nomathcollection
+% \else\ifcsname\characterencoding#1\endcsname
+% \characterencoding
+% \else
+% \nocharacterencoding
+% \fi\fi\fi
+% \else
+% \ifcsname\characterencoding#1\endcsname
+% \characterencoding
+% \else
+% \nocharacterencoding
+% \fi
+% \fi
+% #1\endcsname}
+%
+% \endETEX
+%
+% \beginTEX
+%
+% \def\dohandlemathtoken#1%
+% {\csname
+% \ifmmode
+% \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
+% \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
+% \@EA\ifx\csname\characterencoding#1\endcsname\relax
+% \nocharacterencoding
+% \else
+% \characterencoding
+% \fi
+% \else
+% \@mt@\nomathcollection
+% \fi
+% \else
+% \@mt@\mathcollection
+% \fi
+% \else
+% \@EA\ifx\csname\characterencoding#1\endcsname\relax
+% \nocharacterencoding
+% \else
+% \characterencoding
+% \fi
+% \fi
+% #1\endcsname}
+%
+% \endTEX
+%
+% fallback to math when in text mode (handy for unicode vectors)
+
+\beginETEX
\def\dohandlemathtoken#1%
{\csname
@@ -118,9 +178,15 @@
\else
\ifcsname\characterencoding#1\endcsname
\characterencoding
+ \else\ifcsname\nocharacterencoding#1\endcsname
+ \nocharacterencoding
+ \else\ifcsname\@mt@\mathcollection#1\endcsname
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
+ \else\ifcsname\@mt@\nomathcollection#1\endcsname
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
\else
\nocharacterencoding
- \fi
+ \fi\fi\fi\fi
\fi
#1\endcsname}
@@ -133,7 +199,7 @@
\ifmmode
\@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
\@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
- \@EA\ifx\csname\characterencoding#1\endcsname
+ \@EA\ifx\csname\characterencoding#1\endcsname\relax
\nocharacterencoding
\else
\characterencoding
@@ -145,8 +211,20 @@
\@mt@\mathcollection
\fi
\else
- \@EA\ifx\csname\characterencoding#1\endcsname
- \nocharacterencoding
+ \@EA\ifx\csname\characterencoding#1\endcsname\relax
+ \@EA\ifx\csname\nocharacterencoding#1\endcsname\relax
+ \@EA\ifx\csname\@mt@\mathcollection#1\endcsname\relax
+ \@EA\ifx\csname\@mt@\nomathcollection#1\endcsname\relax
+ \nocharacterencoding
+ \else
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\nomathcollection
+ \fi
+ \else
+ \strippedcsname\mathematics\expandafter\endcsname\csname\@mt@\mathcollection
+ \fi
+ \else
+ \nocharacterencoding
+ \fi
\else
\characterencoding
\fi
diff --git a/tex/context/base/page-ini.tex b/tex/context/base/page-ini.tex
index 16315a924..3d5812066 100644
--- a/tex/context/base/page-ini.tex
+++ b/tex/context/base/page-ini.tex
@@ -1779,8 +1779,15 @@
{\writestatus\m!systems{ignoring further shipouts}%
\dowithnextbox{\deadcycles\zerocount}}
+% \def\doignorerestoftext
+% {\ifarrangingpages \else \ifnum\textlevel>\zerocount \else
+% \globallet\shipout\noshipout
+% \fi \fi}
+%
+% better:
+
\def\doignorerestoftext
- {\ifarrangingpages \else \ifnum\textlevel>\zerocount \else
+ {\ifarrangingpages \else \ifnum\textlevel=\plusone
\globallet\shipout\noshipout
\fi \fi}
diff --git a/tex/context/base/regi-cyr.tex b/tex/context/base/regi-cyr.tex
index 1ca020825..134cc5728 100644
--- a/tex/context/base/regi-cyr.tex
+++ b/tex/context/base/regi-cyr.tex
@@ -8,20 +8,20 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D Here are input regimes for cyrillic encodings:
-%D
-%D \startitemize
+%D Here are input regimes for cyrillic encodings:
+%D
+%D \startitemize
%D \item windows
%D \item two variants of dos
-%D \item three variants of koi-8 for *nix: russian,
+%D \item three variants of koi-8 for *nix: russian,
%D ukrainian and mixed
-%D \item two variants for the mac
-%D \stopitemize
-%D
-%D Other, not so popular regimes, can be found in \type
+%D \item two variants for the mac
+%D \stopitemize
+%D
+%D Other, not so popular regimes, can be found in \type
%D {regi-cy2}.
\startregime[cp1251]
@@ -95,11 +95,11 @@
\defineactivetoken 130 {\lowerleftsingleninequote}
\defineactivetoken 131 {\'\cyrillicg}
\defineactivetoken 132 {\lowerleftdoubleninequote}
-\defineactivetoken 133 {\textellipsis}
-\defineactivetoken 134 {\textdag}
-\defineactivetoken 135 {\textddag}
-\defineactivetoken 136 {\texteuro}
-\defineactivetoken 137 {\perthousand}
+\defineactivetoken 133 {\textellipsis}
+\defineactivetoken 134 {\textdag}
+\defineactivetoken 135 {\textddag}
+\defineactivetoken 136 {\texteuro}
+\defineactivetoken 137 {\perthousand}
\defineactivetoken 138 {\cyrillicLJE}
\defineactivetoken 139 {\leftsubguillemot}
\defineactivetoken 140 {\cyrillicNJE}
@@ -109,13 +109,13 @@
\defineactivetoken 144 {\cyrillicdje}
\defineactivetoken 145 {\upperleftsinglesixquote}
\defineactivetoken 146 {\upperrightsingleninequote}
-\defineactivetoken 147 {\upperleftdoublesixquote}
+\defineactivetoken 147 {\upperleftdoublesixquote}
\defineactivetoken 148 {\upperrightdoubleninequote}
-\defineactivetoken 149 {\textbullet}
+\defineactivetoken 149 {\textbullet}
\defineactivetoken 150 {\endash}
\defineactivetoken 151 {\emdash}
-\defineactivetoken 152 {\missingglyph}
-\defineactivetoken 153 {\trademark}
+\defineactivetoken 152 {\unknownchar}
+\defineactivetoken 153 {\trademark}
\defineactivetoken 154 {\cyrilliclje}
\defineactivetoken 155 {\rightsubguillemot}
\defineactivetoken 156 {\cyrillicnje}
@@ -128,21 +128,21 @@
\defineactivetoken 163 {\cyrillicJE}
\defineactivetoken 164 {\textcurrency}
\defineactivetoken 165 {\cyrillicGUP}
-\defineactivetoken 166 {\textbrokenbar}
-\defineactivetoken 167 {\sectionmark}
+\defineactivetoken 166 {\textbrokenbar}
+\defineactivetoken 167 {\sectionmark}
\defineactivetoken 168 {\cyrillicYO}
\defineactivetoken 169 {\copyright}
\defineactivetoken 170 {\cyrillicIE}
\defineactivetoken 171 {\leftguillemot}
\defineactivetoken 173 {\hyphen}
-\defineactivetoken 174 {\registered}
+\defineactivetoken 174 {\registered}
\defineactivetoken 175 {\cyrillicYI}
-\defineactivetoken 176 {\textdegree}
+\defineactivetoken 176 {\textdegree}
\defineactivetoken 178 {\cyrillicII}
\defineactivetoken 179 {\cyrillicii}
\defineactivetoken 180 {\cyrillicgup}
-\defineactivetoken 182 {\paragraphmark}
-\defineactivetoken 183 {\periodcentered}
+\defineactivetoken 182 {\paragraphmark}
+\defineactivetoken 183 {\periodcentered}
\defineactivetoken 184 {\cyrillicyo}
\defineactivetoken 185 {\textnumero}
\defineactivetoken 186 {\cyrillicie}
@@ -151,9 +151,9 @@
\defineactivetoken 189 {\cyrillicDZE}
\defineactivetoken 190 {\cyrillicdze}
\defineactivetoken 191 {\cyrillicyi}
-\defineactivetoken 172 {\textlognot}
-\defineactivetoken 177 {\textpm}
-\defineactivetoken 181 {\textmu}
+\defineactivetoken 172 {\textlognot}
+\defineactivetoken 177 {\textpm}
+\defineactivetoken 181 {\textmu}
\stopregime
@@ -231,14 +231,14 @@
\defineactivetoken 245 {\cyrillicyi}
\defineactivetoken 246 {\cyrillicUSHRT}
\defineactivetoken 247 {\cyrillicushrt}
-\defineactivetoken 248 {\textdegree}
+\defineactivetoken 248 {\textdegree}
\defineactivetoken 249 {\bullet}
-\defineactivetoken 250 {\periodcentered}
+\defineactivetoken 250 {\periodcentered}
\defineactivetoken 252 {\textnumero}
\defineactivetoken 253 {\textcurrency}
-\defineactivetoken 254 {\textblacksquare}
+\defineactivetoken 254 {\textblacksquare}
\defineactivetoken 255 {\nonbreakablespace}
-\defineactivetoken 251 {\textsurd}
+\defineactivetoken 251 {\textsurd}
\stopregime
@@ -395,18 +395,18 @@
\defineactivetoken 220 {\cyrillicerev}
\defineactivetoken 192 {\cyrillicyu}
\defineactivetoken 209 {\cyrillicya}
-\defineactivetoken 148 {\textblacksquare}
-\defineactivetoken 149 {\textbullet}
+\defineactivetoken 148 {\textblacksquare}
+\defineactivetoken 149 {\textbullet}
\defineactivetoken 154 {\nonbreakablespace}
-\defineactivetoken 156 {\textdegree}
-\defineactivetoken 158 {\periodcentered}
+\defineactivetoken 156 {\textdegree}
+\defineactivetoken 158 {\periodcentered}
\defineactivetoken 191 {\copyright}
-\defineactivetoken 150 {\textsurd}
-\defineactivetoken 151 {\mathematics\sim}
-\defineactivetoken 152 {\mathematics\leq}
-\defineactivetoken 153 {\mathematics\geq}
-\defineactivetoken 157 {\twosuperior}
-\defineactivetoken 159 {\textdiv}
+\defineactivetoken 150 {\textsurd}
+\defineactivetoken 151 {\mathematics\sim}
+\defineactivetoken 152 {\mathematics\leq}
+\defineactivetoken 153 {\mathematics\geq}
+\defineactivetoken 157 {\twosuperior}
+\defineactivetoken 159 {\textdiv}
\stopregime
@@ -479,7 +479,7 @@
\defineactivetoken 192 {\cyrillicyu}
\defineactivetoken 209 {\cyrillicya}
\defineactivetoken 147 {\upperleftsinglesixquote}
-\defineactivetoken 148 {\textblacksquare}
+\defineactivetoken 148 {\textblacksquare}
\defineactivetoken 149 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet)
\defineactivetoken 150 {\upperrightdoubleninequote}
\defineactivetoken 151 {\emdash}
@@ -487,7 +487,7 @@
\defineactivetoken 153 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark)
\defineactivetoken 154 {\nonbreakablespace}
\defineactivetoken 155 {\rightguillemot}
-\defineactivetoken 156 {\registered}
+\defineactivetoken 156 {\registered}
\defineactivetoken 157 {\leftguillemot}
\defineactivetoken 158 {\periodcentered} % Changed by V.F. 07/02/2003 (was: \textperiodcentered)
\defineactivetoken 159 {\textcurrency}
@@ -619,8 +619,8 @@
\defineactivetoken 158 {\cyrillicYU}
\defineactivetoken 159 {\cyrillicYA}
\defineactivetoken 160 {\textdag} % Changed by V.F. 07/02/2003 (was: dag)
-\defineactivetoken 161 {\textdegree}
-\defineactivetoken 162 {\textcent}
+\defineactivetoken 161 {\textdegree}
+\defineactivetoken 162 {\textcent}
\defineactivetoken 163 {\textsterling} % Changed by V.F. 07/02/2003 (was: \sterling)
\defineactivetoken 164 {\sectionmark} % Changed by V.F. 07/02/2003 (was: \S)
\defineactivetoken 165 {\textbullet} % Changed by V.F. 07/02/2003 (was: \bullet}
@@ -628,7 +628,7 @@
\defineactivetoken 167 {\cyrillicII}
\defineactivetoken 168 {\registered}
\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
+\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
\defineactivetoken 171 {\cyrillicDJE}
\defineactivetoken 172 {\cyrillicdje}
\defineactivetoken 174 {\'\cyrillicG}
@@ -753,7 +753,7 @@
\defineactivetoken 158 {\cyrillicYU}
\defineactivetoken 159 {\cyrillicYA}
\defineactivetoken 160 {\textdag} % Changed by V.F. 07/02/2003 (was: \dag)
-\defineactivetoken 161 {\textdegree}
+\defineactivetoken 161 {\textdegree}
\defineactivetoken 162 {\cyrillicGUP}
\defineactivetoken 163 {\textsterling} % Changed by V.F. 07/02/2003 (was: \sterling)
\defineactivetoken 164 {\sectionmark} % Changed by V.F. 07/02/2003 (was: \S)
@@ -762,7 +762,7 @@
\defineactivetoken 167 {\cyrillicII}
\defineactivetoken 168 {\registered}
\defineactivetoken 169 {\copyright}
-\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
+\defineactivetoken 170 {\trademark} % Changed by V.F. 07/02/2003 (was: \texttrademark}
\defineactivetoken 171 {\cyrillicDJE}
\defineactivetoken 172 {\cyrillicdje}
\defineactivetoken 174 {\'\cyrillicG}
diff --git a/tex/context/base/regi-grk.tex b/tex/context/base/regi-grk.tex
index 72b732eb8..5d83de694 100644
--- a/tex/context/base/regi-grk.tex
+++ b/tex/context/base/regi-grk.tex
@@ -17,101 +17,101 @@
% Uppercase Greek letters
%
-\defineactivetoken 193 {\GreekAlpha}
-\defineactivetoken 194 {\GreekBeta}
-\defineactivetoken 195 {\GreekGamma}
-\defineactivetoken 196 {\GreekDelta}
-\defineactivetoken 197 {\GreekEpsilon}
-\defineactivetoken 198 {\GreekZeta}
-\defineactivetoken 199 {\GreekEta}
-\defineactivetoken 200 {\GreekTheta}
-\defineactivetoken 201 {\GreekIota}
-\defineactivetoken 202 {\GreekKappa}
-\defineactivetoken 203 {\GreekLamda}
-\defineactivetoken 204 {\GreekMu}
-\defineactivetoken 205 {\GreekNu}
-\defineactivetoken 206 {\GreekXi}
-\defineactivetoken 207 {\GreekOmicron}
-\defineactivetoken 208 {\GreekPi}
-\defineactivetoken 209 {\GreekRho}
-\defineactivetoken 211 {\GreekSigma}
-\defineactivetoken 212 {\GreekTau}
-\defineactivetoken 213 {\GreekUpsilon}
-\defineactivetoken 214 {\GreekPhi}
-\defineactivetoken 215 {\GreekChi}
-\defineactivetoken 216 {\GreekPsi}
-\defineactivetoken 217 {\GreekOmega}
+\defineactivetoken 193 {\greekAlpha}
+\defineactivetoken 194 {\greekBeta}
+\defineactivetoken 195 {\greekGamma}
+\defineactivetoken 196 {\greekDelta}
+\defineactivetoken 197 {\greekEpsilon}
+\defineactivetoken 198 {\greekZeta}
+\defineactivetoken 199 {\greekEta}
+\defineactivetoken 200 {\greekTheta}
+\defineactivetoken 201 {\greekIota}
+\defineactivetoken 202 {\greekKappa}
+\defineactivetoken 203 {\greekLamda}
+\defineactivetoken 204 {\greekMu}
+\defineactivetoken 205 {\greekNu}
+\defineactivetoken 206 {\greekXi}
+\defineactivetoken 207 {\greekOmicron}
+\defineactivetoken 208 {\greekPi}
+\defineactivetoken 209 {\greekRho}
+\defineactivetoken 211 {\greekSigma}
+\defineactivetoken 212 {\greekTau}
+\defineactivetoken 213 {\greekUpsilon}
+\defineactivetoken 214 {\greekPhi}
+\defineactivetoken 215 {\greekChi}
+\defineactivetoken 216 {\greekPsi}
+\defineactivetoken 217 {\greekOmega}
%
% Lowercase Greek letters
%
-\defineactivetoken 225 {\Greekalpha}
-\defineactivetoken 226 {\Greekbeta}
-\defineactivetoken 227 {\Greekgamma}
-\defineactivetoken 228 {\Greekdelta}
-\defineactivetoken 229 {\Greekepsilon}
-\defineactivetoken 230 {\Greekzeta}
-\defineactivetoken 231 {\Greeketa}
-\defineactivetoken 232 {\Greektheta}
-\defineactivetoken 233 {\Greekiota}
-\defineactivetoken 234 {\Greekkappa}
-\defineactivetoken 235 {\Greeklamda}
-\defineactivetoken 236 {\Greekmu}
-\defineactivetoken 237 {\Greeknu}
-\defineactivetoken 238 {\Greekxi}
-\defineactivetoken 239 {\Greekomicron}
-\defineactivetoken 240 {\Greekpi}
-\defineactivetoken 241 {\Greekrho}
-\defineactivetoken 242 {\Greekfinalsigma}
-\defineactivetoken 243 {\Greeksigma}
-\defineactivetoken 244 {\Greektau}
-\defineactivetoken 245 {\Greekupsilon}
-\defineactivetoken 246 {\Greekphi}
-\defineactivetoken 247 {\Greekchi}
-\defineactivetoken 248 {\Greekpsi}
-\defineactivetoken 249 {\Greekomega}
+\defineactivetoken 225 {\greekalpha}
+\defineactivetoken 226 {\greekbeta}
+\defineactivetoken 227 {\greekgamma}
+\defineactivetoken 228 {\greekdelta}
+\defineactivetoken 229 {\greekepsilon}
+\defineactivetoken 230 {\greekzeta}
+\defineactivetoken 231 {\greeketa}
+\defineactivetoken 232 {\greektheta}
+\defineactivetoken 233 {\greekiota}
+\defineactivetoken 234 {\greekkappa}
+\defineactivetoken 235 {\greeklamda}
+\defineactivetoken 236 {\greekmu}
+\defineactivetoken 237 {\greeknu}
+\defineactivetoken 238 {\greekxi}
+\defineactivetoken 239 {\greekomicron}
+\defineactivetoken 240 {\greekpi}
+\defineactivetoken 241 {\greekrho}
+\defineactivetoken 242 {\greekfinalsigma}
+\defineactivetoken 243 {\greeksigma}
+\defineactivetoken 244 {\greektau}
+\defineactivetoken 245 {\greekupsilon}
+\defineactivetoken 246 {\greekphi}
+\defineactivetoken 247 {\greekchi}
+\defineactivetoken 248 {\greekpsi}
+\defineactivetoken 249 {\greekomega}
%
% Accented Uppercase Greek letters
%
-\defineactivetoken 182 {\GreekAlphatonos}
-\defineactivetoken 184 {\GreekEpsilontonos}
-\defineactivetoken 185 {\GreekEtatonos}
-\defineactivetoken 186 {\GreekIotatonos}
-\defineactivetoken 188 {\GreekOmicrontonos}
-\defineactivetoken 190 {\GreekUpsilontonos}
-\defineactivetoken 191 {\GreekOmegatonos}
-\defineactivetoken 218 {\GreekIotadialytika}
-\defineactivetoken 219 {\GreekUpsilondialytika}
+\defineactivetoken 182 {\greekAlphatonos}
+\defineactivetoken 184 {\greekEpsilontonos}
+\defineactivetoken 185 {\greekEtatonos}
+\defineactivetoken 186 {\greekIotatonos}
+\defineactivetoken 188 {\greekOmicrontonos}
+\defineactivetoken 190 {\greekUpsilontonos}
+\defineactivetoken 191 {\greekOmegatonos}
+\defineactivetoken 218 {\greekIotadialytika}
+\defineactivetoken 219 {\greekUpsilondialytika}
%
% Accented Lowercase Greek letters
%
-\defineactivetoken 220 {\Greekalphatonos}
-\defineactivetoken 221 {\Greekepsilontonos}
-\defineactivetoken 222 {\Greeketatonos}
-\defineactivetoken 223 {\Greekiotatonos}
-\defineactivetoken 252 {\Greekomicrontonos}
-\defineactivetoken 253 {\Greekupsilontonos}
-\defineactivetoken 254 {\Greekomegatonos}
-\defineactivetoken 250 {\Greekiotadialytika}
-\defineactivetoken 251 {\Greekupsilondialytika}
-\defineactivetoken 192 {\Greekiotadialytikatonos}
-\defineactivetoken 224 {\Greekupsilondialytikatonos}
+\defineactivetoken 220 {\greekalphatonos}
+\defineactivetoken 221 {\greekepsilontonos}
+\defineactivetoken 222 {\greeketatonos}
+\defineactivetoken 223 {\greekiotatonos}
+\defineactivetoken 252 {\greekomicrontonos}
+\defineactivetoken 253 {\greekupsilontonos}
+\defineactivetoken 254 {\greekomegatonos}
+\defineactivetoken 250 {\greekiotadialytika}
+\defineactivetoken 251 {\greekupsilondialytika}
+\defineactivetoken 192 {\greekiotadialytikatonos}
+\defineactivetoken 224 {\greekupsilondialytikatonos}
%
% Miscellaneous Greek symbols
%
-\defineactivetoken 171 {\Greekleftquot}
-\defineactivetoken 187 {\Greekrightquot}
-\defineactivetoken 180 {\Greektonos}
-\defineactivetoken 181 {\Greekdialytikatonos}
-\defineactivetoken 162 {\Greekapostrophos}
+\defineactivetoken 171 {\greekleftquot}
+\defineactivetoken 187 {\greekrightquot}
+\defineactivetoken 180 {\greektonos}
+\defineactivetoken 181 {\greekdialytikatonos}
+\defineactivetoken 162 {\greekapostrophos}
-\stopregime
+\stopregime
-\endinput
+\endinput
diff --git a/tex/context/base/regi-win.tex b/tex/context/base/regi-win.tex
index 36fd73f9d..c9a301dff 100644
--- a/tex/context/base/regi-win.tex
+++ b/tex/context/base/regi-win.tex
@@ -17,7 +17,7 @@
\startregime [windows]
\defineactivetoken 128 {\texteuro}
-\defineactivetoken 129 {\missingglyph}
+\defineactivetoken 129 {\unknownchar}
\defineactivetoken 130 {\lowerleftsingleninequote}
\defineactivetoken 131 {\textflorin}
\defineactivetoken 132 {\lowerleftdoubleninequote}
@@ -29,10 +29,10 @@
\defineactivetoken 138 {\Scaron}
\defineactivetoken 139 {\leftsubguillemot}
\defineactivetoken 140 {\OEligature}
-\defineactivetoken 141 {\missingglyph}
-\defineactivetoken 142 {\missingglyph}
-\defineactivetoken 143 {\missingglyph}
-\defineactivetoken 144 {\missingglyph}
+\defineactivetoken 141 {\unknownchar}
+\defineactivetoken 142 {\unknownchar}
+\defineactivetoken 143 {\unknownchar}
+\defineactivetoken 144 {\unknownchar}
\defineactivetoken 145 {\upperleftsinglesixquote}
\defineactivetoken 146 {\upperrightsingleninequote}
\defineactivetoken 147 {\upperleftdoublesixquote}
@@ -45,8 +45,8 @@
\defineactivetoken 154 {\scaron}
\defineactivetoken 155 {\rightsubguillemot}
\defineactivetoken 156 {\oeligature}
-\defineactivetoken 157 {\missingglyph}
-\defineactivetoken 158 {\missingglyph}
+\defineactivetoken 157 {\unknownchar}
+\defineactivetoken 158 {\unknownchar}
\defineactivetoken 159 {\Ydiaeresis}
\defineactivetoken 160 {\nonbreakablespace}
\defineactivetoken 161 {\exclamdown}
@@ -61,9 +61,9 @@
\defineactivetoken 170 {\ordfeminine}
\defineactivetoken 171 {\leftguillemot}
\defineactivetoken 172 {\textlognot}
-\defineactivetoken 173 {\hyphen}
+\defineactivetoken 173 {\hyphen}
\defineactivetoken 174 {\registered}
-\defineactivetoken 175 {\textmacron}
+\defineactivetoken 175 {\textmacron}
\defineactivetoken 176 {\textdegree}
\defineactivetoken 177 {\textpm}
\defineactivetoken 178 {\twosuperior}
@@ -103,14 +103,14 @@
\defineactivetoken 212 {\Ocircumflex}
\defineactivetoken 213 {\Otilde}
\defineactivetoken 214 {\Odiaeresis}
-\defineactivetoken 215 {\textmultiply}
+\defineactivetoken 215 {\textmultiply}
\defineactivetoken 216 {\Ostroke}
\defineactivetoken 217 {\Ugrave}
\defineactivetoken 218 {\Uacute}
\defineactivetoken 219 {\Ucircumflex}
\defineactivetoken 220 {\Udiaeresis}
\defineactivetoken 221 {\Ygrave}
-\defineactivetoken 222 {\thorn}
+\defineactivetoken 222 {\thorn}
\defineactivetoken 223 {\ssharp}
\defineactivetoken 224 {\agrave}
\defineactivetoken 225 {\aacute}
@@ -128,21 +128,21 @@
\defineactivetoken 237 {\iacute}
\defineactivetoken 238 {\icircumflex}
\defineactivetoken 239 {\idiaeresis}
-\defineactivetoken 240 {\eth}
+\defineactivetoken 240 {\eth}
\defineactivetoken 241 {\ntilde}
\defineactivetoken 242 {\ograve}
\defineactivetoken 243 {\oacute}
\defineactivetoken 244 {\ocircumflex}
\defineactivetoken 245 {\otilde}
\defineactivetoken 246 {\odiaeresis}
-\defineactivetoken 247 {\textdiv}
+\defineactivetoken 247 {\textdiv}
\defineactivetoken 248 {\ostroke}
\defineactivetoken 249 {\ugrave}
\defineactivetoken 250 {\uacute}
\defineactivetoken 251 {\ucircumflex}
\defineactivetoken 252 {\udiaeresis}
\defineactivetoken 253 {\ygrave}
-\defineactivetoken 254 {\Thorn}
+\defineactivetoken 254 {\Thorn}
\defineactivetoken 255 {\ydiaeresis}
\stopregime
diff --git a/tex/context/base/supp-fil.tex b/tex/context/base/supp-fil.tex
index 37910dc4f..7cb2e2901 100644
--- a/tex/context/base/supp-fil.tex
+++ b/tex/context/base/supp-fil.tex
@@ -546,10 +546,15 @@
\ifx\outputfilename\undefined \def\outputfilename{\jobname} \fi
-\def\doifparentfileelse#1#2#3%
- {\doifsamestringelse{#1}{\jobname }{#2}
- {\doifsamestringelse{#1}{\jobname.\c!tex}{#2}
- {\doifsamestringelse{#1}{\outputfilename}{#2}{#3}}}}
+% \def\doifparentfileelse#1#2#3%
+% {\doifsamestringelse{#1}{\jobname }{#2}
+% {\doifsamestringelse{#1}{\jobname.\c!tex}{#2}
+% {\doifsamestringelse{#1}{\outputfilename}{#2}{#3}}}}
+
+\def\doifparentfileelse#1%
+ {\doifsamestringelse{#1}{\jobname }\firstoftwoarguments
+ {\doifsamestringelse{#1}{\jobname.\c!tex}\firstoftwoarguments
+ {\doifsamestringelse{#1}{\outputfilename}\firstoftwoarguments\secondoftwoarguments}}}
\def\normalless {<} % geen \let !
\def\normalmore {>} % geen \let !
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 48c681643..2cddcc746 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -469,10 +469,19 @@
%
% so we need a two step approach
-\long\def\dodowriteMPgraphicline#1tex %
- {\doifnextcharelse\relax
- {\nododowriteMPgraphicline{#1}}
- {\redodowriteMPgraphicline{#1}}}
+% \long\def\dodowriteMPgraphicline#1tex %
+% {\doifnextcharelse\relax
+% {\nododowriteMPgraphicline{#1}}
+% {\redodowriteMPgraphicline{#1}}}
+%
+% better and faster
+
+\long\def\dodowriteMPgraphicline#1tex #2%
+ {\ifx#2\relax
+ \expandafter\nododowriteMPgraphicline
+ \else
+ \expandafter\redodowriteMPgraphicline
+ \fi{#1} #2}
\long\def\redodowriteMPgraphicline#1#2etex#3\MPend
{\ifx\next\empty\else\ifx\next\relax\else
diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex
index 0d23d47e0..98573b7eb 100644
--- a/tex/context/base/syst-ext.tex
+++ b/tex/context/base/syst-ext.tex
@@ -3459,6 +3459,8 @@
%D Just for fun I times the next alternative: it was roughly
%D timed about 15\% faster than the default (10+ sec to 9 sec)!
+\beginTEX
+
\def\executeifdefined#1% #2 / never change this one again
{\ifundefined{#1}%
\expandafter\secondoftwoarguments
@@ -3467,6 +3469,8 @@
\fi
{\csname#1\endcsname}}
+\endTEX
+
\beginETEX
\def\executeifdefined#1% #2 / never change this one again
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index c6981a85c..b35994af8 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -4285,6 +4285,11 @@
\def\writeline
{\writestring{}}
+%D First we present the normal \TEX\ variant, later we will
+%D show the \ETEX-way.
+
+\beginTEX
+
\newcount\statuscounter
\def\dosplitstatus#1%
@@ -4311,12 +4316,14 @@
\@EA\writestring\@EA{\the\scratchtoks\space:\space#2}%
\endgroup}
+\endTEX
+
%D Because we're grouped, we could have initialized at forehand:
%D
%D \starttyping
%D \statuscounter\statuswidth
%D \stoptyping
-
+%D
%D The next implementation saves only some 10 words of format
%D memory, but we hardly gain any speed.
%D
@@ -4336,10 +4343,12 @@
%D \space:\space#2}}
%D \stoptyping
-%D Okay then. More obscure but slightly faster: no split grabs
+%D Okay then, more obscure but slightly faster: no split grabs
%D the do split part and skipping the else branch has to happen
%D anyway, so:
+\beginTEX
+
\def\dosplitstatus#1%
{\advance\statuscounter \minusone
\ifcase\statuscounter
@@ -4348,6 +4357,31 @@
\scratchtoks\@EA{\the\scratchtoks#1}%
\dosplitstatus}
+\endTEX
+
+%D The next (\ETEX\ specific) variant is twice as fast in 5/40
+%D situations, only gains some speed when multiple runs of large docs
+%D are done; fully expandable, no statuscounter needed, no restore (due
+%D to grouping) needed etc.
+
+\beginETEX \numexpr
+
+\def\writestatus#1#2%
+ {\writestring{\expandafter\dosplitstatus\expandafter\statuswidth#1%
+ \space\space\space\space\space\space\space
+ \space\space\space\space\space\space\space
+ \space\space\space\space\space\space\end
+ \space:\space#2}}
+
+\def\dosplitstatus#1#2%
+ {\ifcase#1 \expandafter\nosplitstatus\fi#2%
+ \expandafter\dosplitstatus\expandafter{\the\numexpr#1+\minusone\relax}}
+
+\def\nosplitstatus#1\end
+ {}
+
+\endETEX
+
%D \macros
%D {emptytoks}
%D
diff --git a/tex/context/base/syst-new.tex b/tex/context/base/syst-new.tex
index 96943adcb..eef4dda5c 100644
--- a/tex/context/base/syst-new.tex
+++ b/tex/context/base/syst-new.tex
@@ -91,22 +91,34 @@
\chardef\obeyedlccode=`. % so <32 and >127 chars become .
-%\def\obeylccodes
-% {\def\withcharacter##1{\lccode##1##1}%
-% \the\withlowercharacters
-% \def\withcharacter##1{\lccode##1\obeyedlccode}%
-% \the\withminorcharacters
-% \ifeightbitcharacters\the\withuppercharacters\fi}
+% \def\obeylccodes
+% {\def\withcharacter##1{\lccode##1##1}%
+% \the\withlowercharacters
+% \def\withcharacter##1{\lccode##1\obeyedlccode}%
+% \the\withminorcharacters
+% \ifeightbitcharacters\the\withuppercharacters\fi}
\def\setownlccode #1{\lccode#1#1}
\def\setobeyedlccode#1{\lccode#1\obeyedlccode}
+\beginTEX
+
\def\obeylccodes
{\let\withcharacter\setownlccode
\the\withlowercharacters
\let\withcharacter\setobeyedlccode
\the\withminorcharacters
\ifeightbitcharacters\the\withuppercharacters\fi}
+
+\endTEX
+
+%D This one is much faster in \ETEX:
+
+\beginETEX \lccode
+
+ \def\obeylccodes{\language\zerocount}
+
+\endETEX
\def\unspaced#1%
{\dounspaced#1\end}
diff --git a/tex/context/base/unic-001.tex b/tex/context/base/unic-001.tex
index 9b7a43a5d..672b1cd67 100644
--- a/tex/context/base/unic-001.tex
+++ b/tex/context/base/unic-001.tex
@@ -13,140 +13,17 @@
\unprotect
-% \startunicodevector 1
-% \ifcase#1\or
-% \@@unknownchar\or
-% Abreve\or
-% abreve\or
-% Aogonek\or
-% aogonek\or
-% Cacute\or
-% cacute\or
-% Ccircumflex\or
-% ccircumflex\or
-% Cdotaccent\or
-% cdotaccent\or
-% Ccaron\or
-% ccaron\or
-% Dcaron\or
-% dcaron\or
-% Dstroke\or
-% dstroke\or
-% Emacron\or
-% emacron\or
-% Ebreve\or
-% ebreve\or
-% Edotaccent\or
-% edotaccent\or
-% Eogonek\or
-% eogonek\or
-% Ecaron\or
-% ecaron\or
-% Gcircumflex\or
-% gcircumflex\or
-% Gbreve\or
-% gbreve\or
-% Gdotaccent\or
-% gdotaccent\or
-% \@@unknownchar\or % Gcedilla\or
-% \@@unknownchar\or % gcedilla\or
-% Hcircumflex\or
-% hcircumflex\or
-% Hstroke\or
-% hstroke\or
-% Itilde\or
-% itilde\or
-% Imacron\or
-% imacron\or
-% Ibreve\or
-% ibreve\or
-% Iogonek\or
-% iogonek\or
-% Idotaccent\or
-% dotlessi\or
-% IJligature\or
-% ijligature\or
-% Jcircumflex\or
-% jcircumflex\or
-% Kcedilla\or
-% kcedilla\or
-% \@@unknownchar\or % kra\or
-% Lacute\or
-% lacute\or
-% Lcedilla\or
-% lcedilla\or
-% Lcaron\or
-% lcaron\or
-% \@@unknownchar\or % Ldotmiddle\or
-% \@@unknownchar\or % ldotmiddle\or
-% Lstroke\or
-% lstroke\or
-% Nacute\or
-% nacute\or
-% Ncedilla\or
-% ncedilla\or
-% Ncaron\or
-% ncaron\or
-% napostrophe\or
-% Neng\or
-% neng\or
-% Omacron\or
-% omacron\or
-% Obreve\or
-% obreve\or
-% Ohungarumlaut\or
-% ohungarumlaut\or
-% OEligature\or
-% oeligature\or
-% Racute\or
-% racute\or
-% Rcedilla\or
-% rcedilla\or
-% Rcaron\or
-% rcaron\or
-% Sacute\or
-% sacute\or
-% Scircumflex\or
-% scircumflex\or
-% Scedilla\or
-% scedilla\or
-% Scaron\or
-% scaron\or
-% Tcedilla\or
-% tcedilla\or
-% Tcaron\or
-% tcaron\or
-% Tstroke\or
-% tstroke\or
-% Utilde\or
-% utilde\or
-% Umacron\or
-% umacron\or
-% Ubreve\or
-% ubreve\or
-% Uring\or
-% uring\or
-% Uhungarumlaut\or
-% uhungarumlaut\or
-% Uogonek\or
-% uogonek\or
-% Wcircumflex\or
-% wcircumflex\or
-% Ycircumflex\or
-% ycircumflex\or
-% Ydiaeresis\or
-% Zacute\or
-% zacute\or
-% Zdotaccent\or
-% zdotaccent\or
-% Zcaron\or
-% zcaron\or
-% \@@unknownchar\else % slong\else
-% \@@unknownchar
-% \fi
-% \stopunicodevector
-
-%D Faster, watch how we avoid zero and \TEX's
+%D Readable:
+%D
+%D \starttyping
+%D \startunicodevector 1
+%D \ifcase#1\or
+%D unknownchar\or Abreve\or abreve\or
+%D ....
+%D Zcaron\or zcaron\else unknownchar\fi
+%D \stopunicodevector
+%D
+%D But we can speed things up, watch how we avoid zero and \TEX's
%D automatically added \type {\relax}.
\startunicodevector 1
diff --git a/tex/context/base/unic-002.tex b/tex/context/base/unic-002.tex
index f8626e6e4..04cfa5c79 100644
--- a/tex/context/base/unic-002.tex
+++ b/tex/context/base/unic-002.tex
@@ -13,23 +13,6 @@
\unprotect
-% \startunicodevector 2
-% \ifcase\numexpr(#1-198)
-% textcircumflex\or
-% textcaron\else
-% \ifcase\numexpr(#1-216)
-% textbreve\or
-% textdotaccent\or
-% \@@unknownchar\or
-% textogonek\or
-% texttilde\or
-% texthungarumlaut\else
-% \@@unknownchar
-% \fi\fi
-% \stopunicodevector
-
-% ugly but faster
-
\startunicodevector 2
\ifcase\numexpr(#1-198)
\strippedcsname \textcircumflex \or
diff --git a/tex/context/base/unic-003.tex b/tex/context/base/unic-003.tex
new file mode 100644
index 000000000..74f556fc9
--- /dev/null
+++ b/tex/context/base/unic-003.tex
@@ -0,0 +1,73 @@
+%D \module
+%D [ file=unic-003,
+%D version=2005.01.26,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Vector 3,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+\startunicodevector 3
+ \ifcase\numexpr(#1-145)
+ \strippedcsname \greekAlpha \or
+ \strippedcsname \greekBeta \or
+ \strippedcsname \greekGamma \or
+ \strippedcsname \greekDelta \or
+ \strippedcsname \greekEpsilon \or
+ \strippedcsname \greekZeta \or
+ \strippedcsname \greekEta \or
+ \strippedcsname \greekTheta \or
+ \strippedcsname \greekIota \or
+ \strippedcsname \greekKappa \or
+ \strippedcsname \greekLambda \or
+ \strippedcsname \greekMu \or
+ \strippedcsname \greekNu \or
+ \strippedcsname \greekXi \or
+ \strippedcsname \greekOmicron \or
+ \strippedcsname \greekPi \or
+ \strippedcsname \greekRho \or
+ \strippedcsname \greekFinalSigma\or
+ \strippedcsname \greekSigma \or
+ \strippedcsname \greekTau \or
+ \strippedcsname \greekUpsilon \or
+ \strippedcsname \greekPhi \or
+ \strippedcsname \greekChi \or
+ \strippedcsname \greekPsi \or
+ \strippedcsname \greekOmega \else
+ \ifcase\numexpr(#1-177)
+ \strippedcsname \greekalpha \or
+ \strippedcsname \greekbeta \or
+ \strippedcsname \greekgamma \or
+ \strippedcsname \greekdelta \or
+ \strippedcsname \greekepsilon \or
+ \strippedcsname \greekzeta \or
+ \strippedcsname \greeketa \or
+ \strippedcsname \greektheta \or
+ \strippedcsname \greekiota \or
+ \strippedcsname \greekkappa \or
+ \strippedcsname \greeklambda \or
+ \strippedcsname \greekmu \or
+ \strippedcsname \greeknu \or
+ \strippedcsname \greekxi \or
+ \strippedcsname \greekomicron \or
+ \strippedcsname \greekpi \or
+ \strippedcsname \greekrho \or
+ \strippedcsname \unknownchar \or
+ \strippedcsname \greeksigma \or
+ \strippedcsname \greektau \or
+ \strippedcsname \greekupsilon \or
+ \strippedcsname \greekphi \or
+ \strippedcsname \greekchi \or
+ \strippedcsname \greekpsi \or
+ \strippedcsname \greekomega \else
+ \strippedcsname \unknownchar
+ \fi\fi
+\stopunicodevector
+
+\protect \endinput
diff --git a/tex/context/base/unic-004.tex b/tex/context/base/unic-004.tex
new file mode 100644
index 000000000..a34883215
--- /dev/null
+++ b/tex/context/base/unic-004.tex
@@ -0,0 +1,272 @@
+%D \module
+%D [ file=unic-004,
+%D version=2005.01.27,
+%D title=\CONTEXT\ \UNICODE\ Macros,
+%D subtitle=Vector 4,
+%D author=Mikael Persson \& Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+\startunicodevector 4
+ \expandafter\strippedcsname
+ \ifcase\numexpr(#1+1) % space needed, terminates expr
+ \cyrillicEgrave \or % 04-00 \uchar0{200} aswell
+ \cyrillicYO \or % 04-01 Capital YO (or IO)
+ \cyrillicDJE \or % 04-02
+ \cyrillicGJE \or % 04-03 not in enco-uc.tex
+ \cyrillicIE \or % 04-04 Ukrainian IE
+ \cyrillicDZE \or % 04-05
+ \cyrillicII \or % 04-06 Byelorussian-ukrainian I
+ \cyrillicYI \or % 04-07
+ \cyrillicJE \or % 04-08 same letter as latin J?
+ \cyrillicLJE \or % 04-09
+ \cyrillicNJE \or % 04-0A
+ \cyrillicTSHE \or % 04-0B
+ \cyrillicKJE \or % 04-0C
+ \cyrillicIgrave \or % 04-0D I with grave
+ \cyrillicUSHRT \or % 04-0E
+ \cyrillicDZHE \or % 04-0F
+ \cyrillicA \or % 04-10
+ \cyrillicB \or
+ \cyrillicV \or
+ \cyrillicG \or
+ \cyrillicD \or
+ \cyrillicE \or
+ \cyrillicZH \or
+ \cyrillicZ \or
+ \cyrillicI \or
+ \cyrillicISHRT \or
+ \cyrillicK \or
+ \cyrillicL \or
+ \cyrillicM \or
+ \cyrillicN \or
+ \cyrillicO \or
+ \cyrillicP \or
+ \cyrillicR \or
+ \cyrillicS \or
+ \cyrillicT \or
+ \cyrillicU \or
+ \cyrillicF \or
+ \cyrillicH \or
+ \cyrillicC \or
+ \cyrillicCH \or
+ \cyrillicSH \or
+ \cyrillicSHCH \or
+ \cyrillicHRDSN \or
+ \cyrillicERY \or
+ \cyrillicSFTSN \or
+ \cyrillicEREV \or
+ \cyrillicYU \or
+ \cyrillicYA \or
+ \cyrillica \or % 04-30
+ \cyrillicb \or
+ \cyrillicv \or
+ \cyrillicg \or
+ \cyrillicd \or
+ \cyrillice \or
+ \cyrilliczh \or
+ \cyrillicz \or
+ \cyrillici \or
+ \cyrillicishrt \or
+ \cyrillick \or
+ \cyrillicl \or
+ \cyrillicm \or
+ \cyrillicn \or
+ \cyrillico \or
+ \cyrillicp \or
+ \cyrillicr \or
+ \cyrillics \or
+ \cyrillict \or
+ \cyrillicu \or
+ \cyrillicf \or
+ \cyrillich \or
+ \cyrillicc \or
+ \cyrillicch \or
+ \cyrillicsh \or
+ \cyrillicshch \or
+ \cyrillichrdsn \or
+ \cyrillicery \or
+ \cyrillicsftsn \or
+ \cyrillicerev \or
+ \cyrillicyu \or
+ \cyrillicya \or % 044F
+ \cyrillicegrave \or % 0450 not i enco-uc.tex but same as \uchar0{232}
+ \cyrillicio \or % 0451 small yo (or io)
+ \cyrillicdje \or % 0452 serbian letter
+ \cyrillicgje \or % 0453 macedonian letter not in enco-uc.tex
+ \cyrillicie \or % 0454 ukrainian ie
+ \cyrillicdze \or % 0455 macedonian zelo
+ \cyrillicii \or % 0456 byelorussian-ukrainian i.
+ \cyrillicyi \or % 0457
+ \cyrillicje \or % 0458 not in enco-uc.tex same as latin j?
+ \cyrilliclje \or % 0459
+ \cyrillicnje \or % 045A
+ \cyrillictshe \or % 045B
+ \cyrillickje \or % 045C macedonian, not in enco-uc.tex
+ \cyrillicigrave \or % 045D macedonian, cyr i with grave not in enco-uc.tex
+ \cyrillicushrt \or % 045E
+ \cyrillicdzhe \or % 045F
+ \cyrillicOMEGA \or % 0460 Omega not in enco-uc.tex
+ \cyrillicomega \or % 0461 omega not in enco-uc.tex
+ \cyrillicYAT \or % 0462 Yat not in enco-uc.tex
+ \cyrillicyat \or % 0463 Yat not in enco-uc.tex
+ \cyrillicEiotified \or % 0464 iotified E not in enco-uc.tex
+ \cyrilliceiotified \or % 0465 iotified e not in enco-uc.tex
+ \cyrillicLITTLEYUS \or % 0466 Little Yus not in enco-enc.tex
+ \cyrilliclittleyus \or % 0467 Little yus not in enco-enc.tex
+ \cyrillicLITTLEYUSiotified \or % 0468 Little Yus iotified not in enco-enc.tex
+ \cyrilliclittleyusiotified \o % 0469 Little yus iotified not in enco-enc.tex
+ \cyrillicBIGYUS \or % 046A Big Yus not in enco-enc.tex
+ \cyrillicbigyus \or % 046B Big yus not in enco-enc.tex
+ \cyrillicBIGYUSiotified \or % 046C Big Yus iotified not in enco-enc.tex
+ \cyrillicbigyusiotified \or % 046D Big yus iotified not in enco-enc.tex
+ \cyrillicKSI \or % 046E Ksi not in enco-enc.tex
+ \cyrillicksi \or % 046F ksi not in enco-enc.tex
+ \cyrillicPSI \or % 0470 Psi not in enco-enc.tex
+ \cyrillicpsi \or % 0471 psi not in enco-enc.tex
+ \cyrillicFITA \or % 0472 Fita not in enco-enc.tex
+ \cyrillicfita \or % 0473 fita not in enco-enc.tex
+ \cyrillicIZHITSA \or % 0474 Izhitsa not in enco-enc.tex
+ \cyrillicizhitsa \or % 0475 izhitsa not in enco-enc.tex
+ \cyrillicIZHITSAdoublegrave \or % 0476 Izhitsa double grave not in enco-enc.tex
+ \cyrillicizhitsadoublegrave \or % 0477 izhitsa double grave not in enco-enc.tex
+ \cyrillicUK \or % 0478 UK not in enco-enc.tex
+ \cyrillicuk \or % 0479 uk not in enco-enc.tex
+ \cyrillicOMEGAround \or % 047A Round Omega not in enco-enc.tex
+ \cyrillicomegaround \or % 047B Round omega not in enco-enc.tex
+ \cyrillicOMEGAtitlo \or % 047C Omega with titlo not in enco-enc.tex
+ \cyrillicomegatitlo \or % 047D omega with titlo not in enco-enc.tex
+ \cyrillicOT \or % 047E OT not in enco-enc.tex
+ \cyrillicot \or % 047F ot not in enco-enc.tex
+ \cyrillicKOPPA \or % 0480 KOPPA not in enco-enc.tex
+ \cyrillickoppa \or % 0481 koppa not in enco-enc.tex
+ \unknownchar \or % 0482
+ \cyrillicTITLO \or % 0483 TITLO not in enco-enc.tex
+ \cyrillicPALATALIZATION \or % 0484 PALATALIZATION not in enco-enc.tex
+ \cyrillicDASIAPNEUMATA \or % 0485 DASIA PNEUMATA not in enco-enc.tex
+ \cyrillicPSILIPNEUMATA \or % 0486 PSILI PNEUMATA not in enco-enc.tex
+ \unknownchar \or % 0487
+ \unknownchar \or % 0488
+ \unknownchar \or % 0489
+ \cyrillicISHRTtail \or % 048A ISHRT with tail not in enco-enc.tex
+ \cyrillicishrttail \or % 048B ishrt with tail not in enco-enc.tex
+ \cyrillicSEMISOFT \or % 048C SEMISOFT not in enco-enc.tex
+ \cyrillicsemisoft \or % 048D semisoft not in enco-enc.tex
+ \cyrillicERtick \or % 048E ER with tick not in enco-enc.tex
+ \cyrillicertick \or % 048F er with tick not in enco-enc.tex
+ \cyrillicGHEupturn \or % 0490 GHE with upturn not in enco-enc.tex
+ \cyrillicgheupturn \or % 0491 ghe with upturn not in enco-enc.tex
+ \cyrillicGHEstroke \or % 0492 GHE with stroke not in enco-enc.tex
+ \cyrillicghestroke \or % 0493 ghe with stroke not in enco-enc.tex
+ \cyrillicGHEmidhook \or % 0494 GHE with middle hook
+ \cyrillicghemidhook \or % 0495 ghe with middle hook
+ \cyrillicZHEdescender \or % 0496 ZHE with descender
+ \cyrilliczhedescender \or % 0497 zhe with descender
+ \cyrillicZDSC \or % 0498 ZE with descender
+ \cyrilliczdsc \or % 0499 ze with descender
+ \cyrillicKADC \or % 049A KA with descender
+ \cyrillickadc \or % 049B ka with descender
+ \cyrillicKAvertstroke \or % 049C KA with vertical stroke
+ \cyrillickavertstroke \or % 049D ka with vertical stroke
+ \cyrillicKAstroke \or % 049E KA with stroke
+ \cyrillickastroke \or % 049F ka with stroke
+ \cyrillicKAbashkir \or % 04A0 KA bashkir
+ \cyrillickabashkir \or % 04A1 ka bashkir
+ \cyrillicENDC \or % 04A2 EN with descender
+ \cyrillicendc \or % 04A3 en with descender
+ \cyrillicENGHE \or % 04A4 EN GHE
+ \cyrillicenghe \or % 04A5 en ghe
+ \cyrillicPEmidhook \or % 04A6 PE with middle hook
+ \cyrillicpemidhook \or % 04A7 pe with middle hook
+ \cyrillicHA \or % 04A8 Abkhasian HA
+ \cyrillicha \or % 04A9 Abkhasian ha
+ \cyrillicSDSC \or % 04AA S with descender
+ \cyrilliccdsc \or % 04AB s with descender
+ \cyrillicTEDC \or % 04AC TE with descender
+ \cyrillictedc \or % 04AD te with descender
+ \cyrillicYstr \or % 04AE Y straight
+ \cyrillicystr \or % 04AF y straight
+ \cyrillicYstrstroke \or % 04B0 Y straight with stroke
+ \cyrillicystrstroke \or % 04B1 y straight with stroke
+ \cyrillicHADC \or % 04B2 HA with descender
+ \cyrillichadc \or % 04B3 ha with descender
+ \cyrillicTETSE \or % 04B4 TE TSE
+ \cyrillictetse \or % 04B5 te tse
+ \cyrillicCHEDC \or % 04B6 CHE with descender
+ \cyrillicchedc \or % 04B7 che with descender
+ \cyrillicCHEvertstroke \or % 04B8 CHE with vertical stroke
+ \cyrillicchevertstroke \or % 04B9 che with vertical stroke
+ \cyrillicSHHA \or % 04BA SHHA
+ \cyrillicshha \or % 04BB
+ \cyrillicCHEabkhasian \or % 04BC Abkhasian CHE
+ \cyrilliccheabkhasian \or % 04BD Abkhasian che
+ \cyrillicCHEDCabkhasian \or % 04BE Abkhasian CHE with descender
+ \cyrillicchedcabkhasian \or % 04BF Abkhasian che with descender
+ \cyrillicPALOCHKA \or % 04C0 PALOCHKA
+ \cyrillicZHEbreve \or % 04C1 ZHE with breve
+ \cyrilliczhebreve \or % 04C2 zhe with breve
+ \cyrillicKAhook \or % 04C3 KA with hook
+ \cyrillickahook \or % 04C4 ka with hook
+ \cyrillicELtail \or % 04C5 EL with tail
+ \cyrilliceltail \or % 04C6 el with tail
+ \cyrillicENhook \or % 04C7 EN with hook
+ \cyrillicenhook \or % 04C8 en with hook
+ \cyrillicENtail \or % 04C9 EN with tail
+ \cyrillicentail \or % 04CA en with tail
+ \cyrillicCHEkhakassian \or % 04CB Khakassian CHE
+ \cyrillicchekhakassian \or % 04CC Khakassian che
+ \cyrillicEMtail \or % 04CD EM with tail
+ \cyrillicemtail \or % 04CE em with tail
+ \cyrillicAbreve \or % 04D0 A with breve (\uchar1{2})
+ \cyrillicabreve \or % 04D1 a with breve (\uchar1{3})
+ \cyrillicAdiaeresis \or % 04D2 A with diaeresis (\uchar0{196})
+ \cyrillicadiaeresis \or % 04D3 a with diaeresis (\uchar0{228})
+ \cyrillicAE \or % 04D4 AE (\uchar0{198})
+ \cyrillicae \or % 04D5 ae (\uchar0{230})
+ \cyrillicEbreve \or % 04D6
+ \cyrillicebreve \or % 04D7
+ \cyrillicSCHWA \or % 04D8
+ \cyrillicschwa \or % 04D9
+ \cyrillicSCHWAdiaeresis \or % 04DA
+ \cyrillicschwadiaeresis \or % 04DB
+ \cyrillicZHEdiaeresis \or % 04DC
+ \cyrilliczhediaeresis \or % 04DD
+ \cyrillicZEdiaeresis \or % 04DE
+ \cyrilliczediaeresis \or % 04DF
+ \cyrillicDZEabkhasian \or % 04E0
+ \cyrillicdzeabkhasian \or % 04E1
+ \cyrillicImacron \or % 04E2
+ \cyrillicimacron \or % 04E3
+ \cyrillicIdiaeresis \or % 04E4
+ \cyrillicidiaeresis \or % 04E5
+ \cyrillicOdiaeresis \or % 04E6
+ \cyrillicodiaeresis \or % 04E7
+ \cyrillicObarred \or % 04E8
+ \cyrillicobarred \or % 04E9
+ \cyrillicObarreddiaeresis \or % 04EA
+ \cyrillicobarreddiaeresis \or % 04EB
+ \cyrillicEdiaeresis \or % 04EC
+ \cyrillicediaeresis \or % 04ED
+ \cyrillicUmacron \or % 04EE
+ \cyrillicumacron \or % 04EF
+ \cyrillicUdiaeresis \or % 04F0
+ \cyrillicudiaeresis \or % 04F1
+ \cyrillicUdoubleacute \or % 04F2
+ \cyrillicudoubleacute \or % 04F3
+ \cyrillicCHEdiaeresis \or % 04F4
+ \cyrillicchediaeresis \or % 04F5
+ \unknownchar \or % 04F6
+ \unknownchar \or % 04F7
+ \cyrillicYERUdiaeresis \or % 04F8
+ \cyrillicyerudiaeresis \else
+ \unknownchar
+ \fi
+\stopunicodevector
+
+\protect \endinput
diff --git a/tex/context/base/unic-005.tex b/tex/context/base/unic-005.tex
new file mode 100644
index 000000000..75a9e685f
--- /dev/null
+++ b/tex/context/base/unic-005.tex
@@ -0,0 +1 @@
+%D \module %D [ file=unic-005, %D version=2005.01.27, %D title=\CONTEXT\ \UNICODE\ Macros, %D subtitle=Vector 5, %D author=Adam Lindsay, %D date=\currentdate, %D copyright=\PRAGMA] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startunicodevector 5 \expandafter\strippedcsname \ifcase\numexpr(#1-224) % space needed, terminates expr \hebrewAlef \or % 05D0 \hebrewBet \or \hebrewGimel \or \hebrewDalet \or \hebrewHe \or \hebrewVav \or \hebrewZayin \or \hebrewHet \or \hebrewTet \or \hebrewYod \or \hebrewKaffinal \or \hebrewKaf \or \hebrewLamed \or \hebrewMemfinal \or \hebrewMem \or \hebrewNunfinal \or \hebrewNun \or \hebrewSamekh \or \hebrewAyin \or \hebrewPefinal \or \hebrewPe \or \hebrewTsadifinal \or \hebrewTsadi \or \hebrewQof \or \hebrewResh \or \hebrewShin \or \hebrewTav \else % 05EA \unknownchar \fi \stopunicodevector \protect \endinput \ No newline at end of file
diff --git a/tex/context/base/unic-032.tex b/tex/context/base/unic-032.tex
index 4df855813..c421814de 100644
--- a/tex/context/base/unic-032.tex
+++ b/tex/context/base/unic-032.tex
@@ -13,183 +13,107 @@
\unprotect
-% \startunicodevector 32
-% \ifcase\numexpr(#1-19)
-% endash\or
-% emdash\or
-% \@@unknownchar\or
-% \@@unknownchar\or
-% \@@unknownchar\or
-% quoteleft\or
-% quoteright\or
-% quotesinglebase\or
-% \@@unknownchar\or
-% quotedblleft\or
-% quotedblright\or
-% quotedblbase\or
-% \@@unknownchar\or
-% textdag\or
-% textddag\or
-% textbullet\or
-% \@@unknownchar\or
-% \@@unknownchar\or
-% \@@unknownchar\or
-% textellipsis\else
-% \ifcase\numexpr(#1-48)
-% perthousand\else
-% \ifcase\numexpr(#1-57)
-% \@@unknownchar\or % SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-% \@@unknownchar\else % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-% \ifcase\numexpr(#1-172)
-% texteuro\else
-% \@@unknownchar
-% \fi\fi\fi\fi
-% \stopunicodevector
+% U+2027 HYPHENATION POINT
+% U+2028 LINE SEPARATOR
+% U+2029 PARAGRAPH SEPARATOR
+% U+202A LEFT-TO-RIGHT EMBEDDING
+% U+202B RIGHT-TO-LEFT EMBEDDING
+% U+202C POP DIRECTIONAL FORMATTING
+% U+202D LEFT-TO-RIGHT OVERRIDE
+% U+202E RIGHT-TO-LEFT OVERRIDE
+% U+202F NARROW NO-BREAK SPACE
+% U+2030 PER MILLE SIGN
+% U+2031 PER TEN THOUSAND SIGN
+% U+2032 PRIME
+% U+2033 DOUBLE PRIME
+% U+2034 TRIPLE PRIME
+% U+2035 REVERSED PRIME
+% U+2036 REVERSED DOUBLE PRIME
+% U+2037 REVERSED TRIPLE PRIME
+% U+2038 CARET
-%D More efficient:
-
-% U+2001 EM QUAD
-% U+2002 EN SPACE
-% U+2003 EM SPACE
-% U+2004 THREE-PER-EM SPACE
-% U+2005 FOUR-PER-EM SPACE
-% U+2006 SIX-PER-EM SPACE
-% U+2007 FIGURE SPACE
-% U+2008 PUNCTUATION SPACE
-% U+2009 THIN SPACE
-% U+200A HAIR SPACE
-% U+200B ZERO WIDTH SPACE
-% U+200C ZERO WIDTH NON-JOINER
-% U+200D ZERO WIDTH JOINER
-% U+200E LEFT-TO-RIGHT MARK
-% U+200F RIGHT-TO-LEFT MARK
-% U+2010 HYPHEN
-% U+2011 NON-BREAKING HYPHEN
-% U+2012 FIGURE DASH
-% U+2013 EN DASH
-% U+2014 EM DASH
-% U+2015 HORIZONTAL BAR
-% U+2016 DOUBLE VERTICAL LINE
-% U+2017 DOUBLE LOW LINE
-% U+2018 LEFT SINGLE QUOTATION MARK
-% U+2019 RIGHT SINGLE QUOTATION MARK
-% U+201A SINGLE LOW-9 QUOTATION MARK
-% U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
-% U+201C LEFT DOUBLE QUOTATION MARK
-% U+201D RIGHT DOUBLE QUOTATION MARK
-% U+201E DOUBLE LOW-9 QUOTATION MARK
-% U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-% U+2020 DAGGER
-% U+2021 DOUBLE DAGGER
-% U+2022 BULLET
-% U+2023 TRIANGULAR BULLET
-% U+2024 ONE DOT LEADER
-% U+2025 TWO DOT LEADER
-% U+2026 HORIZONTAL ELLIPSIS
-% U+2027 HYPHENATION POINT
-% U+2028 LINE SEPARATOR
-% U+2029 PARAGRAPH SEPARATOR
-% U+202A LEFT-TO-RIGHT EMBEDDING
-% U+202B RIGHT-TO-LEFT EMBEDDING
-% U+202C POP DIRECTIONAL FORMATTING
-% U+202D LEFT-TO-RIGHT OVERRIDE
-% U+202E RIGHT-TO-LEFT OVERRIDE
-% U+202F NARROW NO-BREAK SPACE
-% U+2030 PER MILLE SIGN
-% U+2031 PER TEN THOUSAND SIGN
-% U+2032 PRIME
-% U+2033 DOUBLE PRIME
-% U+2034 TRIPLE PRIME
-% U+2035 REVERSED PRIME
-% U+2036 REVERSED DOUBLE PRIME
-% U+2037 REVERSED TRIPLE PRIME
-% U+2038 CARET
-% U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-% U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-% U+203B REFERENCE MARK
-% U+203C DOUBLE EXCLAMATION MARK
-% U+203D INTERROBANG
-% U+203E OVERLINE
-% U+203F UNDERTIE
-% U+2040 CHARACTER TIE
-% U+2041 CARET INSERTION POINT
-% U+2042 ASTERISM
-% U+2043 HYPHEN BULLET
-% U+2044 FRACTION SLASH
-% U+2045 LEFT SQUARE BRACKET WITH QUILL
-% U+2046 RIGHT SQUARE BRACKET WITH QUILL
-% U+2047 DOUBLE QUESTION MARK
-% U+2048 QUESTION EXCLAMATION MARK
-% U+2049 EXCLAMATION QUESTION MARK
-% U+204A TIRONIAN SIGN ET
-% U+204B REVERSED PILCROW SIGN
-% U+204C BLACK LEFTWARDS BULLET
-% U+204D BLACK RIGHTWARDS BULLET
-% U+204E LOW ASTERISK
-% U+204F REVERSED SEMICOLON
-% U+2050 CLOSE UP
-% U+2051 TWO ASTERISKS ALIGNED VERTICALLY
-% U+2052 COMMERCIAL MINUS SIGN
-% U+2053 SWUNG DASH
-% U+2054 INVERTED UNDERTIE
-% U+2057 QUADRUPLE PRIME
-% U+205F MEDIUM MATHEMATICAL SPACE
-% U+2060 WORD JOINER
-% U+2061 FUNCTION APPLICATION
-% U+2062 INVISIBLE TIMES
-% U+2063 INVISIBLE SEPARATOR
-% U+206A INHIBIT SYMMETRIC SWAPPING
-% U+206B ACTIVATE SYMMETRIC SWAPPING
-% U+206C INHIBIT ARABIC FORM SHAPING
-% U+206D ACTIVATE ARABIC FORM SHAPING
-% U+206E NATIONAL DIGIT SHAPES
-% U+206F NOMINAL DIGIT SHAPES
+% U+203B REFERENCE MARK
+% U+203C DOUBLE EXCLAMATION MARK
+% U+203D INTERROBANG
+% U+203E OVERLINE
+% U+203F UNDERTIE
+% U+2040 CHARACTER TIE
+% U+2041 CARET INSERTION POINT
+% U+2042 ASTERISM
+% U+2043 HYPHEN BULLET
+% U+2044 FRACTION SLASH
+% U+2045 LEFT SQUARE BRACKET WITH QUILL
+% U+2046 RIGHT SQUARE BRACKET WITH QUILL
+% U+2047 DOUBLE QUESTION MARK
+% U+2048 QUESTION EXCLAMATION MARK
+% U+2049 EXCLAMATION QUESTION MARK
+% U+204A TIRONIAN SIGN ET
+% U+204B REVERSED PILCROW SIGN
+% U+204C BLACK LEFTWARDS BULLET
+% U+204D BLACK RIGHTWARDS BULLET
+% U+204E LOW ASTERISK
+% U+204F REVERSED SEMICOLON
+% U+2050 CLOSE UP
+% U+2051 TWO ASTERISKS ALIGNED VERTICALLY
+% U+2052 COMMERCIAL MINUS SIGN
+% U+2053 SWUNG DASH
+% U+2054 INVERTED UNDERTIE
+% U+2057 QUADRUPLE PRIME
+% U+205F MEDIUM MATHEMATICAL SPACE
+% U+2060 WORD JOINER
+% U+2061 FUNCTION APPLICATION
+% U+2062 INVISIBLE TIMES
+% U+2063 INVISIBLE SEPARATOR
+% U+206A INHIBIT SYMMETRIC SWAPPING
+% U+206B ACTIVATE SYMMETRIC SWAPPING
+% U+206C INHIBIT ARABIC FORM SHAPING
+% U+206D ACTIVATE ARABIC FORM SHAPING
+% U+206E NATIONAL DIGIT SHAPES
+% U+206F NOMINAL DIGIT SHAPES
\ifx\undefined\zerowidthspace \unexpanded\def\zerowidthspace{\kern\zeropoint} \fi
-% will be made more efficient
-
\startunicodevector 32
\ifcase\numexpr(#1)
- \strippedcsname \enspace \or % U+2000 EN QUAD
- \strippedcsname \emspace \or % U+2001 EM QUAD
- \strippedcsname \enspace \or % U+2002 EN SPACE
- \strippedcsname \emspace \or % U+2003 EM SPACE
- \strippedcsname \unknownchar \or % U+2004 THREE-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2005 FOUR-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2006 SIX-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2007 FIGURE SPACE
- \strippedcsname \unknownchar \or % U+2008 PUNCTUATION SPACE
- \strippedcsname \unknownchar \or % U+2009 THIN SPACE
- \strippedcsname \unknownchar \or % U+200A HAIR SPACE
- \strippedcsname \zerowidthspace \or % U+200B ZERO WIDTH SPACE
- \strippedcsname \unknownchar \or % U+200C ZERO WIDTH NON-JOINER
- \strippedcsname \unknownchar \or % U+200D ZERO WIDTH JOINER
- \strippedcsname \unknownchar \or % U+200E LEFT-TO-RIGHT MARK
- \strippedcsname \unknownchar \or % U+200F RIGHT-TO-LEFT MARK
- \strippedcsname \breakinghyphen \or % U+2010 HYPHEN
- \strippedcsname \nonbreakinghyphen\or % U+2011 NON-BREAKING HYPHEN
- \strippedcsname \textminus \or % U+2012 FIGURE DASH
- \strippedcsname \endash \or % U+2013 EN DASH
- \strippedcsname \emdash \or % U+2014 EM DASH
- \strippedcsname \unknownchar \or % U+2015 HORIZONTAL BAR
- \strippedcsname \unknownchar \or % U+2016 DOUBLE VERTICAL LINE
- \strippedcsname \unknownchar \or % U+2017 DOUBLE LOW LINE
- \strippedcsname \quoteleft \or
- \strippedcsname \quoteright \or
- \strippedcsname \quotesinglebase \or
- \strippedcsname \unknownchar \or
- \strippedcsname \quotedblleft \or
- \strippedcsname \quotedblright \or
- \strippedcsname \quotedblbase \or
- \strippedcsname \unknownchar \or
- \strippedcsname \textdag \or
- \strippedcsname \textddag \or
- \strippedcsname \textbullet \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \unknownchar \or
- \strippedcsname \textellipsis \else
+ \strippedcsname \enspace \or % U+2000 EN QUAD
+ \strippedcsname \emspace \or % U+2001 EM QUAD
+ \strippedcsname \enspace \or % U+2002 EN SPACE
+ \strippedcsname \emspace \or % U+2003 EM SPACE
+ \strippedcsname \unknownchar \or % U+2004 THREE-PER-EM SPACE
+ \strippedcsname \unknownchar \or % U+2005 FOUR-PER-EM SPACE
+ \strippedcsname \unknownchar \or % U+2006 SIX-PER-EM SPACE
+ \strippedcsname \unknownchar \or % U+2007 FIGURE SPACE
+ \strippedcsname \unknownchar \or % U+2008 PUNCTUATION SPACE
+ \strippedcsname \unknownchar \or % U+2009 THIN SPACE
+ \strippedcsname \unknownchar \or % U+200A HAIR SPACE
+ \strippedcsname \zerowidthspace \or % U+200B ZERO WIDTH SPACE
+ \strippedcsname \unknownchar \or % U+200C ZERO WIDTH NON-JOINER
+ \strippedcsname \unknownchar \or % U+200D ZERO WIDTH JOINER
+ \strippedcsname \unknownchar \or % U+200E LEFT-TO-RIGHT MARK
+ \strippedcsname \unknownchar \or % U+200F RIGHT-TO-LEFT MARK
+ \strippedcsname \breakinghyphen \or % U+2010 HYPHEN
+ \strippedcsname \nonbreakinghyphen\or % U+2011 NON-BREAKING HYPHEN
+ \strippedcsname \textminus \or % U+2012 FIGURE DASH
+ \strippedcsname \endash \or % U+2013 EN DASH
+ \strippedcsname \emdash \or % U+2014 EM DASH
+ \strippedcsname \unknownchar \or % U+2015 HORIZONTAL BAR
+ \strippedcsname \unknownchar \or % U+2016 DOUBLE VERTICAL LINE
+ \strippedcsname \unknownchar \or % U+2017 DOUBLE LOW LINE
+ \strippedcsname \quoteleft \or % U+2018 LEFT SINGLE QUOTATION MARK
+ \strippedcsname \quoteright \or % U+2019 RIGHT SINGLE QUOTATION MARK
+ \strippedcsname \quotesinglebase \or % U+201A SINGLE LOW-9 QUOTATION MARK
+ \strippedcsname \unknownchar \or % U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
+ \strippedcsname \quotedblleft \or % U+201C LEFT DOUBLE QUOTATION MARK
+ \strippedcsname \quotedblright \or % U+201D RIGHT DOUBLE QUOTATION MARK
+ \strippedcsname \quotedblbase \or % U+201E DOUBLE LOW-9 QUOTATION MARK
+ \strippedcsname \unknownchar \or % U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+ \strippedcsname \textdag \or % U+2020 DAGGER
+ \strippedcsname \textddag \or % U+2021 DOUBLE DAGGER
+ \strippedcsname \textbullet \or % U+2022 BULLET
+ \strippedcsname \unknownchar \or % U+2023 TRIANGULAR BULLET
+ \strippedcsname \unknownchar \or % U+2024 ONE DOT LEADER
+ \strippedcsname \unknownchar \or % U+2025 TWO DOT LEADER
+ \strippedcsname \textellipsis \else % U+2026 HORIZONTAL ELLIPSIS
\ifcase\numexpr(#1-48)
\strippedcsname \perthousand \or % U+2030 PER MILLE SIGN
\strippedcsname \unknownchar \or % U+2031 PER TEN THOUSAND SIGN
@@ -197,8 +121,8 @@
\strippedcsname \doubleprime \or % U+2033 DOUBLE PRIME
\strippedcsname \tripleprime \else % U+2034 TRIPLE PRIME
\ifcase\numexpr(#1-57)
- \strippedcsname \guilsingleleft \or % SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- \strippedcsname \guilsingleright \else % SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ \strippedcsname \guilsingleleft \or % U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ \strippedcsname \guilsingleright \else % U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
\ifcase\numexpr(#1-172)
\strippedcsname \texteuro \else
\strippedcsname \unknownchar
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index 13c138dd8..22ce6b269 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -191,19 +191,35 @@
%D
%D We can rewrite these macros to faster alternatives: the
%D less arguments we pass, the faster the conversion will be,
-%D but at the price of readability.
+%D but at the price of readability. So we have:
+%D
+%D \starttyping
+%D \def\utftwouniglph#1#2%
+%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@a*(#1-\utf@d)+%
+%D `#2-\utf@g)}}
+%D
+%D \def\utfthreeuniglph#1#2#3%
+%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@b*(#1-\utf@e)+%
+%D \utf@a*(`#2-\utf@g)+`#3-\utf@g)}}
+%D
+%D \def\utffouruniglph#1#2#3#4%
+%D {\@EA\unicodechar\@EA{\the\numexpr(\utf@c*(#1-\utf@f)+%
+%D \utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g)}}
+%D \stoptyping
+%D
+%D Less parsing, and therefore faster:
\def\utftwouniglph#1#2%
- {\@EA\unicodechar\@EA{\the\numexpr(\utf@a*(#1-\utf@d)+%
- `#2-\utf@g)}}
+ {\@EA\unicodechar\@EA{\the\numexpr\utf@a*(#1-\utf@d)+%
+ `#2-\utf@g\relax}}
\def\utfthreeuniglph#1#2#3%
- {\@EA\unicodechar\@EA{\the\numexpr(\utf@b*(#1-\utf@e)+%
- \utf@a*(`#2-\utf@g)+`#3-\utf@g)}}
+ {\@EA\unicodechar\@EA{\the\numexpr\utf@b*(#1-\utf@e)+%
+ \utf@a*(`#2-\utf@g)+`#3-\utf@g\relax}}
\def\utffouruniglph#1#2#3#4%
- {\@EA\unicodechar\@EA{\the\numexpr(\utf@c*(#1-\utf@f)+%
- \utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g)}}
+ {\@EA\unicodechar\@EA{\the\numexpr\utf@c*(#1-\utf@f)+%
+ \utf@b*(`#2-\utf@g)+\utf@a*(`#3-\utf@g)+`#4-\utf@g\relax}}
%D Now we come to the unicode handler itself. We will use a few
%D constants, which saves us (at least at the time of writing
@@ -565,6 +581,6 @@
%D Well, let's at least preload a few familiar ones. Here we
%D also load the \UTF\ regime.
-\useunicodevector[0,1,2,30,32,33] \useregime[utf]
+\useunicodevector[0,1,2,3,4,5,30,32,33] \useregime[utf]
\protect \endinput
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index 388646ef3..edd79873c 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -1151,6 +1151,18 @@
% \stopXMLdata
%
% so we need an ifless implementation
+%
+% also .. this should work:
+%
+% \defineXMLentity[ctx-var-textwidth] {\textwidth}
+%
+% \defineXMLcommand[test][width=\textwidth]
+% {\the\dimexpr\XMLop{width}\relax}
+%
+% \startXMLdata
+% <test width=".45&ctx-var-textwidth;"/>
+% <test width="&ctx-var-textwidth;"/>
+% \stopXMLdata
% \eacute -> simplified -> e (via raw encoding)
% -> raw -> eacute (via handler)
diff --git a/tex/context/bib/t-bib.tex b/tex/context/bib/t-bib.tex
index dbff4810f..d9beb6e75 100644
--- a/tex/context/bib/t-bib.tex
+++ b/tex/context/bib/t-bib.tex
@@ -688,7 +688,7 @@
\def\docompletepublications[#1]%
{\preinitializepubslist
- \ifcase\bibcounter\or
+ \ifcase\bibcounter\else % HERE it said "\or" instead of "\else"
\initializepubslist
\let\bibcounter\!!zerocount
\completelist[pubs][\c!criterium=all,#1]%
@@ -701,7 +701,7 @@
\def\doplacepublications[#1]%
{\preinitializepubslist
- \ifcase\bibcounter\or
+ \ifcase\bibcounter\else % HERE it said "\or" instead of "\else"
\initializepubslist
\let\bibcounter\!!zerocount
\placelist[pubs][\c!criterium=\v!all,#1]%
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index c1ff33b1d..071c1dcbd 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.01.26">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2005.01.28">
<cd:variables>
<cd:variable name="one" value="jedna"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index c589352b8..faec8ee0b 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.01.26">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2005.01.28">
<cd:variables>
<cd:variable name="one" value="eins"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 5223231a0..084d56e68 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.01.26">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2005.01.28">
<cd:variables>
<cd:variable name="one" value="one"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 9fb4515b4..c0096102b 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.01.26">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2005.01.28">
<cd:variables>
<cd:variable name="one" value="uno"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 33419afa0..e47bfb3ac 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.01.26">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2005.01.28">
<cd:variables>
<cd:variable name="one" value="een"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index 76f02c7f0..22c7a529a 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.01.26">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2005.01.28">
<cd:variables>
<cd:variable name="one" value="unu"/>