summaryrefslogtreecommitdiff
path: root/tex/context/base/char-ini.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/char-ini.mkiv')
-rw-r--r--tex/context/base/char-ini.mkiv76
1 files changed, 76 insertions, 0 deletions
diff --git a/tex/context/base/char-ini.mkiv b/tex/context/base/char-ini.mkiv
new file mode 100644
index 000000000..0d5e16bb0
--- /dev/null
+++ b/tex/context/base/char-ini.mkiv
@@ -0,0 +1,76 @@
+%D \module
+%D [ file=char-ini,
+%D version=2006.08.20,
+%D title=\CONTEXT\ Character Support,
+%D subtitle=Initialization,
+%D author=Hans Hagen,
+%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.
+
+\writestatus{loading}{ConTeXt Character Support / Initialization}
+
+\registerctxluafile{char-def}{1.001} % let's load this one first
+\registerctxluafile{char-ini}{1.001}
+\registerctxluafile{char-cmp}{1.001} % maybe we will load this someplace else
+\registerctxluafile{char-map}{1.001} % maybe we will load this someplace else
+\registerctxluafile{char-tex}{1.001}
+
+\unprotect
+
+% \def\checkedchar#1% #2%
+% {\relax\iffontchar\font#1 \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi{\char#1}}
+%
+% impossible in math mode so there always fallback (till we have gyre):
+
+\def\utfchar #1{\ctxlua{tex.uprint(\number#1)}}
+\def\checkedchar {\relax\ifmmode\expandafter\checkedmathchar\else\expandafter\checkedtextchar\fi} % #1#2
+\def\checkedmathchar#1#2{#2}
+\def\checkedtextchar #1{\iffontchar\font#1 \expandafter\firstoftwoarguments\else\expandafter\secondoftwoarguments\fi{\char#1}}
+
+%D The codes are stored in the format, so we don't need to reinitialize
+%D them (unless of course we have adapted the table). It is on the agenda
+%D to do this with \type {tex.lccode} cum suis once they're available.
+
+\def\setcclcuc#1#2#3{\global\catcode#1=\@@letter\global\lccode#1=#2\global\uccode#1=#3\relax}
+\def\setcclcucself#1{\global\catcode#1=\@@letter\global\lccode#1=#1\global\uccode#1=#1\relax }
+
+\ctxlua{characters.setcodes()}
+
+%D There may be a problem with the turkisch patterns. By now it's taken care of in
+%D ctxtools (thanks to Mojca). There seems to be a bug in the patterns (^^11 refers
+%D to a double quote but it should be ^^19 since the original is in ec encoding).
+
+% \setcclcuc "201C "201C "201C
+% \setcclcuc "201D "201D "201D
+
+\ctxlua {
+ characters.define(
+ { % letter catcodes
+ \number\texcatcodes,
+ \number\ctxcatcodes,
+ \number\notcatcodes,
+ \number\mthcatcodes,
+ \number\vrbcatcodes,
+ \number\prtcatcodes,
+ \number\xmlcatcodesn,
+ \number\xmlcatcodese,
+ \number\xmlcatcodesr,
+ \number\typcatcodesa,
+ \number\typcatcodesb,
+ },
+ { % activate catcodes
+ \number\ctxcatcodes,
+ \number\notcatcodes,
+ \number\xmlcatcodesn,
+ \number\xmlcatcodese,
+ \number\xmlcatcodesr,
+ }
+ )
+ catcodes.register("xmlcatcodes",\number\xmlcatcodes)
+}
+
+\protect \endinput