[latex3-commits] [git/LaTeX3-latex3-babel] master: Refactoring the ini reader. (81c1073)
Javier
email at dante.de
Tue Feb 2 18:09:34 CET 2021
Repository : https://github.com/latex3/babel
On branch : master
Link : https://github.com/latex3/babel/commit/81c10730e88f2049a6b8d1be12eb51b61175ed46
>---------------------------------------------------------------
commit 81c10730e88f2049a6b8d1be12eb51b61175ed46
Author: Javier <email at localhost>
Date: Tue Feb 2 18:09:34 2021 +0100
Refactoring the ini reader.
>---------------------------------------------------------------
81c10730e88f2049a6b8d1be12eb51b61175ed46
README.md | 12 ++-
babel.dtx | 303 +++++++++++++++++++++++++++++++----------------------------
babel.ins | 2 +-
babel.pdf | Bin 815772 -> 816631 bytes
bbcompat.dtx | 2 +-
5 files changed, 169 insertions(+), 150 deletions(-)
diff --git a/README.md b/README.md
index 0f4bfe0..a882f10 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-## Babel 3.53
+## Babel 3.53.2271
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -7,9 +7,9 @@ lualatex out of the box. A few even work with plain formats.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.53 are described in:
+Changes in version 3.54 are described in:
-https://github.com/latex3/babel/wiki/What's-new-in-babel-3.53
+https://github.com/latex3/babel/wiki/What's-new-in-babel-3.54
Included is a set of ini files for about 250 languages.
@@ -43,7 +43,10 @@ respective authors.
### Latest changes
```
-3.53 2021-01-??
+3.54 2021-02-??
+ *
+
+3.53 2021-01-26
* Extended \setlocalecaption to allow .template (related to
#111).
* Allow access to some features in `ini` files even with `ldf`
@@ -55,6 +58,7 @@ respective authors.
bidi in lua.
- Parenthesis sometimes mirrored at the end of math with
bidi=basic.
+https://github.com/latex3/babel/wiki/What's-new-in-babel-3.53
3.52 2020-12-16
* WARNING. If you need the style for Afrikaans you must update
diff --git a/babel.dtx b/babel.dtx
index 1a19d9f..48b318c 100644
--- a/babel.dtx
+++ b/babel.dtx
@@ -31,7 +31,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2021/01/26 v3.53 The Babel package]
+\ProvidesFile{babel.dtx}[2021/02/02 v3.53.2271 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -4851,8 +4851,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.53>>
-%<<date=2021/01/26>>
+%<<version=3.53.2271>>
+%<<date=2021/02/02>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -10667,6 +10667,7 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl at KVP@Alph\@nil
\let\bbl at KVP@labels\@nil
\bbl at csarg\let{KVP at labels*}\@nil
+ \global\let\bbl at inidata\@empty
\bbl at forkv{#1}{% TODO - error handling
\in@{/}{##1}%
\ifin@
@@ -10732,7 +10733,8 @@ help from Bernd Raichle, for which I am grateful.
% ==
% At this point all parameters are defined if 'import'. Now we
% execute some code depending on them. But what about if nothing was
- % imported? We just set the very basic parameters.
+ % imported? We just set the basic parameters, but still loading the
+ % whole ini file.
\bbl at load@basic{#2}%
% == script, language ==
% Override the values from ini or defines them
@@ -10974,12 +10976,10 @@ help from Bernd Raichle, for which I am grateful.
\expandafter\bbl at tempb\bbl at captionslist\@empty
\else
\ifx\bbl at initoload\relax
- \bbl at read@ini{\bbl at KVP@captions}0% Here letters cat = 11
+ \bbl at read@ini{\bbl at KVP@captions}2% % Here letters cat = 11
\else
- \bbl at read@ini{\bbl at initoload}0% Here all letters cat = 11
+ \bbl at read@ini{\bbl at initoload}2% % Same
\fi
- \bbl at after@ini
- \bbl at savestrings
\fi
\StartBabelCommands*{#1}{date}%
\ifx\bbl at KVP@import\@nil
@@ -11031,9 +11031,7 @@ help from Bernd Raichle, for which I am grateful.
\def\bbl at provide@renew#1{%
\ifx\bbl at KVP@captions\@nil\else
\StartBabelCommands*{#1}{captions}%
- \bbl at read@ini{\bbl at KVP@captions}0% Here all letters cat = 11
- \bbl at after@ini
- \bbl at savestrings
+ \bbl at read@ini{\bbl at KVP@captions}2% % Here all letters cat = 11
\EndBabelCommands
\fi
\ifx\bbl at KVP@import\@nil\else
@@ -11050,20 +11048,10 @@ help from Bernd Raichle, for which I am grateful.
% more), while captions and dates are left out. But it may happen some
% data has been loaded before automatically, so we first discard the
% saved values.
-\def\bbl at linebreak@export{%
- \bbl at exportkey{lnbrk}{typography.linebreaking}{h}%
- \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
- \bbl at exportkey{lfthm}{typography.lefthyphenmin}{2}%
- \bbl at exportkey{rgthm}{typography.righthyphenmin}{3}%
- \bbl at exportkey{prehc}{typography.prehyphenchar}{}%
- \bbl at exportkey{hyotl}{typography.hyphenate.other.locale}{}%
- \bbl at exportkey{hyots}{typography.hyphenate.other.script}{}%
- \bbl at exportkey{intsp}{typography.intraspace}{}%
- \bbl at exportkey{chrng}{characters.ranges}{}}
\def\bbl at load@basic#1{%
\bbl at ifunset{bbl at inidata@\languagename}{}%
{\getlocaleproperty\bbl at tempa{\languagename}{identification/load.level}%
- \ifcase\bbl at tempa\else
+ \ifcase\bbl at tempa
\bbl at csarg\let{lname@\languagename}\relax
\fi}%
\bbl at ifunset{bbl at lname@#1}%
@@ -11071,10 +11059,7 @@ help from Bernd Raichle, for which I am grateful.
\begingroup
\let\bbl at ini@captions at aux\@gobbletwo
\def\bbl at inidate ####1.####2.####3.####4\relax ####5####6{}%
- \bbl at read@ini{##1}0%
- \bbl at linebreak@export
- \bbl at exportkey{dgnat}{numbers.digits.native}{}%
- \bbl at exportkey{frspc}{typography.frenchspacing}{u}% unset
+ \bbl at read@ini{##1}1%
\ifx\bbl at initoload\relax\endinput\fi
\endgroup}%
\begingroup % boxed, to avoid extra spaces:
@@ -11126,14 +11111,10 @@ help from Bernd Raichle, for which I am grateful.
{\bbl at exp{\\\adddialect\<l@#1>\bbl at tempa}}}% found in opt list or ini
% \end{macrocode}
%
-% The reader of |ini| files. There are 3 possible cases: a section name
-% (in the form |[...]|), a comment (starting with |;|) and a
-% key/value pair.
+% The reader of |babel-...tex| files. We reset temporarily some
+% catcodes.
%
% \begin{macrocode}
-\ifx\bbl at readstream\@undefined
- \csname newread\endcsname\bbl at readstream
-\fi
\def\bbl at input@texini#1{%
\bbl at bsphack
\bbl at exp{%
@@ -11145,20 +11126,51 @@ help from Bernd Raichle, for which I am grateful.
\catcode`\\\{=\the\catcode`\{\relax
\catcode`\\\}=\the\catcode`\}\relax}%
\bbl at esphack}
-\def\bbl at inipreread#1=#2\@@{%
- \bbl at trim@def\bbl at tempa{#1}% Redundant below !!
+% \end{macrocode}
+%
+% The following macros read and store |ini| files (but don't process
+% them). For each line, there are 3 possible actions: ignore if starts
+% with |;|, switch section if starts with |[|, and store otherwise.
+% There are used in the first step of |\bbl at read@ini|.
+%
+% \begin{macrocode}
+\def\bbl at iniline#1\bbl at iniline{%
+ \@ifnextchar[\bbl at inisect{\@ifnextchar;\bbl at iniskip\bbl at inistore}#1\@@}% ]
+\def\bbl at inisect[#1]#2\@@{\def\bbl at section{#1}}%
+\def\bbl at iniskip#1\@@{}% if starts with ;
+\def\bbl at inistore#1=#2\@@{% full (default)
+ \bbl at trim@def\bbl at tempa{#1}%
\bbl at trim\toks@{#2}%
- % Move trims here ??
\bbl at ifunset{bbl at KVP@\bbl at section/\bbl at tempa}%
{\bbl at exp{%
- \\\g at addto@macro\\\bbl at inidata{%
- \\\bbl at elt{\bbl at section}{\bbl at tempa}{\the\toks@}}}%
- \expandafter\bbl at inireader\bbl at tempa=#2\@@}%
+ \\\g at addto@macro\\\bbl at inidata{%
+ \\\bbl at elt{\bbl at section}{\bbl at tempa}{\the\toks@}}}}%
{}}%
-\def\bbl at fetch@ini#1#2{%
- \bbl at exp{\def\\\bbl at inidata{%
- \\\bbl at elt{identification}{tag.ini}{#1}%
- \\\bbl at elt{identification}{load.level}{#2}}}%
+\def\bbl at inistore@min#1=#2\@@{% minimal (maybe set in \bbl at read@ini)
+ \bbl at trim@def\bbl at tempa{#1}%
+ \bbl at trim\toks@{#2}%
+ \bbl at xin@{.identification.}{.\bbl at section.}%
+ \ifin@
+ \bbl at exp{\\\g at addto@macro\\\bbl at inidata{%
+ \\\bbl at elt{identification}{\bbl at tempa}{\the\toks@}}}%
+ \fi}%
+% \end{macrocode}
+%
+% Now, the ‘main loop’, which \textbf{**must be executed inside a
+% group**}. At this point, |\bbl at inidata| may contain data declared in
+% |\babelprovide|, with ‘slashed’ keys. There are 3 steps: first read
+% the ini file and store it; then traverse the stored values, and
+% process some groups if required (date, captions, labels, counters);
+% finally, ‘export’ some values by defining global macros
+% (identification, typography, characters, numbers). The second
+% argument is 0 when called to read the minimal data for fonts; with
+% |\babelprovide| it's either 1 or 2.
+%
+% \begin{macrocode}
+\ifx\bbl at readstream\@undefined
+ \csname newread\endcsname\bbl at readstream
+\fi
+\def\bbl at read@ini#1#2{%
\openin\bbl at readstream=babel-#1.ini
\ifeof\bbl at readstream
\bbl at error
@@ -11167,12 +11179,20 @@ help from Bernd Raichle, for which I am grateful.
is not complete.}%
{Fix the name or reinstall babel.}%
\else
+ % Store ini data in \bbl at inidata
\catcode`\[=12 \catcode`\]=12 \catcode`\==12 \catcode`\&=12
\catcode`\;=12 \catcode`\|=12 \catcode`\%=14 \catcode`\-=12
\bbl at info{Importing
- \ifcase#2 \or font and identification \or basic \fi
- data for \languagename\\%
+ \ifcase#2font and identification \or basic \fi
+ data for \languagename\\%
from babel-#1.ini. Reported}%
+ \ifnum#2=\z@
+ \global\let\bbl at inidata\@empty
+ \let\bbl at inistore\bbl at inistore@min % Remember it's local
+ \fi
+ \def\bbl at section{identification}%
+ \bbl at exp{\\\bbl at inistore tag.ini=#1\\\@@}%
+ \bbl at inistore load.level=#2\@@
\loop
\if T\ifeof\bbl at readstream F\fi T\relax % Trick, because inside \loop
\endlinechar\m at ne
@@ -11182,95 +11202,68 @@ help from Bernd Raichle, for which I am grateful.
\expandafter\bbl at iniline\bbl at line\bbl at iniline
\fi
\repeat
+ % Process stored data
+ \bbl at csarg\xdef{lini@\languagename}{#1}%
+ \let\bbl at savestrings\@empty
+ \let\bbl at savetoday\@empty
+ \let\bbl at savedate\@empty
+ \def\bbl at elt##1##2##3{%
+ \def\bbl at section{##1}%
+ \in@{=date.}{=##1}% Find a better place
+ \ifin@
+ \bbl at ini@calendar{##1}%
+ \fi
+ \global\bbl at csarg\let{bbl at KVP@##1/##2}\relax
+ \bbl at ifunset{bbl at inikv@##1}{}%
+ {\csname bbl at inikv@##1\endcsname{##2}{##3}}}%
+ \bbl at inidata
+ % 'Export' data
+ \bbl at ini@exports{#2}%
+ \global\bbl at csarg\let{inidata@\languagename}\bbl at inidata
+ \global\let\bbl at inidata\@empty
+ \bbl at exp{\\\bbl at add@list\\\bbl at ini@loaded{\languagename}}%
+ \bbl at toglobal\bbl at ini@loaded
\fi}
-\def\bbl at read@ini#1#2{%
- \bbl at csarg\xdef{lini@\languagename}{#1}%
- \let\bbl at section\@empty
- \let\bbl at savestrings\@empty
- \let\bbl at savetoday\@empty
- \let\bbl at savedate\@empty
- \let\bbl at inireader\bbl at iniskip
- \bbl at fetch@ini{#1}{#2}%
- \bbl at foreach\bbl at renewlist{%
- \bbl at ifunset{bbl at renew@##1}{}{\bbl at inisec[##1]\@@}}%
- \global\let\bbl at renewlist\@empty
- % Ends last section. See \bbl at inisec
- \def\bbl at elt##1##2{\bbl at inireader##1=##2\@@}%
- \bbl at cs{renew@\bbl at section}%
- \global\bbl at csarg\let{renew@\bbl at section}\relax
- \bbl at cs{secpost@\bbl at section}%
- \bbl at csarg{\global\expandafter\let}{inidata@\languagename}\bbl at inidata
- \bbl at exp{\\\bbl at add@list\\\bbl at ini@loaded{\languagename}}%
- \bbl at toglobal\bbl at ini@loaded}
-\def\bbl at iniline#1\bbl at iniline{%
- \@ifnextchar[\bbl at inisec{\@ifnextchar;\bbl at iniskip\bbl at inipreread}#1\@@}% ]
% \end{macrocode}
%
-% The special cases for comment lines and sections are handled by the
-% two following commands. In sections, we provide the posibility to
-% take extra actions at the end or at the start. By default, key=val
-% pairs are ignored. The |secpost| ``hook'' is used only by
-% `identification', while |secpre| only by |date.gregorian.licr|.
+% A somewhat hackish tool to handle calendar sections. To be improved.
%
% \begin{macrocode}
-\def\bbl at iniskip#1\@@{}% if starts with ;
-\def\bbl at inisec[#1]#2\@@{% if starts with opening bracket
- \def\bbl at elt##1##2{%
- \expandafter\toks@\expandafter{%
- \expandafter{\bbl at section}{##1}{##2}}%
- \bbl at exp{%
- \\\g at addto@macro\\\bbl at inidata{\\\bbl at elt\the\toks@}}%
- \bbl at inireader##1=##2\@@}%
- \bbl at cs{renew@\bbl at section}%
- \global\bbl at csarg\let{renew@\bbl at section}\relax
- \bbl at cs{secpost@\bbl at section}%
- % The previous code belongs to the previous section.
- % --------------------------
- % Now start the current one.
- \in@{=date.}{=#1}%
- \ifin@
- \lowercase{\def\bbl at tempa{=#1=}}%
- \bbl at replace\bbl at tempa{=date.gregorian}{}%
- \bbl at replace\bbl at tempa{=date.}{}%
- \in@{.licr=}{#1=}%
- \ifin@
- \ifcase\bbl at engine
- \bbl at replace\bbl at tempa{.licr=}{}%
- \else
- \let\bbl at tempa\relax
- \fi
- \fi
- \ifx\bbl at tempa\relax\else
- \bbl at replace\bbl at tempa{=}{}%
- \bbl at exp{%
- \def\<bbl at inikv@#1>####1=####2\\\@@{%
- \\\bbl at inidate####1...\relax{####2}{\bbl at tempa}}}%
- \fi
- \fi
- \def\bbl at section{#1}%
- \def\bbl at elt##1##2{%
- \@namedef{bbl at KVP@#1/##1}{}}%
- \bbl at cs{renew@#1}%
- \bbl at cs{secpre@#1}% pre-section `hook'
- \bbl at ifunset{bbl at inikv@#1}%
- {\let\bbl at inireader\bbl at iniskip}%
- {\bbl at exp{\let\\\bbl at inireader\<bbl at inikv@#1>}}}
-\let\bbl at renewlist\@empty
-\def\bbl at renewinikey#1/#2\@@#3{%
- \bbl at ifunset{bbl at renew@#1}%
- {\bbl at add@list\bbl at renewlist{#1}}%
- {}%
- \bbl at csarg\bbl at add{renew@#1}{\bbl at elt{#2}{#3}}}
+\def\bbl at ini@calendar#1{%
+ \lowercase{\def\bbl at tempa{=#1=}}%
+ \bbl at replace\bbl at tempa{=date.gregorian}{}%
+ \bbl at replace\bbl at tempa{=date.}{}%
+ \in@{.licr=}{#1=}%
+ \ifin@
+ \ifcase\bbl at engine
+ \bbl at replace\bbl at tempa{.licr=}{}%
+ \else
+ \let\bbl at tempa\relax
+ \fi
+ \fi
+ \ifx\bbl at tempa\relax\else
+ \bbl at replace\bbl at tempa{=}{}%
+ \bbl at exp{%
+ \def\<bbl at inikv@#1>####1####2{%
+ \\\bbl at inidate####1...\relax{####2}{\bbl at tempa}}}%
+ \fi}
% \end{macrocode}
%
-% Reads a key=val line and stores the trimmed val in
-% |\bbl@@kv@<section>.<key>|.
+% A key with a slash in |\babelprovide| replaces the value in the |ini|
+% file (which is ignored altogether). The mechanism is simple: add the
+% data to the |ini| one (at this point the |ini| file has not yet been
+% read), and define a macro with the value. When the |ini| file is
+% read, just skip the corresponding key (in |\bbl at inistore| above).
%
% \begin{macrocode}
-\def\bbl at inikv#1=#2\@@{% key=value
- \bbl at trim@def\bbl at tempa{#1}%
- \bbl at trim\toks@{#2}%
- \bbl at csarg\edef{@kv@\bbl at section.\bbl at tempa}{\the\toks@}}
+\def\bbl at renewinikey#1/#2\@@#3{%
+ \edef\bbl at tempa{\zap at space #1 \@empty}% section
+ \edef\bbl at tempb{\zap at space #2 \@empty}% key
+ \bbl at trim\toks@{#3}% value
+ \bbl at exp{%
+ \global\let\<bbl at KVP@\bbl at tempa/\bbl at tempb>\\\@empty % just a flag
+ \\\g at addto@macro\\\bbl at inidata{%
+ \\\bbl at elt{\bbl at tempa}{\bbl at tempb}{\the\toks@}}}}%
% \end{macrocode}
%
% The previous assignments are local, so we need to export them. If
@@ -11289,7 +11282,7 @@ help from Bernd Raichle, for which I am grateful.
%
% Key-value pairs are treated differently depending on the section in
% the |ini| file. The following macros are the readers for
-% |identification| and |typography|. Note |\bbl at secpost@identification|
+% |identification| and |typography|. Note |\bbl at ini@exports|
% is called always (via |\bbl at inisec|), while |\bbl at after@ini| must be
% called explicitly after |\bbl at read@ini| if necessary.
%
@@ -11301,8 +11294,8 @@ help from Bernd Raichle, for which I am grateful.
\bbl at cs{@kv at identification.warning#1}\\%
Reported }}}
%
-\let\bbl at inikv@identification\bbl at inikv
-\def\bbl at secpost@identification{%
+\def\bbl at ini@exports#1{%
+ % Identification always exported
\bbl at iniwarning{}%
\ifcase\bbl at engine
\bbl at iniwarning{.pdflatex}%
@@ -11324,13 +11317,43 @@ help from Bernd Raichle, for which I am grateful.
\bbl at exportkey{sotf}{identification.script.tag.opentype}{DFLT}%
\ifbbl at bcptoname
\bbl at csarg\xdef{bcp at map@\bbl at cl{tbcp}}{\languagename}%
+ \fi
+ % Conditional
+ \ifnum#1>\z@ % 0 = only info, 1, 2 = basic, (re)new
+ \bbl at exportkey{lnbrk}{typography.linebreaking}{h}%
+ \bbl at exportkey{hyphr}{typography.hyphenrules}{}%
+ \bbl at exportkey{lfthm}{typography.lefthyphenmin}{2}%
+ \bbl at exportkey{rgthm}{typography.righthyphenmin}{3}%
+ \bbl at exportkey{prehc}{typography.prehyphenchar}{}%
+ \bbl at exportkey{hyotl}{typography.hyphenate.other.locale}{}%
+ \bbl at exportkey{hyots}{typography.hyphenate.other.script}{}%
+ \bbl at exportkey{intsp}{typography.intraspace}{}%
+ \bbl at exportkey{chrng}{characters.ranges}{}%
+ \bbl at exportkey{dgnat}{numbers.digits.native}{}%
+ \bbl at exportkey{frspc}{typography.frenchspacing}{u}%
+ \ifnum#1=\tw@ % only (re)new
+ \bbl at exportkey{rqtex}{identification.require.babel}{}%
+ \bbl at toglobal\bbl at savetoday
+ \bbl at toglobal\bbl at savedate
+ \bbl at savestrings
+ \fi
\fi}
% \end{macrocode}
%
+% A shared handler for key=val lines to be stored in
+% |\bbl@@kv@<section>.<key>|.
+%
+% \begin{macrocode}
+\def\bbl at inikv#1#2{% key=value
+ \toks@{#2}% This hides #'s from ini values
+ \bbl at csarg\edef{@kv@\bbl at section.#1}{\the\toks@}}
+% \end{macrocode}
+%
% By default, the following sections are just read. Actions are taken
% later.
%
% \begin{macrocode}
+\let\bbl at inikv@identification\bbl at inikv
\let\bbl at inikv@typography\bbl at inikv
\let\bbl at inikv@characters\bbl at inikv
\let\bbl at inikv@numbers\bbl at inikv
@@ -11342,7 +11365,7 @@ help from Bernd Raichle, for which I am grateful.
% the ‘units’.
%
% \begin{macrocode}
-\def\bbl at inikv@counters#1=#2\@@{%
+\def\bbl at inikv@counters#1#2{%
\bbl at ifsamestring{#1}{digits}%
{\bbl at error{The counter name 'digits' is reserved for mapping\\%
decimal digits}%
@@ -11365,13 +11388,6 @@ help from Bernd Raichle, for which I am grateful.
\expandafter\bbl at buildifcase\bbl at tempb* \\ % Space after \\
\bbl at csarg{\global\expandafter\let}{cntr@#1@\languagename}\bbl at tempa
\fi}
-\def\bbl at after@ini{%
- \bbl at linebreak@export
- \bbl at exportkey{dgnat}{numbers.digits.native}{}%
- \bbl at exportkey{rqtex}{identification.require.babel}{}%
- \bbl at exportkey{frspc}{typography.frenchspacing}{u}% unset
- \bbl at toglobal\bbl at savetoday
- \bbl at toglobal\bbl at savedate}
% \end{macrocode}
%
% Now |captions| and |captions.licr|, depending on the engine. And
@@ -11381,10 +11397,10 @@ help from Bernd Raichle, for which I am grateful.
%
% \begin{macrocode}
\ifcase\bbl at engine
- \bbl at csarg\def{inikv at captions.licr}#1=#2\@@{%
+ \bbl at csarg\def{inikv at captions.licr}#1#2{%
\bbl at ini@captions at aux{#1}{#2}}
\else
- \def\bbl at inikv@captions#1=#2\@@{%
+ \def\bbl at inikv@captions#1#2{%
\bbl at ini@captions at aux{#1}{#2}}
\fi
% \end{macrocode}
@@ -11445,7 +11461,7 @@ help from Bernd Raichle, for which I am grateful.
\bbl at ifunset{bbl at map@#1@\languagename}%
{\@nameuse{#1}}%
{\@nameuse{bbl at map@#1@\languagename}}}
-\def\bbl at inikv@labels#1=#2\@@{%
+\def\bbl at inikv@labels#1#2{%
\in@{.map}{#1}%
\ifin@
\ifx\bbl at KVP@labels\@nil\else
@@ -11665,7 +11681,7 @@ help from Bernd Raichle, for which I am grateful.
% \begin{macrocode}
\def\bbl at provide@lsys#1{%
\bbl at ifunset{bbl at lname@#1}%
- {\bbl at ini@basic{#1}}%
+ {\bbl at load@info{#1}}%
{}%
\bbl at csarg\let{lsys@#1}\@empty
\bbl at ifunset{bbl at sname@#1}{\bbl at csarg\gdef{sname@#1}{Default}}{}%
@@ -11717,14 +11733,13 @@ help from Bernd Raichle, for which I am grateful.
% must be enabled. This means we must make sure a few characters are
% not active. The |ini| is not read directly, but with a proxy |tex|
% file named as the language (which means any code in it must be
-% skipped, too.
+% skipped, too).
%
% \begin{macrocode}
-\def\bbl at ini@basic#1{%
+\def\bbl at load@info#1{%
\def\BabelBeforeIni##1##2{%
\begingroup
- \bbl at add\bbl at secpost@identification{\closein\bbl at readstream }%
- \bbl at read@ini{##1}1%
+ \bbl at read@ini{##1}0%
\endinput % babel- .tex may contain onlypreamble's
\endgroup}% boxed, to avoid extra spaces:
{\bbl at input@texini{#1}}}
@@ -11850,7 +11865,7 @@ help from Bernd Raichle, for which I am grateful.
\newcommand\BabelEnsureInfo{%
\ifx\InputIfFileExists\@undefined\else
\def\bbl at ensureinfo##1{%
- \bbl at ifunset{bbl at lname@##1}{\bbl at ini@basic{##1}}{}}%
+ \bbl at ifunset{bbl at lname@##1}{\bbl at load@info{##1}}{}}%
\fi
\bbl at foreach\bbl at loaded{{%
\def\languagename{##1}%
diff --git a/babel.ins b/babel.ins
index cd1597a..580903d 100644
--- a/babel.ins
+++ b/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2021/01/26}
+\def\filedate{2021/02/02}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/babel.pdf b/babel.pdf
index dbd0d74..061388e 100644
Binary files a/babel.pdf and b/babel.pdf differ
diff --git a/bbcompat.dtx b/bbcompat.dtx
index 84c388a..3008f47 100644
--- a/bbcompat.dtx
+++ b/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2021/01/26 v3.53]
+\ProvidesFile{bbcompat.dtx}[2021/02/02 v3.53.2271]
%</dtx>
%
%% File 'bbcompat.dtx'
More information about the latex3-commits
mailing list.