summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel/babel.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.def')
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def125
1 files changed, 82 insertions, 43 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 02e3a8c8f6d..d655e4faa53 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -41,7 +41,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2019/07/19 3.33 Babel common definitions]
+\ProvidesFile{babel.def}[2019/09/27 3.34 Babel common definitions]
\ifx\AtBeginDocument\@undefined
\input plain.def\relax
\fi
@@ -65,6 +65,7 @@
\def\bbl@opt@safe{BR}
\ifx\@uclclist\@undefined\let\@uclclist\@empty\fi
\ifx\bbl@trace\@undefined\def\bbl@trace#1{}\fi
+ \expandafter\newif\csname ifbbl@single\endcsname
\fi
\ifx\bbl@switchflag\@undefined % Prevent double input
\let\bbl@switchflag\relax
@@ -121,6 +122,12 @@
#2}}
\long\def\bbl@afterelse#1\else#2\fi{\fi#1}
\long\def\bbl@afterfi#1\fi{\fi#1}
+\def\bbl@exp#1{%
+ \begingroup
+ \let\\\noexpand
+ \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
+ \edef\bbl@exp@aux{\endgroup#1}%
+ \bbl@exp@aux}
\def\bbl@tempa#1{%
\long\def\bbl@trim##1##2{%
\futurelet\bbl@trim@a\bbl@trim@c##2\@nil\@nil#1\@nil\relax{##1}}%
@@ -187,9 +194,10 @@
\fi}%
\expandafter\bbl@replace@aux#1#2\bbl@nil#2%
\edef#1{\the\toks@}}
-\expandafter\def\expandafter\bbl@parsedef\detokenize{macro:}#1->#2\relax{%
+\bbl@exp{\def\\\bbl@parsedef##1\detokenize{macro:}}#2->#3\relax{%
\def\bbl@tempa{#1}%
- \def\bbl@tempb{#2}}
+ \def\bbl@tempb{#2}%
+ \def\bbl@tempe{#3}}
\def\bbl@sreplace#1#2#3{%
\begingroup
\expandafter\bbl@parsedef\meaning#1\relax
@@ -197,18 +205,20 @@
\edef\bbl@tempc{\expandafter\strip@prefix\meaning\bbl@tempc}%
\def\bbl@tempd{#3}%
\edef\bbl@tempd{\expandafter\strip@prefix\meaning\bbl@tempd}%
- \bbl@exp{\\\bbl@replace\\\bbl@tempb{\bbl@tempc}{\bbl@tempd}}%
- \bbl@exp{%
+ \bbl@xin@{\bbl@tempc}{\bbl@tempe}% If not in macro, do nothing
+ \ifin@
+ \bbl@exp{\\\bbl@replace\\\bbl@tempe{\bbl@tempc}{\bbl@tempd}}%
+ \def\bbl@tempc{% Expanded an executed below as 'uplevel'
+ \\\makeatletter % "internal" macros with @ are assumed
+ \\\scantokens{%
+ \bbl@tempa\\\@namedef{\bbl@stripslash#1}\bbl@tempb{\bbl@tempe}}%
+ \catcode64=\the\catcode64\relax}% Restore @
+ \else
+ \let\bbl@tempc\@empty % Not \relax
+ \fi
+ \bbl@exp{% For the 'uplevel' assignments
\endgroup
- \\\makeatletter % "internal" macros with @ are assumed
- \\\scantokens{\def\\#1\bbl@tempa{\bbl@tempb}}%
- \catcode64=\the\catcode64\relax}} % Restore @
-\def\bbl@exp#1{%
- \begingroup
- \let\\\noexpand
- \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
- \edef\bbl@exp@aux{\endgroup#1}%
- \bbl@exp@aux}
+ \bbl@tempc}} % empty or expand to set #1 with changes
\def\bbl@ifsamestring#1#2{%
\begingroup
\protected@edef\bbl@tempb{#1}%
@@ -288,7 +298,8 @@
everylanguage=1,loadkernel=1,loadpatterns=1,loadexceptions=1,%
adddialect=2,patterns=2,defaultcommands=0,encodedcommands=2,write=0,%
beforeextras=0,afterextras=0,stopcommands=0,stringprocess=0,%
- hyphenation=2,initiateactive=3,afterreset=0,foreign=0,foreign*=0}
+ hyphenation=2,initiateactive=3,afterreset=0,foreign=0,foreign*=0,%
+ beforestart=0}
\bbl@trace{Defining babelensure}
\newcommand\babelensure[2][]{% TODO - revise test files
\AddBabelHook{babel-ensure}{afterextras}{%
@@ -405,8 +416,22 @@
\bbl@id@assign
\chardef\localeid\@nameuse{bbl@id@@\languagename}%
\bbl@patterns{\languagename}}
+\def\bbl@beforestart{%
+ \bbl@usehooks{beforestart}{}%
+ \global\let\bbl@beforestart\relax}
\AtBeginDocument{%
+ \bbl@beforestart
+ \if@filesw
+ \immediate\write\@mainaux{%
+ % \let\string\bbl@nostdfont\string\@gobble
+ \string\bbl@beforestart}%
+ \fi
\expandafter\selectlanguage\expandafter{\bbl@main@language}%
+ \ifbbl@single % must go after the line above
+ \renewcommand\selectlanguage[1]{}%
+ \renewcommand\foreignlanguage[2]{#2}%
+ \global\let\babel@aux\@gobbletwo % Also as flag
+ \fi
\ifcase\bbl@engine\or\pagedir\bodydir\fi} % TODO - a better place
\def\select@language@x#1{%
\ifcase\bbl@select@type
@@ -473,7 +498,7 @@
\expandafter\let\csname normal@char#2\endcsname#3%
\else
\bbl@info{Making #2 an active character}%
- \ifnum\mathcode`#2="8000
+ \ifnum\mathcode`#2=\ifodd\bbl@engine"1000000 \else"8000 \fi
\@namedef{normal@char#2}{%
\textormath{#3}{\csname bbl@oridef@@#2\endcsname}}%
\else
@@ -1551,8 +1576,10 @@
\catcode`\@=\atcatcode
\let\atcatcode\relax
\fi}%
- \let\languagename\bbl@savelangname
- \chardef\localeid\bbl@savelocaleid\relax}
+ \ifx\bbl@KVP@main\@nil % Restore only if not 'main'
+ \let\languagename\bbl@savelangname
+ \chardef\localeid\bbl@savelocaleid\relax
+ \fi}
\def\bbl@setdigits#1#2#3#4#5{%
\bbl@exp{%
\def\<\languagename digits>####1{% ie, \langdigits
@@ -1682,6 +1709,15 @@
\let\bbl@savestrings\@empty
\let\bbl@savetoday\@empty
\let\bbl@savedate\@empty
+ \def\bbl@inipreread##1=##2\@@{%
+ \bbl@trim@def\bbl@tempa{##1}% Redundant below !!
+ % Move trims here ??
+ \bbl@ifunset{bbl@KVP@\bbl@section/\bbl@tempa}%
+ {\expandafter\bbl@inireader\bbl@tempa=##2\@@}%
+ {\def\bbl@tempc{\expandafter\bbl@inireader\bbl@tempa=}%
+ \expandafter\expandafter\expandafter
+ \bbl@tempc\csname bbl@KVP@\bbl@section/\bbl@tempa\endcsname\@@}%
+ \global\bbl@csarg\let{KVP@\bbl@section/\bbl@tempa}\relax}%
\let\bbl@inireader\bbl@iniskip
\bbl@info{Importing data from babel-#1.ini for \languagename}%
\loop
@@ -1695,7 +1731,7 @@
\repeat
\fi}
\def\bbl@iniline#1\bbl@iniline{%
- \@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inireader}#1\@@}% ]
+ \@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inipreread}#1\@@}% ]
\def\bbl@iniskip#1\@@{}% if starts with ;
\def\bbl@inisec[#1]#2\@@{% if starts with opening bracket
\@nameuse{bbl@secpost@\bbl@section}% ends previous section
@@ -1860,6 +1896,7 @@
\bbl@add\bbl@secpost@identification{\closein1 }%
\catcode`\[=12 \catcode`\]=12 \catcode`\==12 %
\bbl@read@ini{##1}%
+ \endinput
\endgroup}% boxed, to avoid extra spaces:
{\setbox\z@\hbox{\InputIfFileExists{babel-#1.tex}{}{}}}}
{\def\format{lplain}
@@ -1959,30 +1996,32 @@
\edef\thepage{%
\noexpand\babelsublr{\unexpanded\expandafter{\thepage}}}}%
\fi}
- {\bbl@redefine\markright#1{%
- \bbl@ifblank{#1}%
- {\org@markright{}}%
- {\toks@{#1}%
- \bbl@exp{%
- \\\org@markright{\\\protect\\\foreignlanguage{\languagename}%
- {\\\protect\\\bbl@restore@actives\the\toks@}}}}}%
- \ifx\@mkboth\markboth
- \def\bbl@tempc{\let\@mkboth\markboth}
- \else
- \def\bbl@tempc{}
- \fi
- \bbl@redefine\markboth#1#2{%
- \protected@edef\bbl@tempb##1{%
- \protect\foreignlanguage
- {\languagename}{\protect\bbl@restore@actives##1}}%
- \bbl@ifblank{#1}%
- {\toks@{}}%
- {\toks@\expandafter{\bbl@tempb{#1}}}%
- \bbl@ifblank{#2}%
- {\@temptokena{}}%
- {\@temptokena\expandafter{\bbl@tempb{#2}}}%
- \bbl@exp{\\\org@markboth{\the\toks@}{\the\@temptokena}}}
- \bbl@tempc} % end \IfBabelLayout
+ {\ifbbl@single\else
+ \bbl@redefine\markright#1{%
+ \bbl@ifblank{#1}%
+ {\org@markright{}}%
+ {\toks@{#1}%
+ \bbl@exp{%
+ \\\org@markright{\\\protect\\\foreignlanguage{\languagename}%
+ {\\\protect\\\bbl@restore@actives\the\toks@}}}}}%
+ \ifx\@mkboth\markboth
+ \def\bbl@tempc{\let\@mkboth\markboth}
+ \else
+ \def\bbl@tempc{}
+ \fi
+ \bbl@redefine\markboth#1#2{%
+ \protected@edef\bbl@tempb##1{%
+ \protect\foreignlanguage
+ {\languagename}{\protect\bbl@restore@actives##1}}%
+ \bbl@ifblank{#1}%
+ {\toks@{}}%
+ {\toks@\expandafter{\bbl@tempb{#1}}}%
+ \bbl@ifblank{#2}%
+ {\@temptokena{}}%
+ {\@temptokena\expandafter{\bbl@tempb{#2}}}%
+ \bbl@exp{\\\org@markboth{\the\toks@}{\the\@temptokena}}}
+ \bbl@tempc
+ \fi} % end ifbbl@single, end \IfBabelLayout
\bbl@trace{Preventing clashes with other packages}
\bbl@xin@{R}\bbl@opt@safe
\ifin@