summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/babel/babel.def
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-06-10 20:48:38 +0000
committerKarl Berry <karl@freefriends.org>2020-06-10 20:48:38 +0000
commit85878cf11e12b9a4ac55697441a25486f33b246a (patch)
tree56ceda8ea23a67af9e1a2071ae14e7d6ab1e3708 /Master/texmf-dist/tex/generic/babel/babel.def
parentab2350d84cd86ce4be11206a765c6625e5cc2e5f (diff)
babel (10jun20)
git-svn-id: svn://tug.org/texlive/trunk@55508 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/babel/babel.def')
-rw-r--r--Master/texmf-dist/tex/generic/babel/babel.def141
1 files changed, 90 insertions, 51 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 7db59afba5b..da5a58ba7ce 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -39,7 +39,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2020/05/13 3.44 Babel common definitions]
+\ProvidesFile{babel.def}[2020/06/10 3.45 Babel common definitions]
\ifx\AtBeginDocument\@undefined % TODO. change test.
% == Code for plain ==
\def\@empty{}
@@ -399,22 +399,10 @@
\ifx\language\@undefined
\csname newcount\endcsname\language
\fi
-\ifx\newlanguage\@undefined
- \csname newcount\endcsname\last@language
- \def\addlanguage#1{%
- \global\advance\last@language\@ne
- \ifnum\last@language<\@cclvi
- \else
- \errmessage{No room for a new \string\language!}%
- \fi
- \global\chardef#1\last@language
- \wlog{\string#1 = \string\language\the\last@language}}
-\else
- \countdef\last@language=19
- \def\addlanguage{\alloc@9\language\chardef\@cclvi}
-\fi
-\def\bbl@version{3.44}
-\def\bbl@date{2020/05/13}
+\countdef\last@language=19 % TODO. why? remove?
+\def\addlanguage{\csname newlanguage\endcsname}
+\def\bbl@version{3.45}
+\def\bbl@date{2020/06/10}
\def\adddialect#1#2{%
\global\chardef#1#2\relax
\bbl@usehooks{adddialect}{{#1}{#2}}%
@@ -734,7 +722,7 @@
\expandafter\noexpand\csname foreignlanguage \endcsname}
\expandafter\def\csname foreignlanguage \endcsname{%
\@ifstar\bbl@foreign@s\bbl@foreign@x}
-\newcommand\bbl@foreign@x[3][]{%
+\providecommand\bbl@foreign@x[3][]{%
\begingroup
\def\bbl@select@opts{#1}%
\let\BabelText\@firstofone
@@ -1265,6 +1253,9 @@
\AtBeginDocument{%
\@nameuse{bbl@beforestart}%
\if@filesw
+ \providecommand\babel@aux[2]{}%
+ \immediate\write\@mainaux{%
+ \string\providecommand\string\babel@aux[2]{}}%
\immediate\write\@mainaux{\string\@nameuse{bbl@beforestart}}%
\fi
\expandafter\selectlanguage\expandafter{\bbl@main@language}%
@@ -2550,6 +2541,7 @@
\bbl@exp{%
\def\<\languagename digits>####1{% ie, \langdigits
\<bbl@digits@\languagename>####1\\\@nil}%
+ \let\<bbl@cntr@digits@\languagename>\<\languagename digits>%
\def\<\languagename counter>####1{% ie, \langcounter
\\\expandafter\<bbl@counter@\languagename>%
\\\csname c@####1\endcsname}%
@@ -2760,7 +2752,28 @@
\global\bbl@csarg\let{renew@\bbl@section}\relax
\bbl@cs{secpost@\bbl@section}%
% The previous code belongs to the previous section.
+ % --------------------------
% Now start the current one.
+ \in@{=date.}{=#1}%
+ \ifin@
+ \lowercase{\def\bbl@tempa{=#1=}}%
+ \bbl@replace\bbl@tempa{=date.gregorian}{}%
+ \bbl@replace\bbl@tempa{=date.}{}%
+ \in@{.licr=}{#1=}%
+ \ifin@
+ \ifcase\bbl@engine
+ \bbl@replace\bbl@tempa{.licr=}{}%
+ \else
+ \let\bbl@tempa\relax
+ \fi
+ \fi
+ \ifx\bbl@tempa\relax\else
+ \bbl@replace\bbl@tempa{=}{}%
+ \bbl@exp{%
+ \def\<bbl@inikv@#1>####1=####2\\\@@{%
+ \\\bbl@inidate####1...\relax{####2}{\bbl@tempa}}}%
+ \fi
+ \fi
\def\bbl@section{#1}%
\def\bbl@elt##1##2{%
\@namedef{bbl@KVP@#1/##1}{}}%
@@ -2870,45 +2883,70 @@
\bbl@exp{%
\\\bbl@add\\\bbl@savestrings{%
\\\SetString\<\bbl@tempa name>{\the\toks@}}}}
-\bbl@csarg\def{inikv@date.gregorian}#1=#2\@@{% for defaults
- \bbl@inidate#1...\relax{#2}{}}
-\bbl@csarg\def{inikv@date.islamic}#1=#2\@@{%
- \bbl@inidate#1...\relax{#2}{islamic}}
-\bbl@csarg\def{inikv@date.hebrew}#1=#2\@@{%
- \bbl@inidate#1...\relax{#2}{hebrew}}
-\bbl@csarg\def{inikv@date.persian}#1=#2\@@{%
- \bbl@inidate#1...\relax{#2}{persian}}
-\bbl@csarg\def{inikv@date.indian}#1=#2\@@{%
- \bbl@inidate#1...\relax{#2}{indian}}
-\ifcase\bbl@engine
- \bbl@csarg\def{inikv@date.gregorian.licr}#1=#2\@@{% override
- \bbl@inidate#1...\relax{#2}{}}
- \bbl@csarg\def{secpre@date.gregorian.licr}{% discard uni
- \ifcase\bbl@engine\let\bbl@savedate\@empty\fi}
-\fi
-\newcommand\localedate{\@nameuse{bbl@date@\languagename}}
+\let\bbl@calendar\@empty
+\DeclareRobustCommand\localedate[1][]{\bbl@localedate{#1}}
+\def\bbl@cased{% TODO. Move
+ \ifx\oe\OE
+ \expandafter\in@\expandafter
+ {\expandafter\OE\expandafter}\expandafter{\oe}%
+ \ifin@
+ \bbl@afterelse\expandafter\MakeUppercase
+ \else
+ \bbl@afterfi\expandafter\MakeLowercase
+ \fi
+ \else
+ \expandafter\@firstofone
+ \fi}
+\def\bbl@localedate#1#2#3#4{%
+ \begingroup
+ \ifx\@empty#1\@empty\else
+ \let\bbl@ld@calendar\@empty
+ \let\bbl@ld@variant\@empty
+ \edef\bbl@tempa{\zap@space#1 \@empty}%
+ \def\bbl@tempb##1=##2\@@{\@namedef{bbl@ld@##1}{##2}}%
+ \bbl@foreach\bbl@tempa{\bbl@tempb##1\@@}%
+ \edef\bbl@calendar{%
+ \bbl@ld@calendar
+ \ifx\bbl@ld@variant\@empty\else
+ .\bbl@ld@variant
+ \fi}%
+ \bbl@replace\bbl@calendar{gregorian}{}%
+ \fi
+ \bbl@cased
+ {\@nameuse{bbl@date@\languagename @\bbl@calendar}{#2}{#3}{#4}}%
+ \endgroup}
\def\bbl@inidate#1.#2.#3.#4\relax#5#6{% TODO - ignore with 'captions'
\bbl@trim@def\bbl@tempa{#1.#2}%
\bbl@ifsamestring{\bbl@tempa}{months.wide}% to savedate
{\bbl@trim@def\bbl@tempa{#3}%
\bbl@trim\toks@{#5}%
- \bbl@exp{%
- \\\bbl@add\\\bbl@savedate{%
- \\\SetString\<month\romannumeral\bbl@tempa#6name>{\the\toks@}}}}%
+ \@temptokena\expandafter{\bbl@savedate}%
+ \bbl@exp{% Reverse order - in ini last wins
+ \def\\\bbl@savedate{%
+ \\\SetString\<month\romannumeral\bbl@tempa#6name>{\the\toks@}%
+ \the\@temptokena}}}%
{\bbl@ifsamestring{\bbl@tempa}{date.long}% defined now
- {\bbl@trim@def\bbl@toreplace{#5}%
+ {\lowercase{\def\bbl@tempb{#6}}%
+ \bbl@trim@def\bbl@toreplace{#5}%
\bbl@TG@@date
- \global\bbl@csarg\let{date@\languagename}\bbl@toreplace
- \bbl@exp{%
- \gdef\<\languagename date>{\\\protect\<\languagename date >}%
- \gdef\<\languagename date >####1####2####3{%
- \\\bbl@usedategrouptrue
- \<bbl@ensure@\languagename>{%
- \<bbl@date@\languagename>{####1}{####2}{####3}}}%
- \\\bbl@add\\\bbl@savetoday{%
- \\\SetString\\\today{%
- \<\languagename date>{\\\the\year}{\\\the\month}{\\\the\day}}}}}}%
- {}}
+ \bbl@ifunset{bbl@date@\languagename @}%
+ {\global\bbl@csarg\let{date@\languagename @}\bbl@toreplace
+ % TODO. Move to a better place.
+ \bbl@exp{%
+ \gdef\<\languagename date>{\\\protect\<\languagename date >}%
+ \gdef\<\languagename date >####1####2####3{%
+ \\\bbl@usedategrouptrue
+ \<bbl@ensure@\languagename>{%
+ \\\localedate{####1}{####2}{####3}}}%
+ \\\bbl@add\\\bbl@savetoday{%
+ \\\SetString\\\today{%
+ \<\languagename date>%
+ {\\\the\year}{\\\the\month}{\\\the\day}}}}}%
+ {}%
+ \ifx\bbl@tempb\@empty\else
+ \global\bbl@csarg\let{date@\languagename @\bbl@tempb}\bbl@toreplace
+ \fi}%
+ {}}}
\let\bbl@calendar\@empty
\newcommand\BabelDateSpace{\nobreakspace}
\newcommand\BabelDateDot{.\@}
@@ -2988,7 +3026,8 @@
\newcommand\localenumeral[2]{\bbl@cs{cntr@#1@\languagename}{#2}}
\def\bbl@localecntr#1#2{\localenumeral{#2}{#1}}
\newcommand\localecounter[2]{%
- \expandafter\bbl@localecntr\csname c@#2\endcsname{#1}}
+ \expandafter\bbl@localecntr
+ \expandafter{\number\csname c@#2\endcsname}{#1}}
\def\bbl@alphnumeral#1#2{%
\expandafter\bbl@alphnumeral@i\number#2 76543210\@@{#1}}
\def\bbl@alphnumeral@i#1#2#3#4#5#6#7#8\@@#9{%