summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-05-16 21:08:14 +0000
committerKarl Berry <karl@freefriends.org>2021-05-16 21:08:14 +0000
commit708618ecc7286d78178798f207079f79173d38a7 (patch)
treea274a6cd3c894a0f7090a0e7c99a187701196003 /Master/texmf-dist/source
parent0ba0fece920cc606fed4e4aa00bc45b1ff0817c8 (diff)
l3kernel
git-svn-id: svn://tug.org/texlive/trunk@59231 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx8
-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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx41
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3clist.dtx74
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3debug.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3doc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3file.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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx2
-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.dtx2
-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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx2
-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.dtx20
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx72
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx15
-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.dtx34
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3seq.dtx2
-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-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx11
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx2
56 files changed, 261 insertions, 114 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index a2f5c86cbe9..16632dbd992 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2021-05-07}%
+\def\ExplFileDate{2021-05-11}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -1756,11 +1756,15 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\g__kernel_backend_header_bool}
% Load the dynamic code and standard back-end.
% \begin{macrocode}
\sys_everyjob:
+\bool_new:N \g__kernel_backend_header_bool
+\bool_gset_true:N \g__kernel_backend_header_bool
\sys_load_backend:n { }
% \end{macrocode}
+% \end{macro}
%
% For the generic loader, a few final steps to take. Turn of \cs{expl3}
% syntax and tidy up the small number of temporary changes.
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 83c8f2b20f0..47c746ee43f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 2897f94237e..40047fe4464 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index d83fdb914e7..1eb6848d857 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index b03b3831c57..84fd99a2b09 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
index a84852f73b3..9a0bc549333 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -110,7 +110,7 @@
% matching \cs{cctab_begin:N}.
% \end{function}
%
-% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N}
+% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N, \cctab_select:c}
% \begin{syntax}
% \cs{cctab_select:N} \meta{category code table}
% \end{syntax}
@@ -120,6 +120,15 @@
% and \cs{cctab_gset:Nn}.
% \end{function}
%
+% \begin{function}[EXP, added = 2021-05-10]{\cctab_item:Nn, \cctab_item:cn}
+% \begin{syntax}
+% \cs{cctab_item:Nn} \meta{category code table} \Arg{integer expression}
+% \end{syntax}
+% Determines the \meta{character} with character code given by the
+% \meta{integer expression} and expands to its category code specified
+% by the \meta{category code table}.
+% \end{function}
+%
% \section{Category code table conditionals}
%
% \begin{function}[pTF]{\cctab_if_exist:N, \cctab_if_exist:c}
@@ -660,6 +669,34 @@
}
% \end{macrocode}
%
+%
+% \begin{macro}{\cctab_item:Nn, \cctab_item:cn}
+% Evaluate the integer argument only once. In most engines the
+% |cctab| variable only has $256$ entries so we only look up the
+% catcode for these entries, otherwise we use the current catcode. In
+% particular, for out-of-range values we use whatever fall-back
+% \cs{char_value_catcode:n}. In \LuaTeX{}, we use the
+% |tex.getcatcode| function.
+% \begin{macrocode}
+\cs_new:Npn \cctab_item:Nn #1#2
+ { \exp_args:Nf \@@_item:nN { \int_eval:n {#2} } #1 }
+\sys_if_engine_luatex:TF
+ {
+ \cs_new:Npn \@@_item:nN #1#2
+ { \lua_now:e { tex.print(-2, tex.getcatcode(\int_use:N #2, #1)) } }
+ }
+ {
+ \cs_new:Npn \@@_item:nN #1#2
+ {
+ \int_compare:nNnTF {#1} < { 256 }
+ { \intarray_item:Nn #2 { #1 + 1 } }
+ { \char_value_catcode:n {#1} }
+ }
+ }
+\cs_generate_variant:Nn \cctab_item:Nn { c }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Category code table conditionals}
%
% \begin{macro}{\cctab_if_exist:N,\cctab_if_exist:c}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index 3db9365a1ff..f61fedb4837 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -591,6 +591,20 @@
% \end{texnote}
% \end{function}
%
+% \begin{function}[EXP, added = 2021-05-10]{\clist_use:nnnn, \clist_use:nn}
+% \begin{syntax}
+% \cs{clist_use:nnnn} \meta{comma~list} \Arg{separator~between~two} \Arg{separator~between~more~than~two} \Arg{separator~between~final~two}
+% \cs{clist_use:nn} \meta{comma~list} \Arg{separator}
+% \end{syntax}
+% Places the contents of the \meta{comma~list} in the input stream,
+% with the appropriate \meta{separator} between the items. As for
+% \cs{clist_set:Nn}, blank items are omitted, spaces are removed from
+% both sides of each item, then a set of braces is removed if the
+% resulting space-trimmed item is braced. The \meta{separators} are
+% then inserted in the same way as for \cs{clist_use:Nnnn} and
+% \cs{clist_use:Nn}, respectively.
+% \end{function}
+%
% \section{Comma lists as stacks}
%
% Comma lists can be used as stacks, where data is pushed to and popped
@@ -805,11 +819,13 @@
% \end{variable}
%
% \begin{macro}[EXP]{
+% \@@_use_none_delimit_by_s_mark:w,
% \@@_use_none_delimit_by_s_stop:w,
% \@@_use_i_delimit_by_s_stop:nw
% }
% Functions to gobble up to a scan mark.
% \begin{macrocode}
+\cs_new:Npn \@@_use_none_delimit_by_s_mark:w #1 \s_@@_mark { }
\cs_new:Npn \@@_use_none_delimit_by_s_stop:w #1 \s_@@_stop { }
\cs_new:Npn \@@_use_i_delimit_by_s_stop:nw #1 #2 \s_@@_stop {#1}
% \end{macrocode}
@@ -1941,6 +1957,62 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}
+% {
+% \clist_use:nnnn, \clist_use:nn, \@@_use:Nw,
+% \@@_use_one:w, \@@_use_end:w, \@@_use_more:w
+% }
+% Items are grabbed by \cs{@@_use:Nw}, which detects blank items with
+% a \cs{tl_if_empty:oTF} test (in which case it recurses). Non-blank
+% items are either the end of the list, in which case the argument
+% |#1| of \cs{@@_use:Nw} is used to properly end the list, or are
+% normal items, which must be trimmed and properly unbraced. As we
+% find successive items, the long list of \cs{@@_use:Nw} calls gets
+% shortened and we end up calling \cs{@@_use_more:w} once we have
+% found $3$ items. This auxiliary leaves the first-found item and the
+% general separator, and calls \cs{@@_use:Nw} to find more items.
+% A subtlety is that we use \cs{@@_use_end:w} both in the case of a
+% two-item list and for the last two items of a general list: to get
+% the correct separator, \cs{@@_use_more:w} replaces the
+% separator-of-two by the last-separator when called, namely as soon
+% as we have found three items.
+% \begin{macrocode}
+\cs_new:Npn \clist_use:nnnn #1#2#3#4
+ {
+ \@@_use:Nw \@@_use_none_delimit_by_s_stop:w
+ \@@_use:Nw \@@_use_one:w
+ \@@_use:Nw \@@_use_end:w
+ \@@_use_more:w ;
+ {#2} {#3} {#4} ;
+ \prg_do_nothing: #1 , \s_@@_mark ,
+ \s_@@_stop
+ }
+\cs_new:Npn \@@_use:Nw #1#2 ; #3 ; #4 ,
+ {
+ \tl_if_empty:oTF { \use_none:nn #4 ? }
+ { \@@_use:Nw #1#2 ; }
+ {
+ \@@_use_none_delimit_by_s_mark:w #4 #1 \s_@@_mark
+ \tl_trim_spaces_apply:oN {#4} \@@_use_ii_i:nn
+ \@@_map_unbrace:wn , { #2 ; }
+ }
+ #3 ; \prg_do_nothing:
+ }
+\cs_new:Npn \@@_use_one:w \s_@@_mark #1 , #2#3#4 \s_@@_stop
+ { \exp_not:n {#3} }
+\cs_new:Npn \@@_use_end:w
+ \s_@@_mark #1 , #2#3#4#5#6 \s_@@_stop
+ { \exp_not:n { #4 #5 #3 } }
+\cs_new:Npn \@@_use_more:w ; #1#2#3#4#5#6 ;
+ {
+ \exp_not:n { #3 #5 }
+ \@@_use:Nw \@@_use_end:w \@@_use_more:w ;
+ {#1} {#2} {#6} {#5} {#6} ;
+ }
+\cs_new:Npn \clist_use:nn #1#2 { \clist_use:nnnn {#1} {#2} {#2} {#2} }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Using a single item}
%
% \begin{macro}{\clist_item:Nn, \clist_item:cn}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index 1291f40128d..e0cdd606b31 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
index 1b59215b8a2..9b72bdc466a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -158,8 +158,8 @@
% red!50!cyan
% \end{verbatim}
% will result in a color specification using the |rgb| model, made up of
-% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}. As color
-% model interconversion is not exact.
+% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}.
+% This may be important as color model interconversion is not exact.
%
% The one exception to the above is where the first model in an expression is
% |gray|. In this case, the order of mixing is \enquote{swapped} internally, so
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
index 56b74c3a344..b7eb9d0215d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index 29e0f37051d..42e7283436d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index 9e079c7f430..aa9fce6c58b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
@@ -79,7 +79,7 @@ and all files in that bundle must be distributed together.
%
% \title{The \cls{l3doc} class}
% \author{\Team}
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
% \maketitle
% \tableofcontents
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 6555eb4c3b1..fa01fb954e7 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 1c6b1bd01d9..163e867881d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index eb025e0b16c..a89f6540c68 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index ee3458bb461..1b8dfa7c7ae 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index d4f03e55f2c..59eb0b65df0 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
% \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 172735f54d1..1811a174755 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index 9ded69aa6f4..0a5662979dd 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index 97d449608f2..097da442af6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index 1ae1a4faf87..0be0e3f605d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index ebb28522230..44ae9a5d7d6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index 75823bbb95c..165d955d7b9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index c43da846b6b..dcfa86e2276 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index a8c2f8403b3..7b854343ed1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index e61833552bb..5012e48e9b2 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index faba0ea08a7..c4dbfa4d15a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
% \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 7ca054e7d22..669642d2e8f 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index e56560e88df..27ee89c0730 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index 7a110305cb5..a66073e0735 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index 54f36dbab51..5994a193c6c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index d0be26dc676..f67e937989b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index c5586a9a0d5..428774aa937 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index cf04ec82d2d..8f5f984c79c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -891,7 +891,7 @@
% \end{verbatim}
% are treated identically.
%
-% \begin{function}[rEXP, added=2020-12-19]{\keyval_parse:nnn}
+% \begin{function}[rEXP, added=2020-12-19, updated = 2021-05-10]{\keyval_parse:nnn}
% \begin{syntax}
% \cs{keyval_parse:nnn} \Arg{code_1} \Arg{code_2} \Arg{key--value list}
% \end{syntax}
@@ -929,7 +929,7 @@
% \end{texnote}
% \end{function}
%
-% \begin{function}[rEXP,updated = 2020-12-19]{\keyval_parse:NNn}
+% \begin{function}[rEXP, updated = 2021-05-10]{\keyval_parse:NNn}
% \begin{syntax}
% \cs{keyval_parse:NNn} \meta{function_1} \meta{function_2} \Arg{key--value list}
% \end{syntax}
@@ -1017,7 +1017,10 @@
% argument.
% \begin{macrocode}
\cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3
- { \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 }
+ {
+ \group_align_safe_begin:
+ \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1
+ }
\cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn
% \end{macrocode}
% \end{macro}
@@ -1255,7 +1258,7 @@
\cs_new:Npn \@@_end_loop_active:w
\s_@@_tail
\@@_loop_other:nnw ##1 \s_@@_mark \s_@@_tail , \s_@@_tail ,
- { }
+ { \group_align_safe_end: }
% \end{macrocode}
% \end{macro}
%
@@ -1280,14 +1283,18 @@
{
\@@_if_blank:w \s_@@_mark #2 \s_@@_nil \s_@@_stop \@@_blank_key_error:w
\s_@@_mark \s_@@_stop
+ \group_align_safe_end:
\exp_not:n { #4 { #2 } { #1 } }
+ \group_align_safe_begin:
\@@_loop_other:nnw {#3} {#4}
}
\cs_new:Npn \@@_key:nn #1 #2
{
\@@_if_blank:w \s_@@_mark #1 \s_@@_nil \s_@@_stop \@@_blank_key_error:w
\s_@@_mark \s_@@_stop
+ \group_align_safe_end:
\exp_not:n { #2 { #1 } }
+ \group_align_safe_begin:
\@@_loop_other:nnw {#2}
}
% \end{macrocode}
@@ -1311,7 +1318,8 @@
% \begin{macrocode}
\cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \@@_trim:nN #1 \@@_key:nn
{ \@@_loop_other:nnw }
-\cs_new:Npn \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n #1
+\cs_new:Npn \@@_blank_key_error:w
+ \s_@@_mark \s_@@_stop \group_align_safe_end: \exp_not:n #1
{
\__kernel_msg_expandable_error:nn
{ keyval } { blank-key-name }
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
index a843e28ffef..05b98fed562 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index 7e4f729ca5e..35c8df065da 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index b408c181b26..ed2169b94f2 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -125,6 +125,40 @@
% defined.
% \end{function}
%
+% \section{Customizable information for message modules}
+%
+% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n}
+% \begin{syntax}
+% \cs{msg_module_name:n} \Arg{module}
+% \end{syntax}
+% Expands to the public name of the \meta{module} as defined by
+% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module}
+% unchanged).
+% \end{function}
+%
+% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n}
+% \begin{syntax}
+% \cs{msg_module_type:n} \Arg{module}
+% \end{syntax}
+% Expands to the description which applies to the \meta{module},
+% for example a |Package| or |Class|. The information here is defined
+% in \cs{g_msg_module_type_prop}, and will default to |Package| if an
+% entry is not present.
+% \end{function}
+%
+% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop}
+% Provides a mapping between the module name used for messages, and that
+% for documentation. For example, \LaTeX{}3 core messages are stored in
+% the reserved |LaTeX| tree, but are printed as |LaTeX3|.
+% \end{variable}
+%
+% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop}
+% Provides a mapping between the module name used for messages, and that
+% type of module. For example, for \LaTeX{}3 core messages, an empty entry
+% is set here meaning that they are not described using the standard
+% |Package| text.
+% \end{variable}
+%
% \section{Contextual information for messages}
%
% \begin{function}[rEXP]{\msg_line_context:}
@@ -215,25 +249,6 @@
% |Package| is the standard outcome: see \cs{msg_module_type:n}.
% \end{function}
%
-% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n}
-% \begin{syntax}
-% \cs{msg_module_name:n} \Arg{module}
-% \end{syntax}
-% Expands to the public name of the \meta{module} as defined by
-% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module}
-% unchanged).
-% \end{function}
-%
-% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n}
-% \begin{syntax}
-% \cs{msg_module_type:n} \Arg{module}
-% \end{syntax}
-% Expands to the description which applies to the \meta{module},
-% for example a |Package| or |Class|. The information here is defined
-% in \cs{g_msg_module_type_prop}, and will default to |Package| if an
-% entry is not present.
-% \end{function}
-%
% \begin{function}[EXP,updated = 2018-09-30]{\msg_see_documentation_text:n}
% \begin{syntax}
% \cs{msg_see_documentation_text:n} \Arg{module}
@@ -246,23 +261,10 @@
% \end{quote}
% This function can be redefined to alter the language in which the
% message is given, using |#1| as the name of the \meta{module} to
-% be included. The name of the \meta{module} may be altered by use of
-% \cs{g_msg_module_documentation_prop}
+% be included. The name of the \meta{module} is produced using
+% \cs{msg_module_name:n}.
% \end{function}
%
-% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop}
-% Provides a mapping between the module name used for messages, and that
-% for documentation. For example, \LaTeX{}3 core messages are stored in
-% the reserved |LaTeX| tree, but are printed as |LaTeX3|.
-% \end{variable}
-%
-% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop}
-% Provides a mapping between the module name used for messages, and that
-% type of module. For example, for \LaTeX{}3 core messages, an empty entry
-% is set here meaning that they are not described using the standard
-% |Package| text.
-% \end{variable}
-%
% \section{Issuing messages}
%
% Messages behave differently depending on the message class. In all cases,
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index 9a548a53919..44239f2348e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
index 747f46aa9f3..71a0f854697 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 972e417998c..eedb4f271a3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -1620,7 +1620,7 @@
% \TeX{}'s alignment structures present many problems. As Knuth says
% himself in \emph{\TeX : The Program}: \enquote{It's sort of a miracle
% whenever \tn{halign} or \tn{valign} work, [\ldots]} One problem relates
-% to commands that internally issues a \tn{cr} but also peek ahead for
+% to commands that internally issue a \tn{cr} but also peek ahead for
% the next character for use in, say, an optional argument. If the
% next token happens to be a |&| with category code~4 we get some
% sort of weird error message because the underlying
@@ -1631,14 +1631,21 @@
% special group so that \TeX{} still thinks it's on safe ground but at
% the same time we don't want to introduce any brace group that may
% find its way to the output. The following functions help with this
-% by using code documented only in Appendix~D of
+% by using behaviour documented only in Appendix~D of
% \emph{The \TeX{}book}\dots
+% In short evaluating |`{| and |`}| as numbers will not change the counter
+% \TeX{} uses to keep track of its state in an alignment, whereas gobbling a
+% brace using \cs{if_false:} will affect \TeX's state without producing any
+% real group.
% We place the \cs{if_false:} |{| \cs{fi:} part at that place so
% that the successive expansions of \cs{group_align_safe_begin/end:}
% are always brace balanced.
% \begin{macrocode}
+\group_begin:
+\tex_catcode:D `\^^@ = 2 \exp_stop_f:
\cs_new:Npn \group_align_safe_begin:
- { \if_int_compare:w \if_false: { \fi: `} = \c_zero_int \fi: }
+ { \exp:w \if_false: { \fi: `^^@ \exp_stop_f: }
+\group_end:
\cs_new:Npn \group_align_safe_end:
{ \if_int_compare:w `{ = \c_zero_int } \fi: }
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index 38acc36a4c9..371f894c420 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index 8106e1746e5..10ccfa74836 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index 0824cbcb974..4962ca6fa2e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -270,11 +270,15 @@
% \item[\{$n,m$\}] At least $n$, no more than $m$, greedy.
% \item[\{$n,m$\}?] At least $n$, no more than $m$, lazy.
% \end{l3regex-syntax}
+% For greedy quantifiers the regex code will first investigate matches
+% that involve as many repetitions as possible, while for lazy
+% quantifiers it investigates matches with as few repetitions as
+% possible first.
%
% Alternation and capturing groups.
% \begin{l3regex-syntax}
% \item[A\char`|B\char`|C] Either one of \texttt{A}, \texttt{B},
-% or \texttt{C}.
+% or \texttt{C}, investigating \texttt{A} first.
% \item[(\ldots{})] Capturing group.
% \item[(?:\ldots{})] Non-capturing group.
% \item[(?\char`|\ldots{})] Non-capturing group which resets
@@ -5652,17 +5656,21 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_replacement_normal:n #1
{
- \tl_if_empty:NTF \l_@@_replacement_category_tl
- { \@@_replacement_normal_aux:N #1 }
- { % (
- \token_if_eq_charcode:NNTF #1 )
- {
- \seq_pop:NN \l_@@_replacement_category_seq
- \l_@@_replacement_category_tl
- }
- {
- \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w }
- ? #1
+ \int_compare:nNnTF { \l_@@_replacement_csnames_int } > 0
+ { \exp_args:No \@@_replacement_put:n { \token_to_str:N #1 } }
+ {
+ \tl_if_empty:NTF \l_@@_replacement_category_tl
+ { \@@_replacement_normal_aux:N #1 }
+ { % (
+ \token_if_eq_charcode:NNTF #1 )
+ {
+ \seq_pop:NN \l_@@_replacement_category_seq
+ \l_@@_replacement_category_tl
+ }
+ {
+ \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w }
+ ? #1
+ }
}
}
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index 7b6cc0c857d..18e954d9e18 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 67c71a890bf..fa2b011f990 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index 58e65d59b19..46ed7ca906e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
index 23fbf0421b9..c9ce040eeec 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index 10d4fa865e4..aecd6d3c0d1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index 57f3361c517..6399f57f318 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
index 6f6bef57ec4..3fb6816d12e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
index 18cc1db0648..54fa33d04e8 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
index aee505c0c52..58e87ba0e3a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index f2f10d16647..05f32c25fe5 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 30a9612af15..fb2a14b6f05 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index 3db1f706c84..ce65d87061b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%
@@ -1080,6 +1080,15 @@
% \cs{peek_regex:nTF} as control sequences, while functions that
% inspect individual tokens (for instance \cs{peek_charcode:NTF})
% only take into account their meaning.
+%
+% The \cs{peek_regex:nTF} function only inspects as few tokens as
+% necessary to determine whether the regular expression matches.
+% For instance \cs{peek_regex:nTF} \verb"{ abc | [a-z] }" |{ } { }|
+% |abc| will only inspect the first token~|a| even though the first
+% branch |abc| of the alternative is preferred in functions such as
+% \cs{peek_regex_remove_once:n}. This may have an effect on
+% tokenization if the input stream has not yet been tokenized and
+% category codes are changed.
% \end{texnote}
% \end{function}
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index 6165c802ae6..0d2a3bedbc8 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2021-05-07}
+% \date{Released 2021-05-11}
%
% \maketitle
%