summaryrefslogtreecommitdiff
path: root/tex/context/base/lang-ini.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2001-04-09 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2001-04-09 00:00:00 +0200
commit097d775537de422f644e9d13a40a3b18bf7dfe91 (patch)
tree24871ebb9648fabc5ac88f4003edfa2005a3b3d3 /tex/context/base/lang-ini.tex
parent2a2e86e6c2022e3925e0ee62f5c7b66bbec03338 (diff)
downloadcontext-097d775537de422f644e9d13a40a3b18bf7dfe91.tar.gz
stable 2001.04.09
Diffstat (limited to 'tex/context/base/lang-ini.tex')
-rw-r--r--tex/context/base/lang-ini.tex152
1 files changed, 114 insertions, 38 deletions
diff --git a/tex/context/base/lang-ini.tex b/tex/context/base/lang-ini.tex
index 2247a98f5..2654d7087 100644
--- a/tex/context/base/lang-ini.tex
+++ b/tex/context/base/lang-ini.tex
@@ -265,37 +265,12 @@
{\doifelsevaluenothing{\??la#1\s!patterns}
{\edef\languagesuffix{#1}}
{\edef\languagesuffix{\getvalue{\??la#1\s!patterns}}}%
- \doifundefinedelse{\??la\??la\languagesuffix}
- {\normallanguage=\loadedlanguage
- \letvalue{\??la\??la\languagesuffix}=\loadedlanguage
- \bgroup
- \scratchtoks=\everyjob % we don't want additional junk put there
- \let\showpatterns\relax
- \startencoding[\getvalue{\??la\languagesuffix\s!encoding}]%
- \enablemapping[\getvalue{\??la\languagesuffix\s!mapping}]%
-\startreadingfile
-\let\dohandleaccent\donthandleaccent % no checking done
- \readsysfile{\truefilename{\f!languageprefix\languagesuffix.\f!patternsextension}}
- {\setxvalue{\??la#1\s!patterns}{\languagesuffix}%
- \xdef\preloadedpatterns{\preloadedpatterns\showpatterns{\languagesuffix}}%
- \showmessage{\m!linguals}{1}{\languagesuffix,#1,\loadedlanguage}}
- {\readsysfile{\f!languageprefix\languagesuffix.\f!patternsextension}
- {\setxvalue{\??la#1\s!patterns}{\languagesuffix}%
- \xdef\preloadedpatterns{\preloadedpatterns\showpatterns{\languagesuffix}}%
- \showmessage{\m!linguals}{1}{\languagesuffix,#1,\loadedlanguage}}
- {\showmessage{\m!linguals}{2}{\languagesuffix,#1,\loadedlanguage}}}%
- \readsysfile{\truefilename{\f!languageprefix\languagesuffix.\f!hyphensextension}}
- {\showmessage{\m!linguals}{3}{\languagesuffix,#1,\loadedlanguage}}
- {\readsysfile{\f!languageprefix\languagesuffix.\f!hyphensextension}
- {\showmessage{\m!linguals}{3}{\languagesuffix,#1,\loadedlanguage}}
- {\showmessage{\m!linguals}{4}{\languagesuffix,#1,\loadedlanguage}}}%
-\stopreadingfile
- \stopencoding
- \global\everyjob=\scratchtoks
- \egroup
- \increment\loadedlanguage}
+% \doifundefinedelse{\??la\??la\languagesuffix}
+\doifundefinedelse{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}
+ {\doloadpatterns{#1}{\languagesuffix}}
{\bgroup
- \edef\loadedlanguage{\getvalue{\??la\??la\languagesuffix}}%
+% \edef\loadedlanguage{\getvalue{\??la\??la\languagesuffix}}%
+\edef\loadedlanguage{\getvalue{\??la\??la:\currentencoding:\currentmapping:\languagesuffix}}%
\showmessage{\m!linguals}{1}{\languagesuffix,#1,\loadedlanguage}%
\showmessage{\m!linguals}{3}{\languagesuffix,#1,\loadedlanguage}%
\egroup}}
@@ -313,6 +288,62 @@
%D used dutch mnemonics in the dutch version, but nowadays
%D conform a standard.
+\let \patternencoding \s!default
+\let \patternmapping \s!default
+
+\def\doloadpatterns#1#2%
+ {\expanded{\getcommacommandsize[\getvalue{\??la#2\s!encoding}]}%
+ \ifnum\commalistsize>0
+\message{[nofpatterns #2: \commalistsize/\getvalue{\??la#2\s!encoding}]}%
+ \dorecurse\commalistsize
+ {\expanded{\getfromcommacommand[\getvalue{\??la#2\s!encoding}][\recurselevel]}%
+ \let\patternencoding\commalistelement
+ \expanded{\getfromcommacommand[\getvalue{\??la#2\s!mapping }][\recurselevel]}%
+ \let\patternmapping \commalistelement
+\message{[patterns: #1/#2/\patternencoding/\patternmapping]}%
+ \dodoloadpatterns{#1}{#2}\patternencoding\patternmapping}%
+ \else
+\message{[patterns: #1/#2]}%
+ \dodoloadpatterns{#1}{#2}{}{}%
+ \fi}
+
+\let\normalpatterns\patterns
+
+\def\dodoloadpatterns#1#2#3#4%
+ {\normallanguage=\loadedlanguage
+% \letvalue{\??la\??la#2}=\loadedlanguage
+ \bgroup
+ \scratchtoks=\everyjob % we don't want additional junk put there
+ \let\showpatterns\relax
+ \startencoding[#3]%
+ \enablemapping[#4]%
+ \doifnothing{\currentencoding}{\let\currentencoding\s!default}%
+ \doifnothing{\currentmapping }{\let\currentmapping \s!default}%
+ \global\letvalue{\??la\??la:\currentencoding:\currentmapping:#2}=\loadedlanguage
+ \startreadingfile
+ \startpatternaccents
+%\def\patterns##1{\message{#1/#2/#3/#4/##1}\normalpatterns{##1}}%
+ \readsysfile{\truefilename{\f!languageprefix#2.\f!patternsextension}}
+ {\setxvalue{\??la#1\s!patterns}{#2}%
+ \xdef\preloadedpatterns{\preloadedpatterns\showpatterns{#2}}%
+ \showmessage{\m!linguals}{1}{#2,#1,\loadedlanguage}}
+ {\readsysfile{\f!languageprefix#2.\f!patternsextension}
+ {\setxvalue{\??la#1\s!patterns}{#2}%
+ \xdef\preloadedpatterns{\preloadedpatterns\showpatterns{#2}}%
+ \showmessage{\m!linguals}{1}{#2,#1,\loadedlanguage}}
+ {\showmessage{\m!linguals}{2}{#2,#1,\loadedlanguage}}}%
+ \readsysfile{\truefilename{\f!languageprefix#2.\f!hyphensextension}}
+ {\showmessage{\m!linguals}{3}{#2,#1,\loadedlanguage}}
+ {\readsysfile{\f!languageprefix#2.\f!hyphensextension}
+ {\showmessage{\m!linguals}{3}{#2,#1,\loadedlanguage}}
+ {\showmessage{\m!linguals}{4}{#2,#1,\loadedlanguage}}}%
+ \stoppatternaccents
+ \stopreadingfile
+ \stopencoding
+ \global\everyjob=\scratchtoks
+ \egroup
+ \increment\loadedlanguage}
+
%D \macros
%D {setuplanguage}
%D
@@ -385,22 +416,67 @@
%D We take care of local as well as standardized language
%D switching (fr and fa, de and du, but nl and nl).
+% new, encoding specific patterns
+
+\ifx\synchronizepatterns\undefined \let\synchronizepatterns\relax \fi
+
+\def\dosetnormallanguage#1#2#3#4%
+ {\doifdefinedelse{\??la\??la#2#3}
+ {\doifelsevaluenothing{\??la\??la#2#3}
+ {#4}
+ {\donetrue
+ \setxvalue{\??la#1\s!patterns}{#3}%
+ \normallanguage=\getvalue{\??la\??la#2#3}\relax}} % \relax is needed for lookahead problems
+ {#4}}
+
\def\setnormallanguage#1#2%
- {\doifdefined{\??la\??la#2}{\doifvaluesomething{\??la\??la#2}
- {\donetrue
- \setxvalue{\??la#1\s!patterns}{#2}%
- \normallanguage=\getvalue{\??la\??la#2}}}}
-
+ {\dosetnormallanguage{#1}{:\currentencoding:\currentmapping:}{#2}{%
+ \dosetnormallanguage{#1}{:\currentencoding:\s!default :}{#2}{%
+ \dosetnormallanguage{#1}{:\s!default :\currentmapping:}{#2}{%
+ \dosetnormallanguage{#1}{:\s!default :\s!default :}{#2}{}}}}}
+
+%
+
+% \def\docomplexlanguage[#1]%
+% {\donefalse
+% \setnormallanguage{#1}{\getvalue{\??la#1\s!patterns}}%
+% \ifdone\else
+% \setnormallanguage{#1}{#1}%
+% \ifdone\else
+% \doifvaluesomething{\??la#1\c!default}
+% {\setnormallanguage{#1}{\getvalue{\??la\defaultlanguage{#1}\s!patterns}}%
+% \ifdone\else
+% \setnormallanguage{#1}{\defaultlanguage{#1}}%
+% \fi}%
+% \fi
+% \fi
+% \edef\currentlanguage{#1}%
+% \enablelanguagespecifics[#1]%
+% \enablemapping[\getvalue{\??la#1\s!mapping}]%
+% \lefthyphenmin =0\getvalue{\??la#1\s!lefthyphenmin}\relax
+% \righthyphenmin=0\getvalue{\??la#1\s!righthyphenmin}\relax
+% \processaction
+% [\getvalue{\??la#1\c!spatiering}]
+% [\v!opelkaar=>\frenchspacing,
+% \v!ruim=>\nonfrenchspacing,
+% \s!unknown=>\frenchspacing]}
+
\def\docomplexlanguage[#1]%
{\donefalse
- \setnormallanguage{#1}{\getvalue{\??la#1\s!patterns}}%
+ \def\synchronizepatterns{\setnormallanguage
+ {#1}{\getvalue{\??la#1\s!patterns}}}%
+ \synchronizepatterns
\ifdone\else
- \setnormallanguage{#1}{#1}%
+ \def\synchronizepatterns{\setnormallanguage{#1}{#1}}%
+ \synchronizepatterns
\ifdone\else
\doifvaluesomething{\??la#1\c!default}
- {\setnormallanguage{#1}{\getvalue{\??la\defaultlanguage{#1}\s!patterns}}%
+ {\def\synchronizepatterns{\setnormallanguage
+ {#1}{\getvalue{\??la\defaultlanguage{#1}\s!patterns}}}%
+ \synchronizepatterns
\ifdone\else
\setnormallanguage{#1}{\defaultlanguage{#1}}%
+ \synchronizepatterns
\fi}%
\fi
\fi