diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
56 files changed, 296 insertions, 201 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index a24e520f458..c03cfc436e5 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{2020-05-11}% +\def\ExplFileDate{2020-05-14}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx index 188477adcf5..4e3ffdbe20f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 22b7a75d15d..8069dbafa87 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index 4ff6267be1c..88682ead646 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index 7c6b12dd787..9279b3a1da4 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index c97fb26e258..90d433dcd94 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 0b011f80e0e..b6c9390ceef 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index 47fca974655..2dd3f49c121 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx index 0555edc19cb..5f0d01d4207 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index df79d6a031d..d3be8e5fd03 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index f84e9faea3a..3143cbcd9f1 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index 9ef8771afb4..1f9bb203941 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 2020-05-11} +% \date{Released 2020-05-14} % \maketitle % \tableofcontents % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index 044e3fbab5f..8177c56ddce 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index 0841f43fc44..6357eb73174 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index c816d771fbe..2aba70b29ed 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx index d48aac03f51..79b816bfd8a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 7a76d293869..301f78a3407 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index 725abc23b9e..64e67f8fad0 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 2020-05-11} +% \date{Released 2020-05-14} % \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 02817722757..85a31450c94 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index 55823ba7fb2..b634f3a949a 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index fc629937c47..9ede33c3780 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index a1defe98894..8f2c090d5b0 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index 8904c442005..28b2eaca4fa 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index a503e3a3d49..a76ba25fb4b 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index 978d4dfe7f3..bc0a4c1e64f 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index 11bf7d311d1..61e8d09b8fe 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index a5b0bc64859..0edd5bf20c1 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index 51d25a090ee..093fdccffe0 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 2020-05-11} +% \date{Released 2020-05-14} % \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 156485e6286..1d4ce7f6a68 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index f9bcbee4677..4dd9a6815c1 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index d41c366b739..9295a0d05a3 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index faab276e44a..6b58e379da8 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index 1c68482f551..c8ea3e31721 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index d5cc6170ad4..52dd498f571 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index b3630af0b16..621f3776ded 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % @@ -939,13 +939,13 @@ % % \subsection{Low-level interface} % -% The low-level key parser is based heavily on \pkg{keyval}, but with a number -% of additional \enquote{safety} requirements and with the idea that the -% parsed list of key--value pairs can be processed in a variety of ways. -% The net result is that this code needs around twice the amount of time -% as \pkg{keyval} to parse the same list of keys. To optimise speed as far -% as reasonably practical, a number of lower-level approaches are taken -% rather than using the higher-level \pkg{expl3} interfaces. +% The low-level key parser's implementation is based heavily on \pkg{expkv}. +% Compared to \pkg{keyval} it adds a number of additional \enquote{safety} +% requirements and allows to process the parsed list of key--value pairs in a +% variety of ways. The net result is that this code needs around one and a half +% the amount of time as \pkg{keyval} to parse the same list of keys. To optimise +% speed as far as reasonably practical, a number of lower-level approaches are +% taken rather than using the higher-level \pkg{expl3} interfaces. % % \begin{macrocode} %<@@=keyval> @@ -970,9 +970,9 @@ % \end{macrocode} % % \begin{macro}[EXP]{\keyval_parse:NNn} -% The main function starts the first of two input loops. The outer loop splits -% the key--value list at active commas, the inner loop will do so at other -% commas. The use of \cs{s_@@_mark} here prevents loss of braces from the key +% The main function starts the first of two loops. The outer loop splits the +% key--value list at active commas, the inner loop will do so at other commas. +% The use of \cs{s_@@_mark} here prevents loss of braces from the key % argument. % \begin{macrocode} \cs_new:Npn \keyval_parse:NNn ##1 ##2 ##3 @@ -982,157 +982,267 @@ % % \begin{macro}[EXP]{\@@_loop_active:NNw} % First a fast test for the end of the loop is done, it'll gobble everything -% up to an \cs{s_@@_mark} immediately followed by an \cs{s_@@_tail}. The loop -% ending macro will gobble everything to the last \cs{s_@@_mark} in this -% definition. +% up to a \cs{s_@@_tail}. The loop ending macro will gobble everything to the +% last \cs{s_@@_mark} in this definition. % If the end isn't reached yet, start the second loop splitting at other -% comments, and after that one iterate the current loop. +% commas, and after that one iterate the current loop. % \begin{macrocode} \cs_new:Npn \@@_loop_active:NNw ##1 ##2 ##3 #1 { \@@_if_recursion_tail:w ##3 - \@@_end_loop_active:w \s_@@_mark \s_@@_tail + \@@_end_loop_active:w \s_@@_tail \@@_loop_other:NNw ##1 ##2 ##3 , \s_@@_tail , \@@_loop_active:NNw ##1 ##2 \s_@@_mark } % \end{macrocode} % \end{macro} % +% \begin{macro}[EXP]{\@@_split_other:w, \@@_split_active:w} +% These two macros allow to split at the first equals sign of category 12 or +% 13. At the same time they also execute branching by inserting the first +% token following \cs{s_@@_mark} that followed the equals sign. Hence they +% also test for the presence of such an equals sign simultaneously. +% \begin{macrocode} + \cs_new:Npn \@@_split_other:w ##1 = ##2 \s_@@_mark ##3 ##4 \s_@@_stop + { ##3 ##1 \s_@@_stop \s_@@_mark ##2 } + \cs_new:Npn \@@_split_active:w ##1 #2 ##2 \s_@@_mark ##3 ##4 \s_@@_stop + { ##3 ##1 \s_@@_stop \s_@@_mark ##2 } +% \end{macrocode} +% \end{macro} +% % \begin{macro}[EXP]{\@@_loop_other:NNw} % The second loop uses the same test for its end as the first loop, next it -% tests whether there are other or active equals signs, throwing an error if -% there are both. If there are none, test whether the argument is blank or is -% a single key. If there are only active equals signs split at those, else -% split at others. Finally, iterate the loop. +% splits at the first active equals sign using \cs{@@_split_active:w}. The +% \cs{s_@@_nil} prevents accidental brace stripping and acts as a delimiter in +% the next steps. First testing for an active equals sign will reduce the +% number of necessary expansion steps for the expected average use case of +% other equals signs and hence perform better on average. % \begin{macrocode} \cs_new:Npn \@@_loop_other:NNw ##1 ##2 ##3 , { \@@_if_recursion_tail:w ##3 - \@@_end_loop_other:w \s_@@_mark \s_@@_tail - \@@_if_has_equal_other:w ##3 = \s_@@_stop - \@@_has_false:w \s_@@_mark \s_@@_stop \use_i:nn - { - \@@_if_has_equal_active:w ##3 #2 \s_@@_stop - \@@_has_false:w \s_@@_mark \s_@@_stop \use_i:nn - \@@_misplaced_equal_error: - { \@@_split_other:w ##3 = \s_@@_stop ##2 } - } - { - \@@_if_has_equal_active:w ##3 #2 \s_@@_stop - \@@_has_false:w \s_@@_mark \s_@@_stop \use_i:nn - { \@@_split_active:w ##3 #2 \s_@@_stop ##2 } - { - \@@_if_blank:w ##3 \s_@@_nil \s_@@_stop - \@@_blank_true:w \s_@@_mark \s_@@_stop \use:n - { \@@_trim:nN { ##3 } \@@_key:nN ##1 } - } - } + \@@_end_loop_other:w \s_@@_tail + \@@_split_active:w ##3 \s_@@_nil + \s_@@_mark \@@_split_active_auxi:w + #2 \s_@@_mark \@@_clean_up_active:w + \s_@@_stop + ##1 ##2 \@@_loop_other:NNw ##1 ##2 \s_@@_mark } % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_split_active:w} -% \begin{macro}[EXP]{\@@_split_active:nw} -% Splits at the first active equals sign and trims the key. Next test whether -% there are any more valid split points, if so throw an error and gobble the -% remaining \meta{function_2}, which will not yet be gobbled. If there was -% only one active equals sign start trimming the spaces off the value and give -% control to \cs[no-index]{@@_key_val:nnN}. +% \begin{macro}[EXP]{\@@_split_active_auxi:w} +% \begin{macro}[EXP]{\@@_split_active_auxii:w} +% \begin{macro}[EXP]{\@@_split_active_auxiii:w} +% \begin{macro}[EXP]{\@@_split_active_auxiv:w} +% \begin{macro}[EXP]{\@@_split_active_auxv:w} +% After \cs{@@_split_active:w} the following will only be called if there was +% at least one active equals sign in the current key--value pair. Therefore +% this is the execution branch for a key--value pair with an active equals +% sign. |##1| will be everything up to the first active equals sign. First it +% tests for other equals signs in the key name, which will eventually throw an +% error via \cs{@@_misplaced_equal_after_active_error:w}. If none was found we +% forward the key to \cs{@@_split_active_auxii:w}. +% \begin{macrocode} + \cs_new:Npn \@@_split_active_auxi:w ##1 \s_@@_stop + { + \@@_split_other:w ##1 \s_@@_nil + \s_@@_mark \@@_misplaced_equal_after_active_error:w + = \s_@@_mark \@@_split_active_auxii:w + \s_@@_stop + } +% \end{macrocode} +% \cs{@@_split_active_auxii:w} gets the correct key name with a leading +% \cs{s_@@_mark} as |##1|. It has to sanitise the remainder of the previous +% test and trims the key name which will be forwarded to +% \cs{@@_split_active_auxiii:w}. +% \begin{macrocode} + \cs_new:Npn \@@_split_active_auxii:w + ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_after_active_error:w + \s_@@_stop \s_@@_mark + { \@@_trim:nN { ##1 } \@@_split_active_auxiii:w } +% \end{macrocode} +% Next we test for a misplaced active equals sign in the value, if none is +% found \cs{@@_split_active_auxiv:w} will be called. +% \begin{macrocode} + \cs_new:Npn \@@_split_active_auxiii:w ##1 ##2 \s_@@_nil + { + \@@_split_active:w ##2 \s_@@_nil + \s_@@_mark \@@_misplaced_equal_in_split_error:w + #2 \s_@@_mark \@@_split_active_auxiv:w + \s_@@_stop + { ##1 } + } +% \end{macrocode} +% This runs the last test after sanitising the remainder of the previous one. +% This time test for a misplaced equals sign of category 12 in the value. +% Finally the last auxiliary macro will be called. % \begin{macrocode} - \cs_new:Npn \@@_split_active:w ##1 #2 - { \@@_trim:nN { ##1 } \@@_split_active:nw \s_@@_mark } - \cs_new:Npn \@@_split_active:nw ##1 ##2 #2 ##3 \s_@@_stop + \cs_new:Npn \@@_split_active_auxiv:w + ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w + \s_@@_stop \s_@@_mark { - \@@_if_empty:w \s_@@_mark ##3 \s_@@_stop - \@@_has_false:w \s_@@_mark \s_@@_stop \use_i:nn - { \@@_misplaced_equal_error: \use_none:n } - { \@@_trim:nN { ##2 } \@@_key_val:nnN { ##1 } } + \@@_split_other:w ##1 \s_@@_nil + \s_@@_mark \@@_misplaced_equal_in_split_error:w + = \s_@@_mark \@@_split_active_auxv:w + \s_@@_stop } % \end{macrocode} +% This last macro in this execution branch sanitises the last test, trims the +% value and passes it to \cs{@@_pair:nnNN}. +% \begin{macrocode} + \cs_new:Npn \@@_split_active_auxv:w + ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w + \s_@@_stop \s_@@_mark + { \@@_trim:nN { ##1 } \@@_pair:nnNN } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} % \end{macro} % \end{macro} % -% \begin{macro}[EXP]{\@@_if_has_equal_active:w} -% The test for an active equals sign just gobbles tokens until the first -% active equals sign and then runs the test for an empty argument. +% \begin{macro}[EXP]{\@@_clean_up_active:w} +% The following is the branch taken if the key--value pair doesn't contain an +% active equals sign. The remainder of that test will be cleaned up by +% \cs{@@_clean_up_active:w} which will then split at an equals sign of +% category other. % \begin{macrocode} - \cs_new:Npn \@@_if_has_equal_active:w ##1 #2 - { \@@_if_empty:w \s_@@_mark } + \cs_new:Npn \@@_clean_up_active:w + ##1 \s_@@_nil \s_@@_mark \@@_split_active_auxi:w \s_@@_stop \s_@@_mark + { + \@@_split_other:w ##1 \s_@@_nil + \s_@@_mark \@@_split_other_auxi:w + = \s_@@_mark \@@_clean_up_other:w + \s_@@_stop + } % \end{macrocode} % \end{macro} % -% We're done with the macros which need active equals signs or commas in their -% definition, so we can end that scope and call the temporary macro which will -% do the definitions. +% \begin{macro}[EXP]{\@@_split_other_auxi:w} +% \begin{macro}[EXP]{\@@_split_other_auxii:w} +% \begin{macro}[EXP]{\@@_split_other_auxiii:w} +% This is executed if the key--value pair doesn't contain an active equals +% sign but at least one other. |##1| of \cs{@@_split_other_auxi:w} will +% contain the complete key name, which is trimmed and forwarded to the next +% auxiliary macro. % \begin{macrocode} - } - \char_set_catcode_active:n { `\, } - \char_set_catcode_active:n { `\= } - \@@_tmp:NN , = -\group_end: + \cs_new:Npn \@@_split_other_auxi:w ##1 \s_@@_stop + { \@@_trim:nN { ##1 } \@@_split_other_auxii:w } +% \end{macrocode} +% We know that the value doesn't contain misplaced active equals signs but we +% have to test for others. +% \begin{macrocode} + \cs_new:Npn \@@_split_other_auxii:w ##1 ##2 \s_@@_nil + { + \@@_split_other:w ##2 \s_@@_nil + \s_@@_mark \@@_misplaced_equal_in_split_error:w + = \s_@@_mark \@@_split_other_auxiii:w + \s_@@_stop + { ##1 } + } +% \end{macrocode} +% \cs{@@_split_other_auxiii:w} sanitises the test for other equals signs, +% trims the value and forwards it to \cs{@@_pair:nnNN}. +% \begin{macrocode} + \cs_new:Npn \@@_split_other_auxiii:w + ##1 \s_@@_nil \s_@@_mark \@@_misplaced_equal_in_split_error:w + \s_@@_stop \s_@@_mark + { \@@_trim:nN { ##1 } \@@_pair:nnNN } % \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}[EXP]{\@@_end_loop_active:w,\@@_end_loop_other:w} -% Both of these macros just have to gobble a few tokens to remove the reminder -% of the loops current iteration. We do this in a pretty static manner, -% explicitly stating every token we know beforehand because this is slightly -% faster. +% \begin{macro}[EXP]{\@@_clean_up_other:w} +% \cs{@@_clean_up_other:w} is the last branch that might exist. It is called +% if no equals sign was found, hence the only possibilities left are a blank +% list element, which is to be skipped, or a lonely key. If it's no empty list +% element this will trim the key name and forward it to \cs{@@_key:nNN}. % \begin{macrocode} -\cs_new:Npn \@@_end_loop_active:w - \s_@@_mark \s_@@_tail - \@@_loop_other:NNw #1 , \s_@@_tail , - \@@_loop_active:NNw #2 \s_@@_mark - { } -\cs_new:Npn \@@_end_loop_other:w - \s_@@_mark \s_@@_tail - \@@_if_has_equal_other:w #1 = \s_@@_stop - \@@_has_false:w \s_@@_mark \s_@@_stop \use_i:nn - #2 - \@@_loop_other:NNw #3 \s_@@_mark - { } + \cs_new:Npn \@@_clean_up_other:w + ##1 \s_@@_nil \s_@@_mark \@@_split_other_auxi:w \s_@@_stop \s_@@_mark + { + \@@_if_blank:w ##1 \s_@@_nil \s_@@_stop \@@_blank_true:w + \s_@@_mark \s_@@_stop \use:n + { \@@_trim:nN { ##1 } \@@_key:nNN } + } % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_split_other:w} -% \begin{macro}[EXP]{\@@_split_other:nw} -% These work exactly as \cs[no-index]{@@_split_active:wN}, just for -% equals signs of category other. +% \begin{macro}[EXP]{\@@_misplaced_equal_after_active_error:w} +% \begin{macro}[EXP]{\@@_misplaced_equal_in_split_error:w} +% All these two macros do is gobble the remainder of the current other loop +% execution and throw an error. % \begin{macrocode} -\cs_new:Npn \@@_split_other:w #1 = - { \@@_trim:nN { #1 } \@@_split_other:nw \s_@@_mark } -\cs_new:Npn \@@_split_other:nw #1 #2 = #3 \s_@@_stop - { - \@@_if_empty:w \s_@@_mark #3 \s_@@_stop - \@@_has_false:w \s_@@_mark \s_@@_stop \use_i:nn - { \@@_misplaced_equal_error: \use_none:n } - { \@@_trim:nN { #2 } \@@_key_val:nnN { #1 } } - } + \cs_new:Npn \@@_misplaced_equal_after_active_error:w + \s_@@_mark ##1 \s_@@_stop \s_@@_mark ##2 \s_@@_nil + \s_@@_mark ##3 \s_@@_nil ##4 ##5 + { + \__kernel_msg_expandable_error:nn + { kernel } { misplaced-equals-sign } + } + \cs_new:Npn \@@_misplaced_equal_in_split_error:w + \s_@@_mark ##1 \s_@@_stop \s_@@_mark ##2 \s_@@_nil + ##3 ##4 ##5 + { + \__kernel_msg_expandable_error:nn + { kernel } { misplaced-equals-sign } + } % \end{macrocode} % \end{macro} % \end{macro} % -% \begin{macro}[EXP]{\@@_key:nN} -% This will get the current key with spaces trimmed and \meta{function_1} as -% its arguments. All it has to do is put them in an \cs{exp_not:n} and reorder -% them. +% \begin{macro}[EXP]{\@@_end_loop_other:w, \@@_end_loop_active:w} +% All that's left for the parsing loops are the macros which end the +% recursion. Both just gobble the remaining tokens of the respective loop +% including the next recursion call. % \begin{macrocode} -\cs_new:Npn \@@_key:nN #1 #2 - { \exp_not:n { #2 { #1 } } } + \cs_new:Npn \@@_end_loop_other:w + \s_@@_tail + \@@_split_active:w ##1 \s_@@_nil + \s_@@_mark \@@_split_active_auxi:w + #2 \s_@@_mark \@@_clean_up_active:w + \s_@@_stop + ##2 ##3 + \@@_loop_other:NNw ##4 \s_@@_mark + { } + \cs_new:Npn \@@_end_loop_active:w + \s_@@_tail + \@@_loop_other:NNw ##1 , \s_@@_tail , + \@@_loop_active:NNw ##2 \s_@@_mark + { } % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_key_val:nnN} -% This will get the key name and value with spaces trimmed. It has to -% assert that the key name isn't empty. Afterwards put them into an -% \cs{exp_not:n} together with \meta{function_2}. If the key is empty they are -% gobbled instead. +% The parsing loops are done, so here ends the definition of \cs{@@_tmp:NN}, +% which will finally set up the macros. % \begin{macrocode} -\cs_new:Npn \@@_key_val:nnN #1 #2 #3 + } + \char_set_catcode_active:n { `\, } + \char_set_catcode_active:n { `\= } + \@@_tmp:NN , = +\group_end: +% \end{macrocode} +% +% \begin{macro}[EXP]{\@@_pair:nnNN, \@@_key:nNN} +% These macros will be called on the parsed keys and values of the key--value +% list. All arguments are completely trimmed. They test for blank key names +% and call the functions passed to \cs{keyval_parse:NNn} inside of +% \cs{exp_not:n} with the correct arguments. +% \begin{macrocode} +\cs_new:Npn \@@_pair:nnNN #1 #2 #3 #4 + { + \@@_if_blank:w \s_@@_mark #2 \s_@@_nil \s_@@_stop \@@_blank_key_error:w + \s_@@_mark \s_@@_stop + \exp_not:n { #4 { #2 } { #1 } } + } +\cs_new:Npn \@@_key:nNN #1 #2 #3 { - \@@_if_empty:w \s_@@_mark #2 \s_@@_stop - \@@_empty_key:w \s_@@_mark \s_@@_stop - \exp_not:n { #3 { #2 } { #1 } } + \@@_if_blank:w \s_@@_mark #1 \s_@@_nil \s_@@_stop \@@_blank_key_error:w + \s_@@_mark \s_@@_stop + \exp_not:n { #2 { #1 } } } % \end{macrocode} % \end{macro} @@ -1143,46 +1253,31 @@ % with an arbitrary token following the argument. Each of these utilize the % fact that the argument will contain a leading \cs{s_@@_mark}. % \begin{macrocode} -\cs_new:Npn \@@_if_empty:w #1 \s_@@_mark \s_@@_stop {} +\cs_new:Npn \@@_if_empty:w #1 \s_@@_mark \s_@@_stop { } \cs_new:Npn \@@_if_blank:w \s_@@_mark #1 { \@@_if_empty:w \s_@@_mark } -\cs_new:Npn \@@_if_recursion_tail:w #1 \s_@@_mark \s_@@_tail {} +\cs_new:Npn \@@_if_recursion_tail:w \s_@@_mark #1 \s_@@_tail { } % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_has_false:w,\@@_blank_true:w,\@@_empty_key:w} +% \begin{macro}[EXP]{\@@_blank_true:w,\@@_blank_key_error:w} % These macros will be called if the tests above didn't gobble them, they % execute the branching. % \begin{macrocode} -\cs_new:Npn \@@_has_false:w \s_@@_mark \s_@@_stop \use_i:nn #1 #2 { #2 } -\cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \use:n #1 {} -\cs_new:Npn \@@_empty_key:w \s_@@_mark \s_@@_stop \exp_not:n #1 - { \@@_misplaced_equal_error: } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}[EXP]{\@@_if_has_equal_other:w} -% Another test that works by gobbling tokens until a specific one is hit. -% \begin{macrocode} -\cs_new:Npn \@@_if_has_equal_other:w #1 = - { \@@_if_empty:w \s_@@_mark } -% \end{macrocode} -% \end{macro} -% -% \begin{macro}[EXP]{\@@_misplaced_equal_error:} -% Just throw an error expandably. This is hid inside a macro so that other -% macros don't have to gobble so many tokens, which increases speed for -% correct input. This will marginally slow down the error case, but that -% doesn't have to be fast anyway. -% \begin{macrocode} -\cs_new:Npn \@@_misplaced_equal_error: - { \__kernel_msg_expandable_error:nn { kernel } { misplaced-equals-sign } } +\cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \use:n #1 #2 #3 { } +\cs_new:Npn \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n #1 + { + \__kernel_msg_expandable_error:nn + { kernel } { blank-key-name } + } % \end{macrocode} % \end{macro} % -% One message for the low level parsing system. +% Two messages for the low level parsing system. % \begin{macrocode} \__kernel_msg_new:nnn { kernel } { misplaced-equals-sign } { Misplaced~equals~sign~in~key-value~input~\msg_line_context: } +\__kernel_msg_new:nnn { kernel } { blank-key-name } + { Blank~key~name~in~key-value~input~\msg_line_context: } % \end{macrocode} % % \begin{macro}[EXP]{\@@_trim:nN} @@ -1203,7 +1298,7 @@ \@@_trim_auxi:w ##1 \s_@@_nil - \s_@@_mark #1 {} + \s_@@_mark #1 { } \s_@@_mark \@@_trim_auxii:w \@@_trim_auxiii:w #1 \s_@@_nil @@ -1482,11 +1577,11 @@ \cs_if_exist:cTF { \c_@@_props_root_str \l_@@_property_str } { \@@_define_code:n {#2} } { - \str_if_empty:NF \l_@@_property_str - { - \__kernel_msg_error:nnxx { kernel } { key-property-unknown } - { \l_@@_property_str } { \l_keys_path_str } - } + \str_if_empty:NF \l_@@_property_str + { + \__kernel_msg_error:nnxx { kernel } { key-property-unknown } + { \l_@@_property_str } { \l_keys_path_str } + } } } % \end{macrocode} @@ -2729,7 +2824,7 @@ } { \__kernel_msg_error:nnxx { kernel } { key-unknown } - { \l_keys_path_str } { \l_@@_module_str } + { \l_keys_path_str } { \l_@@_module_str } } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index 1c017035de8..b491255503c 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index 5b3c8243fe0..fd8c5ed6e01 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index feb233bf54c..5547c3ddc79 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index 2878654f585..3f9a7309c96 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index d14576f08c0..34a14829c7d 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index c586164260d..33741fecf0a 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index f513fcb026a..9068f7bbecd 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 7c2d8e7504a..80e2ffa8960 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index 56c4bc1fda7..830adba2cb3 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index 8cfd78d6f14..a4973652c1f 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index 6b41acfe3ee..89c085f7782 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index 4620342091a..88bf391f25b 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index d4cbc2bb49f..d15ee54ed18 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index feef7117355..fe96f7aec5b 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index ad71e493198..51819ed5145 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index 070e41956fb..54266ba72c8 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index 5113e03cc9c..0f8f24cafd3 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index 6fbe2f1bbb8..2a6b31f537a 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index 53f61e97508..b3d6c3ddaca 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index 0608820bbac..0ed1350b035 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index bc0466eecae..6f2d533f584 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 2020-05-11} +% \date{Released 2020-05-14} % % \maketitle % |