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.def330
1 files changed, 254 insertions, 76 deletions
diff --git a/Master/texmf-dist/tex/generic/babel/babel.def b/Master/texmf-dist/tex/generic/babel/babel.def
index 4d3a6bbcae9..815dedaecb6 100644
--- a/Master/texmf-dist/tex/generic/babel/babel.def
+++ b/Master/texmf-dist/tex/generic/babel/babel.def
@@ -38,7 +38,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%% File 'babel.dtx'
-%%\ProvidesFile{babel.dtx}[2017/04/28 v3.9t The Babel package]
+%%\ProvidesFile{babel.dtx}[2017/05/19 v3.10 The Babel package]
%% Babel package for LaTeX2e.
%% Copyright (C) 1989-2008 by Johannes Braams,
%% TeXniek
@@ -56,7 +56,7 @@
\wlog{File: #1 #4 #3 <#2>}%
\let\ProvidesFile\@undefined}
\fi
-\ProvidesFile{babel.def}[2017/04/28 3.9t Babel common definitions]
+\ProvidesFile{babel.def}[2017/05/19 3.10 Babel common definitions]
\ifx\AtBeginDocument\@undefined
\input plain.def\relax
\fi
@@ -67,7 +67,7 @@
\let\bbl@afterlang\relax
\let\bbl@language@opts\@empty
\fi
-\def\bbl@tempa{3.9t}%
+\def\bbl@tempa{3.10}%
\ifx\bbl@version\bbl@tempa\else
\input switch.def\relax
\fi
@@ -152,6 +152,38 @@
\def\bbl@ifblank#1{%
\bbl@ifblank@i#1\@nil\@nil\@secondoftwo\@firstoftwo\@nil}
\long\def\bbl@ifblank@i#1#2\@nil#3#4#5\@nil{#4}
+\def\bbl@forkv#1#2{%
+ \def\bbl@kvcmd##1##2##3{#2}%
+ \bbl@kvnext#1,\@nil,}
+\def\bbl@kvnext#1,{%
+ \ifx\@nil#1\relax\else
+ \bbl@ifblank{#1}{}{\bbl@forkv@eq#1=\@empty=\@nil{#1}}%
+ \expandafter\bbl@kvnext
+ \fi}
+\def\bbl@forkv@eq#1=#2=#3\@nil#4{%
+ \bbl@trim@def\bbl@forkv@a{#1}%
+ \bbl@trim{\expandafter\bbl@kvcmd\expandafter{\bbl@forkv@a}}{#2}{#4}}
+\def\bbl@vforeach#1#2{%
+ \def\bbl@forcmd##1{#2}%
+ \bbl@fornext#1,\@nil,}
+\def\bbl@fornext#1,{%
+ \ifx\@nil#1\relax\else
+ \bbl@ifblank{#1}{}{\bbl@trim\bbl@forcmd{#1}}%
+ \expandafter\bbl@fornext
+ \fi}
+\def\bbl@foreach#1{\expandafter\bbl@vforeach\expandafter{#1}}
+\def\bbl@replace#1#2#3{% in #1 -> repl #2 by #3
+ \toks@{}%
+ \def\bbl@replace@aux##1#2##2#2{%
+ \ifx\bbl@nil##2%
+ \toks@\expandafter{\the\toks@##1}%
+ \else
+ \toks@\expandafter{\the\toks@##1#3}%
+ \bbl@afterfi
+ \bbl@replace@aux##2#2%
+ \fi}%
+ \expandafter\bbl@replace@aux#1#2\bbl@nil#2%
+ \edef#1{\the\toks@}}
\def\bbl@exp#1{%
\begingroup
\let\\\noexpand
@@ -234,7 +266,7 @@
adddialect=2,patterns=2,defaultcommands=0,encodedcommands=2,write=0,%
beforeextras=0,afterextras=0,stopcommands=0,stringprocess=0,%
hyphenation=2,initiateactive=3,afterreset=0}
-\newcommand\babelensure[2][]{%
+\newcommand\babelensure[2][]{% TODO - revise test files
\AddBabelHook{babel-ensure}{afterextras}{%
\ifcase\bbl@select@type
\@nameuse{bbl@e@\languagename}%
@@ -247,7 +279,7 @@
\ifx\@empty##1\else\noexpand##1\expandafter\bbl@tempb\fi}%
\edef\bbl@tempa{\bbl@tempb#1\@empty}%
\def\bbl@tempb##1=##2\@@{\@namedef{bbl@ens@##1}{##2}}%
- \bbl@for\bbl@tempa\bbl@tempa{\expandafter\bbl@tempb\bbl@tempa\@@}%
+ \bbl@foreach\bbl@tempa{\bbl@tempb##1\@@}%
\def\bbl@tempc{\bbl@ensure}%
\expandafter\bbl@add\expandafter\bbl@tempc\expandafter{%
\expandafter{\bbl@ens@include}}%
@@ -257,8 +289,8 @@
\bbl@exp{%
\endgroup
\def\<bbl@e@#2>{\the\toks@{\bbl@ens@fontenc}}}}
-\def\bbl@ensure#1#2#3{%
- \def\bbl@tempb##1{% elt for \bbl@ensured list
+\def\bbl@ensure#1#2#3{% 1: include 2: exclude 3: fontenc
+ \def\bbl@tempb##1{% elt for (excluding) \bbl@captionslist list
\ifx##1\@empty\else
\in@{##1}{#2}%
\ifin@\else
@@ -278,7 +310,7 @@
\fi
\expandafter\bbl@tempb
\fi}%
- \expandafter\bbl@tempb\bbl@ensured\@empty
+ \expandafter\bbl@tempb\bbl@captionslist\today\@empty
\def\bbl@tempa##1{% elt for include list
\ifx##1\@empty\else
\bbl@csarg\in@{ensure@\languagename\expandafter}\expandafter{##1}%
@@ -288,11 +320,21 @@
\expandafter\bbl@tempa
\fi}%
\bbl@tempa#1\@empty}
-\def\bbl@ensured{%
+\def\bbl@captionslist{%
\prefacename\refname\abstractname\bibname\chaptername\appendixname
\contentsname\listfigurename\listtablename\indexname\figurename
\tablename\partname\enclname\ccname\headtoname\pagename\seename
- \alsoname\proofname\glossaryname\today}
+ \alsoname\proofname\glossaryname}
+\def\bbl@ldfinit{%
+ \let\bbl@screset\@empty
+ \let\BabelStrings\bbl@opt@string
+ \let\BabelOptions\@empty
+ \let\BabelLanguages\relax
+ \ifx\originalTeX\@undefined
+ \let\originalTeX\@empty
+ \else
+ \originalTeX
+ \fi}
\def\LdfInit#1#2{%
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
@@ -308,26 +350,20 @@
\ldf@quit{#1}%
\fi
\fi
- \let\bbl@screset\@empty
- \let\BabelStrings\bbl@opt@strings
- \let\BabelOptions\@empty
- \let\BabelLanguages\relax
- \ifx\originalTeX\@undefined
- \let\originalTeX\@empty
- \else
- \originalTeX
- \fi}
+ \bbl@ldfinit}
\def\ldf@quit#1{%
\expandafter\main@language\expandafter{#1}%
\catcode`\@=\atcatcode \let\atcatcode\relax
\catcode`\==\eqcatcode \let\eqcatcode\relax
\endinput}
-\def\ldf@finish#1{%
- \loadlocalcfg{#1}%
+\def\bbl@afterldf#1{%
\bbl@afterlang
\let\bbl@afterlang\relax
\let\BabelModifiers\relax
- \let\bbl@screset\relax
+ \let\bbl@screset\relax}%
+\def\ldf@finish#1{%
+ \loadlocalcfg{#1}%
+ \bbl@afterldf{#1}%
\expandafter\main@language\expandafter{#1}%
\catcode`\@=\atcatcode \let\atcatcode\relax
\catcode`\==\eqcatcode \let\eqcatcode\relax}
@@ -346,16 +382,20 @@
\else
\select@language{#1}%
\fi}
-\def\bbl@add@special#1{%
- \begingroup
- \def\do{\noexpand\do\noexpand}%
- \def\@makeother{\noexpand\@makeother\noexpand}%
- \edef\x{\endgroup
- \def\noexpand\dospecials{\dospecials\do#1}%
- \expandafter\ifx\csname @sanitize\endcsname\relax \else
- \def\noexpand\@sanitize{\@sanitize\@makeother#1}%
- \fi}%
- \x}
+\def\bbl@add@special#1{% 1:a macro like \", \?, etc.
+ \bbl@add\dospecials{\do#1}% test @sanitize = \relax, for back. compat.
+ \bbl@ifunset{@sanitize}{}{\bbl@add\@sanitize{\@makeother#1}}%
+ \ifx\nfss@catcodes\@undefined\else % TODO - same for above
+ \begingroup
+ \catcode`#1\active
+ \nfss@catcodes
+ \ifnum\catcode`#1=\active
+ \endgroup
+ \bbl@add\nfss@catcodes{\@makeother#1}%
+ \else
+ \endgroup
+ \fi
+ \fi}
\def\bbl@remove@special#1{%
\begingroup
\def\x##1##2{\ifnum`#1=`##2\noexpand\@empty
@@ -457,11 +497,11 @@
\@ifpackagewith{babel}{KeepShorthandsActive}%
{\let\bbl@restoreactive\@gobble}%
{\def\bbl@restoreactive#1{%
- \edef\bbl@tempa{%
- \noexpand\AfterBabelLanguage\noexpand\CurrentOption
+ \bbl@exp{%
+ \\\AfterBabelLanguage\\\CurrentOption
{\catcode`#1=\the\catcode`#1\relax}%
- \noexpand\AtEndOfPackage{\catcode`#1=\the\catcode`#1\relax}}%
- \bbl@tempa}%
+ \\\AtEndOfPackage
+ {\catcode`#1=\the\catcode`#1\relax}}}%
\AtEndOfPackage{\let\bbl@restoreactive\@gobble}}
\def\bbl@sh@select#1#2{%
\expandafter\ifx\csname#1@sh@#2@sel\endcsname\relax
@@ -663,25 +703,23 @@
\def\bbl@tempc{#1}%
\bbl@fixname\bbl@tempc
\bbl@iflanguage\bbl@tempc{%
- \bbl@loopx\bbl@attr{#2}{%
+ \bbl@vforeach{#2}{%
\ifx\bbl@known@attribs\@undefined
\in@false
\else
- \@expandtwoargs\in@{,\bbl@tempc-\bbl@attr,}{,\bbl@known@attribs,}%
+ \@expandtwoargs\in@{,\bbl@tempc-##1,}{,\bbl@known@attribs,}%
\fi
\ifin@
\bbl@warning{%
- You have more than once selected the attribute '\bbl@attr'\\%
+ You have more than once selected the attribute '##1'\\%
for language #1}%
\else
- \edef\bbl@tempa{%
- \noexpand\bbl@add@list
- \noexpand\bbl@known@attribs{\bbl@tempc-\bbl@attr}}%
- \bbl@tempa
- \edef\bbl@tempa{\bbl@tempc-\bbl@attr}%
+ \bbl@exp{%
+ \\\bbl@add@list\\\bbl@known@attribs{\bbl@tempc-##1}}%
+ \edef\bbl@tempa{\bbl@tempc-##1}%
\expandafter\bbl@ifknown@ttrib\expandafter{\bbl@tempa}\bbl@attributes%
- {\csname\bbl@tempc @attr@\bbl@attr\endcsname}%
- {\@attrerr{\bbl@tempc}{\bbl@attr}}%
+ {\csname\bbl@tempc @attr@##1\endcsname}%
+ {\@attrerr{\bbl@tempc}{##1}}%
\fi}}}
\@onlypreamble\languageattribute
\newcommand*{\@attrerr}[2]{%
@@ -732,18 +770,13 @@
\babel@beginsave
\def\babel@save#1{%
\expandafter\let\csname babel@\number\babel@savecnt\endcsname#1\relax
- \begingroup
- \toks@\expandafter{\originalTeX\let#1=}%
- \edef\x{\endgroup
- \def\noexpand\originalTeX{\the\toks@ \expandafter\noexpand
- \csname babel@\number\babel@savecnt\endcsname\relax}}%
- \x
+ \toks@\expandafter{\originalTeX\let#1=}%
+ \bbl@exp{%
+ \def\\\originalTeX{\the\toks@\<babel@\number\babel@savecnt>\relax}}%
\advance\babel@savecnt\@ne}
-\def\babel@savevariable#1{\begingroup
- \toks@\expandafter{\originalTeX #1=}%
- \edef\x{\endgroup
- \def\noexpand\originalTeX{\the\toks@ \the#1\relax}}%
- \x}
+\def\babel@savevariable#1{%
+ \toks@\expandafter{\originalTeX #1=}%
+ \bbl@exp{\def\\\originalTeX{\the\toks@\the#1\relax}}}
\def\bbl@frenchspacing{%
\ifnum\the\sfcode`\.=\@m
\let\bbl@nonfrenchspacing\relax
@@ -781,8 +814,8 @@
\ifx\@empty#1%
\protected@edef\bbl@hyphenation@{\bbl@hyphenation@\space#2}%
\else
- \edef\bbl@tempb{\zap@space#1 \@empty}%
- \bbl@for\bbl@tempa\bbl@tempb{%
+ \bbl@vforeach{#1}{%
+ \def\bbl@tempa{##1}%
\bbl@fixname\bbl@tempa
\bbl@iflanguage\bbl@tempa{%
\bbl@csarg\protected@edef{hyphenation@\bbl@tempa}{%
@@ -863,10 +896,9 @@
\bbl@loop\bbl@tempa{##2}{% empty items and spaces are ok
\advance\count@\@ne
\toks@\expandafter{\bbl@tempa}%
- \edef\bbl@tempb{%
- \bbl@templ{\romannumeral\count@}{\the\toks@}%
- \count@=\the\count@\relax}%
- \expandafter\SetString\bbl@tempb}}%
+ \bbl@exp{%
+ \\\SetString\bbl@templ{\romannumeral\count@}{\the\toks@}%
+ \count@=\the\count@\relax}}}%
\newcommand\SetCase[3][]{%
\bbl@patchuclc
\bbl@forlang\bbl@tempa{%
@@ -923,7 +955,7 @@
\let\bbl@sc@fontenc\space % <- " "
\def\bbl@tempa##1=##2\@nil{%
\bbl@csarg\edef{sc@\zap@space##1 \@empty}{##2 }}%
- \bbl@for\bbl@tempb{label=#1}{\expandafter\bbl@tempa\bbl@tempb\@nil}%
+ \bbl@vforeach{label=#1}{\bbl@tempa##1\@nil}%
\def\bbl@tempa##1 ##2{% space -> comma
##1%
\ifx\@empty##2\else\ifx,##1,\else,\fi\bbl@afterfi\bbl@tempa##2\fi}%
@@ -931,13 +963,13 @@
\edef\bbl@sc@label{\expandafter\zap@space\bbl@sc@label\@empty}%
\edef\bbl@sc@charset{\expandafter\zap@space\bbl@sc@charset\@empty}%
\def\bbl@encstring##1##2{%
- \bbl@for\bbl@tempc\bbl@sc@fontenc{%
- \bbl@ifunset{T@\bbl@tempc}%
+ \bbl@foreach\bbl@sc@fontenc{%
+ \bbl@ifunset{T@####1}%
{}%
- {\ProvideTextCommand##1\bbl@tempc{##2}%
+ {\ProvideTextCommand##1{####1}{##2}%
\bbl@toglobal##1%
\expandafter
- \bbl@toglobal\csname\bbl@tempc\string##1\endcsname}}}%
+ \bbl@toglobal\csname####1\string##1\endcsname}}}%
\def\bbl@sctest{%
\@expandtwoargs
\in@{,\bbl@opt@strings,}{,\bbl@sc@label,\bbl@sc@fontenc,}}%
@@ -996,7 +1028,7 @@
\bbl@forlang\bbl@tempa{%
\edef\bbl@LC{\bbl@tempa\bbl@stripslash#1}%
\bbl@ifunset{\bbl@LC}% eg, \germanchaptername
- {\global\expandafter
+ {\global\expandafter % TODO - con \bbl@exp ?
\bbl@add\csname\bbl@G\bbl@tempa\expandafter\endcsname\expandafter
{\expandafter\bbl@scset\expandafter#1\csname\bbl@LC\endcsname}}%
{}%
@@ -1051,9 +1083,9 @@
\fi}%
\bbl@tempa}
\AtEndOfPackage{%
- \ifx\bbl@hymapopt\@undefined
+ \ifx\bbl@opt@hyphenmap\@undefined
\@expandtwoargs\in@{,}{\bbl@language@opts}%
- \chardef\bbl@hymapopt\ifin@4\else\@ne\fi
+ \chardef\bbl@opt@hyphenmap\ifin@4\else\@ne\fi
\fi}
\def\set@low@box#1{\setbox\tw@\hbox{,}\setbox\z@\hbox{#1}%
\dimen\z@\ht\z@ \advance\dimen\z@ -\ht\tw@%
@@ -1240,6 +1272,153 @@
\aftergroup\endinput
\fi
\fi}
+\newcommand\babelprovide[2][]{%
+ \let\bbl@savelangname\languagename
+ \def\languagename{#2}%
+ \let\bbl@KVP@captions\@nil
+ \let\bbl@KVP@main\@nil
+ \let\bbl@KVP@hyphenrules\@nil
+ \bbl@forkv{#1}{\bbl@csarg\def{KVP@##1}{##2}}% TODO - error handling
+ \bbl@ifunset{date#2}%
+ {\bbl@provide@new{#2}}%
+ {\bbl@ifblank{#1}%
+ {\bbl@error
+ {If you want to modify `#2' you must tell how in\\%
+ the optional argument. Currently there are two\\%
+ options: captions=lang-tag, hyphenrules=lang-list}%
+ {Use this macro as documented}
+}%
+ {\bbl@provide@renew{#2}}}%
+ \babelensure{#2}%
+ \let\languagename\bbl@savelangname}
+\def\bbl@provide@new#1{%
+ \bbl@provide@hyphens{#1}%
+ \@namedef{date#1}{}% marks lang exists - required by \StartBabelCommands
+ \@namedef{extras#1}{}%
+ \@namedef{noextras#1}{}%
+ \StartBabelCommands*{#1}{captions}%
+ \ifx\bbl@KVP@captions\@nil
+ \def\bbl@tempb##1{% elt for \bbl@captionslist
+ \ifx##1\@empty\else
+ \bbl@exp{%
+ \\\SetString\\##1{%
+ \\\bbl@nocaption{\bbl@stripslash##1}{\<#1\bbl@stripslash##1>}}}%
+ \expandafter\bbl@tempb
+ \fi}%
+ \expandafter\bbl@tempb\bbl@captionslist\@empty
+ \else
+ \bbl@read@ini{\bbl@KVP@captions}% Here all letters cat = 11
+ \bbl@after@ini
+ \bbl@savestrings
+ \fi
+ \StartBabelCommands*{#1}{date}%
+ \bbl@exp{%
+ \\\SetString\\\today{\\\bbl@nocaption{today}{\<#1today>}}}%
+ \EndBabelCommands
+ \expandafter\gdef\csname#1hyphenmins\endcsname{23}%
+ \ifx\bbl@KVP@main\@nil\else
+ \expandafter\main@language\expandafter{#1}%
+ \fi}
+\def\bbl@provide@renew#1{%
+ \bbl@provide@hyphens{#1}%
+ \ifx\bbl@KVP@captions\@nil\else
+ \StartBabelCommands*{#1}{captions}%
+ \bbl@read@ini{\bbl@KVP@captions}% Here all letters cat = 11
+ \bbl@after@ini
+ \bbl@savestrings
+ \EndBabelCommands
+ \fi}
+\def\bbl@provide@hyphens#1{%
+ \let\bbl@tempa\relax
+ \ifx\bbl@KVP@hyphenrules\@nil\else
+ \bbl@replace\bbl@KVP@hyphenrules{ }{,}%
+ \bbl@foreach\bbl@KVP@hyphenrules{%
+ \ifx\bbl@tempa\relax % if not yet found
+ \bbl@ifsamestring{##1}{+}%
+ {{\bbl@exp{\\\addlanguage\<l@##1>}}}%
+ {}%
+ \bbl@ifunset{l@##1}%
+ {}%
+ {\bbl@exp{\let\bbl@tempa\<l@##1>}}%
+ \fi}%
+ \fi
+ \ifx\bbl@tempa\relax % if no option or no language found
+ \bbl@ifunset{l@#1}% no hyphenrules found - fallback
+ {\bbl@exp{\\\adddialect\<l@#1>\language}}%
+ {}%
+ \else
+ \bbl@exp{\\\adddialect\<l@#1>\bbl@tempa}% found in opt list
+ \fi}
+\def\bbl@read@ini#1{%
+ \openin1=babel-#1.ini
+ \ifeof1
+ \bbl@error
+ {There is no ini file for the requested language\\%
+ (#1). Perhaps you misspelled it or your installation\\%
+ is not complete.}%
+ {Fix the name or reinstall babel.}%
+ \else
+ \let\bbl@section\@empty
+ \let\bbl@savestrings\@empty
+ \loop
+ \endlinechar\m@ne
+ \read1 to \bbl@line
+ \endlinechar`\^^M
+ \if T\ifeof1F\fi T\relax % Trick, because inside \loop
+ \ifx\bbl@line\@empty\else
+ \expandafter\bbl@iniline\bbl@line\bbl@iniline
+ \fi
+ \repeat
+ \fi}
+\def\bbl@iniline#1\bbl@iniline{%
+ \@ifnextchar[\bbl@inisec{\@ifnextchar;\bbl@iniskip\bbl@inikv}#1\@@} %]
+\def\bbl@iniskip#1\@@{}% if starts with ;
+\def\bbl@inisec[#1]#2\@@{% if starts with opening bracket
+ \def\bbl@section{#1}%
+ \bbl@debug{\message{[[ #1 ]]^^J}}}
+\def\bbl@inikv#1=#2\@@{% otherwise, key=value
+ \bbl@trim@def\bbl@tempa{#1}%
+ \bbl@trim\toks@{#2}%
+ \bbl@ifunset{bbl@ini@\bbl@section}%
+ {}%
+ {\bbl@exp{%
+ \<bbl@ini@\bbl@section>\bbl@tempa=\the\toks@\\\@nil}}}
+\def\bbl@after@ini{%
+ % make sure Script and Language takes some value
+ \bbl@exp{\\\bbl@ifblank{\@nameuse{bbl@lotf@\languagename}}}%
+ {\bbl@csarg\gdef{lotf@\languagename}{dflt}}{}%
+ \bbl@exp{\\\bbl@ifblank{\@nameuse{bbl@sotf@\languagename}}}%
+ {\bbl@csarg\gdef{sotf@\languagename}{DFLT}}{}}
+\def\bbl@exportkey#1#2#3#4{% 1:bbl id,2:ini name,3:ini key,4:ini val
+ \bbl@ifsamestring{#2}{#3}%
+ {\bbl@csarg\gdef{#1@\languagename}{#4}}%
+ {}}
+\ifcase\bbl@engine
+ \bbl@csarg\def{ini@captions.licr}#1=#2\@nil{% TODO - copypaste pattern
+ \bbl@ifblank{#2}%
+ {\bbl@exp{%
+ \toks@{\\\bbl@nocaption{#1}\<\languagename#1name>}}}%
+ {\toks@{#2}}%
+ \bbl@exp{%
+ \\\bbl@add\\\bbl@savestrings{% NOTE - with date will be global
+ \\\SetString\<#1name>{\the\toks@}}}}
+\else
+ \def\bbl@ini@captions#1=#2\@nil{%
+ \bbl@ifblank{#2}%
+ {\bbl@exp{%
+ \toks@{\\\bbl@nocaption{#1}\<\languagename#1name>}}}%
+ {\toks@{#2}}%
+ \bbl@exp{%
+ \\\bbl@add\\\bbl@savestrings{%
+ \\\SetString\<#1name>{\the\toks@}}}}
+\fi
+\def\bbl@ini@identification#1=#2\@nil{% TODO - not only with captions
+ \bbl@exportkey{lname}{name.english}{#1}{#2}%
+ \bbl@exportkey{lbcp}{tag.bcp47}{#1}{#2}%
+ \bbl@exportkey{lotf}{tag.opentype}{#1}{#2}%
+ \bbl@exportkey{sname}{script.name}{#1}{#2}%
+ \bbl@exportkey{sbcp}{script.tag.bcp47}{#1}{#2}%
+ \bbl@exportkey{sotf}{script.tag.opentype}{#1}{#2}}
\ifx\bbl@opt@safe\@empty\else
\def\@newl@bel#1#2#3{%
{\@safe@activestrue
@@ -1417,11 +1596,10 @@
\let\ensureascii\@firstofone
\AtBeginDocument{%
\in@false
- \bbl@loopx\bbl@tempa\BabelNonASCII{% is there a non-ascii enc?
+ \bbl@foreach\BabelNonASCII{% is there a non-ascii enc?
\ifin@\else
- \edef\bbl@tempb{{,\bbl@tempa enc.def,}{,\@filelist,}}%
- \lowercase\expandafter{\expandafter\in@\bbl@tempb}%
- \fi}
+ \lowercase{\@expandtwoargs\in@{,#1enc.def,}{,\@filelist,}}%
+ \fi}%
\ifin@ % if a non-ascii has been loaded
\def\ensureascii#1{{\fontencoding{OT1}\selectfont#1}}%
\DeclareTextCommandDefault{\TeX}{\org@TeX}%
@@ -1439,7 +1617,7 @@
\def\ensureascii##1{{\fontencoding{#1}\selectfont##1}}%
\fi}%
\fi}%
- \bbl@loopx\bbl@tempa\@filelist{\expandafter\bbl@tempb\bbl@tempa\@@}%
+ \bbl@foreach\@filelist{\bbl@tempb#1\@@}% TODO - \@@ de mas??
\@expandtwoargs\in@{,\cf@encoding,}{,\BabelNonASCII,}%
\ifin@\else
\edef\ensureascii#1{{%