summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-01-13 23:32:04 +0000
committerKarl Berry <karl@freefriends.org>2019-01-13 23:32:04 +0000
commitbb1d5d5bb3f0deddd2c473b3881cd785b002d768 (patch)
treeb1b301d655decafc1e8a237917debf6f040a8f1c /Master/texmf-dist/source/latex/l3kernel
parent231f2bfbc6deb5f053659c5062e9b5be2ed8e5c8 (diff)
l3kernel (13jan19)
git-svn-id: svn://tug.org/texlive/trunk@49692 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3box.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx41
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3clist.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3doc.dtx27
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx14
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3file.dtx12
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3final.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3flag.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx31
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prop.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3quark.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3regex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3seq.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3skip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sort.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx5
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx140
51 files changed, 214 insertions, 180 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 010acc2ef42..615f179bb16 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -21,7 +21,7 @@
% for those people who are interested.
%
%<*driver|generic|package>
-\def\ExplFileDate{2019-01-01}%
+\def\ExplFileDate{2019-01-12}%
%</driver|generic|package>
%<*driver>
\documentclass[full]{l3doc}
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
index 46d67b00d5e..94e523ea661 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 44e0968f05b..03bd6180794 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 5b6c4aa23eb..2ce2f3b2e11 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -138,7 +138,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 39a4ab8c754..ef4a9b2d763 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -583,7 +583,7 @@
% \vbox_gset_to_ht:Nnw, \vbox_gset_to_ht:cnw
% }
% \begin{syntax}
-% \cs{vbox_set_to_wd:Nnw} \meta{box} \Arg{dimexpr} \meta{contents} \cs{vbox_set_end:}
+% \cs{vbox_set_to_ht:Nnw} \meta{box} \Arg{dimexpr} \meta{contents} \cs{vbox_set_end:}
% \end{syntax}
% Typesets the \meta{contents} to the height given by the \meta{dimexpr}
% and then stores the result inside the \meta{box}. In contrast
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index 780b8ac6b03..c23a8825320 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -353,9 +353,7 @@
% path and the additional paths controlled by \cs{file_path_include:n}.
% If found, sets the \meta{str var} to the size of the file in bytes.
% Where the file is not found, the \meta{str var} will be empty.
-% \begin{texnote}
-% Currently this is not available with \XeTeX{}.
-% \end{texnote}
+% This is not available in older versions of \XeTeX{}.
% \end{function}
%
% \begin{function}[added = 2017-07-09]{\file_get_timestamp:nN}
@@ -369,9 +367,7 @@
% \meta{minute}\meta{second}\meta{offset}, where the latter may be |Z|
% (UTC) or \meta{plus-minus}\meta{hours}|'|\meta{minutes}|'|.
% Where the file is not found, the \meta{str var} will be empty.
-% \begin{texnote}
-% Currently this is not available with \XeTeX{}.
-% \end{texnote}
+% This is not available in older versions of \XeTeX{}.
% \end{function}
%
% \begin{function}[added = 2014-07-02]{\file_if_exist_input:n, \file_if_exist_input:nF}
@@ -451,8 +447,9 @@
% $2^{30}-1$, an error occurs. Entries are generated in the same way
% as repeated calls to \cs{int_rand:nn} or \cs{int_rand:n}
% respectively, in particular for the second function the
-% \meta{minimum} is $1$. This is not yet available in \XeTeX{}.
+% \meta{minimum} is $1$.
% Assignments are always global.
+% This is not available in older versions of \XeTeX{}.
% \end{function}
%
% \subsection{Working with contents of integer arrays}
@@ -632,7 +629,8 @@
% \end{syntax}
% Selects a pseudo-random key--value pair from the \meta{property list}
% and returns \Arg{key} and \Arg{value}. If the \meta{property list} is
-% empty the result is empty. This is not yet available in \XeTeX{}.
+% empty the result is empty.
+% This is not available in older versions of \XeTeX{}.
% \begin{texnote}
% The result is returned within the \tn{unexpanded}
% primitive (\cs{exp_not:n}), which means that the \meta{value}
@@ -4443,34 +4441,39 @@
\exp_after:wN \@@_tmp:w \l_@@_internal_a_tl
\@@_loop:nn
}
- \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+ \cs_set_protected:Npn \@@_tmp:nnnn #1#2#3#4#5
{
\tl_const:cx
{
- c_@@_lower_case_
- \char_generate:nn {#1} { 12 }
+ c_@@_ #1 _case_
\char_generate:nn {#2} { 12 }
+ \char_generate:nn {#3} { 12 }
_tl
}
{
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#5} { 13 }
+ \exp_not:N \char_generate:nn {#4} { 13 }
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#6} { 13 }
+ \exp_not:N \char_generate:nn {#5} { 13 }
}
+ }
+ \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+ {
\tl_const:cx
{
- c_@@_upper_case_
- \char_generate:nn {#5} { 12 }
- \char_generate:nn {#6} { 12 }
+ c_@@_lower_case_
+ \char_generate:nn {#1} { 12 }
+ \char_generate:nn {#2} { 12 }
_tl
}
{
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#1} { 13 }
+ \exp_not:N \char_generate:nn {#5} { 13 }
\exp_after:wN \exp_after:wN \exp_after:wN
- \exp_not:N \char_generate:nn {#2} { 13 }
+ \exp_not:N \char_generate:nn {#6} { 13 }
}
+ \@@_tmp:nnnn { upper } {#5} {#6} {#1} {#2}
+ \@@_tmp:nnnn { mixed } {#5} {#6} {#1} {#2}
}
\@@_loop:nn
{ 00C0 } { 00E0 }
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index 3ed242d1809..2972346e50b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index 2f9429c6d12..59cf147c27b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3coffins.dtx Copyright(C) 2010-2019 The LaTeX3 Project
+%% File: l3coffins.dtx Copyright (C) 2010-2019 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
index aa5b6a1d2ec..1946a9a269e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2019 The LaTeX3 Project
+%% File: l3color-base.dtx Copyright (C) 2011,2012,2014,2016-2019 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index 37860cf2cb3..5015598e4d6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index 43a05058002..01bc02e5e31 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
@@ -29,7 +29,7 @@
\askforoverwritefalse
\preamble
-Copyright (C) 1990-2017 The LaTeX3 Project
+Copyright (C) 1990-2017,2019 The LaTeX3 Project
It may be distributed and/or modified under the conditions of
the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -77,7 +77,7 @@ and all files in that bundle must be distributed together.
%
% \title{The \cls{l3doc} class}
% \author{\Team}
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
% \maketitle
% \tableofcontents
%
@@ -1351,6 +1351,8 @@ and all files in that bundle must be distributed together.
{ The~deprecated~function(s)~'#1'~should~have~been~removed~on~#2. }
\msg_new:nnn { l3doc } { date-format }
{ The~date~'#1'~should~be~given~in~YYYY-MM-DD~format. }
+\msg_new:nnn { l3doc } { future-date }
+ { The~added/updated~date~'#2'~of~'#1'~is~in~the~future. }
\msg_new:nnn { l3doc } { syntax-nested-function }
{
The~'syntax'~environment~should~be~used~in~the~
@@ -2370,8 +2372,8 @@ and all files in that bundle must be distributed together.
\bool_set_true:N \l_@@_macro_noTF_bool
\bool_set_true:N \l_@@_macro_TF_bool
} ,
- added .code:n = { \@@_date_set:Nn \l_@@_date_added_tl {#1} },
- updated .code:n = { \@@_date_set:Nn \l_@@_date_updated_tl {#1} } ,
+ added .code:n = { \@@_date_set_past:Nn \l_@@_date_added_tl {#1} },
+ updated .code:n = { \@@_date_set_past:Nn \l_@@_date_updated_tl {#1} } ,
deprecated .code:n = { \@@_deprecated_on:n {#1} } ,
tested .code:n = { } ,
label .code:n =
@@ -2385,9 +2387,11 @@ and all files in that bundle must be distributed together.
}
% \end{macrocode}
%
-% \begin{macro}{\@@_date_set:Nn}
+% \begin{macro}{\@@_date_set:Nn,\@@_date_set_past:Nn}
% Normalize the date into the format \texttt{YYYY-MM-DD}; more
-% precisely month and day are allowed to be single digits.
+% precisely month and day are allowed to be single digits. The
+% \cs{@@_date_set_past:Nn} function only allows dates in the past (or
+% same day).
% \begin{macrocode}
\cs_new_protected:Npn \@@_date_set:Nn #1#2
{
@@ -2399,6 +2403,17 @@ and all files in that bundle must be distributed together.
\tl_set:Nn #1 { 1970-01-01 }
}
}
+\cs_new_protected:Npn \@@_date_set_past:Nn #1#2
+ {
+ \@@_date_set:Nn #1 {#2}
+ \exp_args:No \@@_date_compare:nNnT
+ {#1} > { \tex_year:D - \tex_month:D - \tex_day:D }
+ {
+ \msg_error:nnxx { l3doc } { future-date }
+ { \tl_to_str:N \l_@@_macro_argument_tl }
+ {#1}
+ }
+ }
% \end{macrocode}
% \end{macro}
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 96633a2f925..175b865f832 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
@@ -61,7 +61,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
index 340af23602f..4028ef36d1c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3drivers.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3drivers.dtx Copyright (C) 2011-2019 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -554,23 +554,23 @@
%<*package>
\ProvidesExplFile
%<*dvipdfmx>
- {l3dvidpfmx.def}{2019-01-01}{}
+ {l3dvidpfmx.def}{2019-01-12}{}
{L3 Experimental driver: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3dvips.def}{2019-01-01}{}
+ {l3dvips.def}{2019-01-12}{}
{L3 Experimental driver: dvips}
%</dvips>
%<*dvisvgm>
- {l3dvisvgm.def}{2019-01-01}{}
+ {l3dvisvgm.def}{2019-01-12}{}
{L3 Experimental driver: dvisvgm}
%</dvisvgm>
%<*pdfmode>
- {l3pdfmode.def}{2019-01-01}{}
+ {l3pdfmode.def}{2019-01-12}{}
{L3 Experimental driver: PDF mode}
%</pdfmode>
%<*xdvipdfmx>
- {l3xdvidpfmx.def}{2019-01-01}{}
+ {l3xdvidpfmx.def}{2019-01-12}{}
{L3 Experimental driver: xdvipdfmx}
%</xdvipdfmx>
%</package>
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 7d5d2bf5d22..e6794c011d3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index 1b1248f2484..c6edd31bf4e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -1002,11 +1002,11 @@
\cs_new_protected:Npn \@@_map_inline_loop:NNN #1#2#3
{
#2 #3 \l_@@_internal_tl
- \ior_if_eof:NF #3
- {
- \exp_args:No #1 \l_@@_internal_tl
- \@@_map_inline_loop:NNN #1#2#3
- }
+ \if_eof:w #3
+ \exp_after:wN \use_none:nnnnnnn
+ \fi:
+ \exp_args:No #1 \l_@@_internal_tl
+ \@@_map_inline_loop:NNN #1#2#3
}
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
index 36809a81885..3909edc9159 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index 2a5e284ecd8..f8c2d33457d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index d5527679b62..32c94b8f302 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
index 785c6693069..fc59a450269 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3fp-aux.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-aux.dtx Copyright (C) 2011-2019 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index 1cb866748b6..7c2ee489d77 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index 2eaf34da4ca..c1de61c7a8a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3fp-convert.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-convert.dtx Copyright (C) 2011-2019 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index d1c3adfdbab..31e59bd0fef 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index d6c897f4ce2..13e93ca1ea8 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index d28685e956e..60d6921182f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index a35c9ed97bb..1e7f9f81b96 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index c38d03b584a..2167fbaf477 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index 2c612568e5b..9ab4fb5c80d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3fp-round.dtx Copyright(C) 2011-2019 The LaTeX3 Project
+%% File: l3fp-round.dtx Copyright (C) 2011-2019 The LaTeX3 Project
%
% It may be distributed and/or modified under the conditions of the
% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index efeaeaf1b56..74bce8be725 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
index af79954fe77..5e49a6eca0f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
@@ -38,7 +38,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index b3f9a5801ea..8de76e43c29 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -47,7 +47,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -91,18 +91,21 @@
% $\operatorname{asinh} x$, $\operatorname{acosh} x$,
% $\operatorname{atanh} x$, $\operatorname{acoth} x$,
% $\operatorname{asech} x$, $\operatorname{acsch} x$.
-% \item Extrema: $\max(x,y,\ldots)$, $\min(x,y,\ldots)$,
+% \item Extrema: $\max(x_{1},x_{2},\ldots)$, $\min(x_{1},x_{2},\ldots)$,
% $\operatorname{abs}(x)$.
-% \item Rounding functions ($n=0$ by default, $t=\nan$ by default):
-% $\operatorname{trunc}(x,n)$ rounds towards zero,
-% $\operatorname{floor}(x,n)$ rounds towards~$-\infty$,
-% $\operatorname{ceil}(x,n)$ rounds towards~$+\infty$,
-% $\operatorname{round}(x,n,t)$ rounds to the closest value, with
+% \item Rouning functions, controlled by two optional
+% values, $n$ (number of places, $0$ by default) and
+% $t$ (behavior on a tie, $\nan$ by default):
+% \begin{itemize}
+% \item $\operatorname{trunc}(x,n)$ rounds towards zero,
+% \item $\operatorname{floor}(x,n)$ rounds towards~$-\infty$,
+% \item $\operatorname{ceil}(x,n)$ rounds towards~$+\infty$,
+% \item $\operatorname{round}(x,n,t)$ rounds to the closest value, with
% ties rounded to an even value by default, towards zero if $t=0$,
-% towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$. And
-% \emph{(not yet)} modulo, and \enquote{quantize}.
-% \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$ in
-% all engines except \XeTeX{}.
+% towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.
+% \end{itemize}
+% And \emph{(not yet)} modulo, and \enquote{quantize}.
+% \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$.
% \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
% \item Dimensions, automatically expressed in points, \emph{e.g.},
% \texttt{pc} is~$12$.
@@ -1263,13 +1266,13 @@
% \cs{fp_eval:n} \{ |rand()| \}
% \end{syntax}
% Produces a pseudo-random floating-point number (multiple of
-% $10^{-16}$) between $0$~included and $1$~excluded. This is not yet
-% available in \XeTeX{}. The random seed can be queried using
+% $10^{-16}$) between $0$~included and $1$~excluded. This is not available
+% in older versions of \XeTeX{}. The random seed can be queried using
% \cs{sys_rand_seed:} and set using \cs{sys_gset_rand_seed:n}.
% \begin{texnote}
% This is based on pseudo-random numbers provided by the engine's
% primitive \tn{pdfuniformdeviate} in \pdfTeX{}, \pTeX{}, \upTeX{}
-% and \tn{uniformdeviate} in \LuaTeX{}. The underlying code is
+% and \tn{uniformdeviate} in \LuaTeX{} and \XeTeX{}. The underlying code is
% based on Metapost, which follows an additive scheme recommended in
% Section 3.6 of \enquote{The Art of Computer Programming,
% Volume~2}.
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index 645c9106276..29f4f0c18fc 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index 30e5841cc26..7e187b3317f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -791,8 +791,8 @@
% \cs{int_rand:nn} \Arg{intexpr_1} \Arg{intexpr_2}
% \end{syntax}
% Evaluates the two \meta{integer expressions} and produces a
-% pseudo-random number between the two (with bounds included). This
-% is not yet available in \XeTeX{}.
+% pseudo-random number between the two (with bounds included).
+% This is not available in older versions of \XeTeX{}.
% \end{function}
%
% \begin{function}[EXP, added = 2018-05-05]{\int_rand:n}
@@ -801,7 +801,7 @@
% \end{syntax}
% Evaluates the \meta{integer expression} then produces a
% pseudo-random number between $1$ and the \meta{intexpr} (included).
-% This is not yet available in \XeTeX{}.
+% This is not available in older versions of \XeTeX{}.
% \end{function}
%
% \section{Viewing integers}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index df0086a304b..19cc4701f72 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index bfa72d34198..d44e2b3f7d6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 99872d40ada..131d1a2ebab 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index 6c37f960f78..22c09709aac 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index 504419ac23d..5ee6fdf4a06 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -213,7 +213,7 @@
% |Package| is the standard outcome: see \cs{msg_module_type:n}.
% \end{function}
%
-% \begin{function}[EXP, added = 2019-10-10]{\msg_module_name:n}
+% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n}
% \begin{syntax}
% \cs{msg_module_name:n} \Arg{module}
% \end{syntax}
@@ -222,7 +222,7 @@
% unchanged).
% \end{function}
%
-% \begin{function}[EXP, added = 2019-10-10]{\msg_module_type:n}
+% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n}
% \begin{syntax}
% \cs{msg_module_type:n} \Arg{module}
% \end{syntax}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index bc8ebd43ed2..a3a72edd0d8 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index e2d840e61bd..2fec4a8a024 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index dabb81ef207..286596b432c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index a14c8a2a0d1..eb3a7e1ea61 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index a7c8f1db9e8..d4a4a296ced 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index 5cf035feca5..7bf9b87c8b1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -294,8 +294,8 @@
% \cs{seq_rand_item:N} \meta{seq~var}
% \end{syntax}
% Selects a pseudo-random item of the \meta{sequence}. If the
-% \meta{sequence} is empty the result is empty. This is not yet
-% available in \XeTeX{}.
+% \meta{sequence} is empty the result is empty.
+% This is not available in older versions of \XeTeX{}.
% \begin{texnote}
% The result is returned within the \tn{unexpanded}
% primitive (\cs{exp_not:n}), which means that the \meta{item}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 4b74e4e4e0c..7139235e963 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index a3e71fbdf6f..a69607a88e5 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index 4b8ea892e4c..c9e4f4ed138 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -731,9 +731,7 @@
% \emph{only} the Latin alphabet characters A--Z are case-folded
% (\emph{i.e.}~the \textsc{ascii} range which coincides with
% \textsc{utf-8}). Full \textsc{utf-8} support is available with both
-% \XeTeX{} and \LuaTeX{}, subject only to the fact that \XeTeX{} in
-% particular has issues with characters of code above hexadecimal
-% $0\mathrm{xFFFF}$ when interacting with \cs{tl_to_str:n}.
+% \XeTeX{} and \LuaTeX{}.
% \end{texnote}
% \end{function}
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index 557739569f1..c188ce7fc7a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index 1d2527dc041..f3025067d07 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 1d44094605b..6bd75f94949 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -1016,8 +1016,8 @@
% \cs{tl_rand_item:n} \Arg{token list}
% \end{syntax}
% Selects a pseudo-random item of the \meta{token list}. If the
-% \meta{token list} is blank, the result is empty. This is not yet
-% available in \XeTeX{}.
+% \meta{token list} is blank, the result is empty.
+% This is not available in older versions of \XeTeX{}.
% \begin{texnote}
% The result is returned within the \tn{unexpanded}
% primitive (\cs{exp_not:n}), which means that the \meta{item}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index e2046695e6f..7a84c08c24d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -139,10 +139,11 @@
% \item $8$ (math subscript)
% \item $11$ (letter)
% \item $12$ (other)
-% \item $13$ (active) (not \XeTeX{})
+% \item $13$ (active)
% \end{itemize}
% and other values raise an error. The \meta{charcode} may be any one valid
% for the engine in use.
+% Active characters cannot be generated in older versions of \XeTeX{}.
% \end{function}
%
% \begin{variable}[added = 2011-09-05]{\c_catcode_other_space_tl}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index ef39b6e3dc1..23a471d1a48 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2019-01-01}
+% \date{Released 2019-01-12}
%
% \maketitle
%
@@ -73,7 +73,9 @@
% As only the data needs to remain at the end of this process, everything
% is set up inside a group. The only thing that is outside is creating a
% stream: they are global anyway and it is best to force a stream for
-% all engines.
+% all engines. For performance reasons, some of the code here is very
+% low-level: the material is read during loading \pkg{expl3} in package
+% mode.
% \begin{macrocode}
\ior_new:N \g_@@_data_ior
\bool_lazy_or:nnTF { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: }
@@ -84,6 +86,29 @@
% \begin{macrocode}
\cs_set_eq:NN \@@_generate:w \tex_Uchar:D
% \end{macrocode}
+% A fast local implementation for generating characters.
+% \begin{macrocode}
+ \cs_set:Npx \@@_generate:n #1
+ {
+ \sys_if_engine_luatex:TF
+ {
+ \exp_not:N \lua_now:e
+ {
+ l3kernel.charcat
+ (
+ \exp_not:N \tex_number:D #1 ,
+ \exp_not:N \tex_the:D \tex_catcode:D #1
+ )
+ }
+ }
+ {
+ \exp_not:N \tex_Ucharcat:D
+ \exp_not:N \tex_number:D #1 ~
+ \c_space_tl
+ \exp_not:N \tex_the:D \tex_catcode:D #1 ~
+ }
+ }
+% \end{macrocode}
% Parse the main Unicode data file for title case exceptions (the one-to-one
% lower and upper case mappings it contains are all be covered by the \TeX{}
% data). There are no comments in the main data file so this can be done using
@@ -96,23 +121,22 @@
\cs_set_protected:Npn \@@_data_auxii:w
#1 ; #2 ; #3 ; #4 ; #5 ; #6 ; #7 \q_stop
{
- \tl_if_blank:nF {#7}
- {
- \str_if_eq:nnF {#5} {#7}
- {
- \tl_const:cx
- { c_@@_mixed_case_ \@@_generate:w "#1 _tl }
- {
- \char_generate:nn { "#7 }
- { \char_value_catcode:n { "#7 } }
- }
- }
- }
+ \cs_set_nopar:Npn \l_@@_tmpa_tl {#7}
+ \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_empty_tl
+ \cs_set_nopar:Npn \l_@@_tmpb_tl {#5}
+ \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \l_@@_tmpb_tl
+ \tl_const:cx
+ { c_@@_mixed_case_ \@@_generate:w "#1 _tl }
+ { \@@_generate:n { "#7 } }
+ \fi:
+ \fi:
}
\ior_map_inline:Nn \g_@@_data_ior
{
- \tl_if_blank:nF {#1}
- { \@@_data_auxi:w #1 \q_stop }
+ \cs_set_nopar:Npn \l_@@_tmpa_tl {#1}
+ \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_space_tl
+ \@@_data_auxi:w #1 \q_stop
+ \fi:
}
\ior_close:N \g_@@_data_ior
% \end{macrocode}
@@ -126,46 +150,37 @@
\ior_open:Nn \g_@@_data_ior { CaseFolding.txt }
\cs_set_protected:Npn \@@_data_auxi:w #1 ;~ #2 ;~ #3 ; #4 \q_stop
{
- \str_if_eq:nnTF {#2} { C }
- {
- \int_compare:nNnF
- { \char_value_lccode:n {"#1} } = {"#3}
- {
- \tl_const:cx
- { c_@@_fold_case_ \@@_generate:w "#1 _tl }
- {
- \char_generate:nn { "#3 }
- { \char_value_catcode:n { "#3 } }
- }
- }
- }
- {
- \str_if_eq:nnT {#2} { F }
- { \@@_data_auxii:w #1 ~ #3 ~ \q_stop }
- }
+ \if:w \tl_head:n { #2 ? } C
+ \reverse_if:N \if_int_compare:w
+ \char_value_lccode:n {"#1} = "#3 ~
+ \tl_const:cx
+ { c_@@_fold_case_ \@@_generate:w "#1 _tl }
+ { \@@_generate:n { "#3 } }
+ \fi:
+ \else:
+ \if:w \tl_head:n { #2 ? } F
+ \@@_data_auxii:w #1 ~ #3 ~ \q_stop
+ \fi:
+ \fi:
}
\cs_set_protected:Npn \@@_data_auxii:w #1 ~ #2 ~ #3 ~ #4 \q_stop
{
\tl_const:cx { c_@@_fold_case_ \@@_generate:w "#1 _tl }
{
- \char_generate:nn { "#2 }
- { \char_value_catcode:n { "#2 } }
- \char_generate:nn { "#3 }
- { \char_value_catcode:n { "#3 } }
+ \@@_generate:n { "#2 }
+ \@@_generate:n { "#3 }
\tl_if_blank:nF {#4}
- {
- \char_generate:nn { "#4 }
- { \char_value_catcode:n { "#4 } }
- }
+ { \@@_generate:n { "#4 } }
}
}
\ior_str_map_inline:Nn \g_@@_data_ior
{
- \tl_if_blank:nF {#1}
- {
- \str_if_eq:eeF { \tl_head:n {#1} } { \c_hash_str }
- { \@@_data_auxi:w #1 \q_stop }
- }
+ \cs_set_nopar:Npn \l_@@_tmpa_tl {#1}
+ \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_empty_tl
+ \reverse_if:N \if:w \tl_head:n { #1 ? } \c_hash_str
+ \@@_data_auxi:w #1 \q_stop
+ \fi:
+ \fi:
}
\ior_close:N \g_@@_data_ior
% \end{macrocode}
@@ -189,31 +204,30 @@
{
\tl_const:cx { c_@@_ #2 _case_ \@@_generate:w "#1 _tl }
{
- \char_generate:nn { "#3 }
- { \char_value_catcode:n { "#3 } }
- \char_generate:nn { "#4 }
- { \char_value_catcode:n { "#4 } }
+ \@@_generate:n { "#3 }
+ \@@_generate:n { "#4 }
\tl_if_blank:nF {#5}
- {
- \char_generate:nn { "#5 }
- { \char_value_catcode:n { "#5 } }
- }
+ { \@@_generate:n { "#5 } }
}
}
}
\ior_str_map_inline:Nn \g_@@_data_ior
{
- \tl_if_blank:nF {#1}
- {
- \str_if_eq:eeTF { \tl_head:n {#1} } { \c_hash_str }
+ \cs_set_nopar:Npn \l_@@_tmpa_tl {#1}
+ \reverse_if:N \if_meaning:w \l_@@_tmpa_tl \c_empty_tl
+ \if:w \tl_head:n { #1 ? } \c_hash_str
+ \cs_set_nopar:Npx \l_@@_tmpb_tl
{
- \str_if_eq:eeT
- {#1}
- { \c_hash_str \c_space_tl Conditional~Mappings }
- { \ior_map_break: }
+ \c_hash_str \c_space_tl
+ \tl_to_str:n { Conditional~Mappings }
}
- { \@@_data_auxi:w #1 \q_stop }
- }
+ \if_meaning:w \l_@@_tmpa_tl \l_@@_tmpb_tl
+ \exp_after:wN \exp_after:wN \exp_after:wN \ior_map_break:
+ \fi:
+ \else:
+ \@@_data_auxi:w #1 \q_stop
+ \fi:
+ \fi:
}
\ior_close:N \g_@@_data_ior
\group_end: