summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-23 21:57:42 +0000
committerKarl Berry <karl@freefriends.org>2020-01-23 21:57:42 +0000
commitb893c0b81be7cc13062e7f6257084a1765bc91e6 (patch)
tree938b80d6441ef5a3ecbb9efc0d2747bf517ea501 /Master/texmf-dist/source/latex/l3kernel
parent64190a7a9bd900cc15dde29c88e0fb0c9ab9b082 (diff)
l3kernel (23jan20)
git-svn-id: svn://tug.org/texlive/trunk@53518 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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3clist.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3debug.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx34
-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/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.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.dtx84
-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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx4
-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.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.dtx92
-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.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx2
55 files changed, 206 insertions, 112 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 7295b770db3..5f2037485e9 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-01-12}%
+\def\ExplFileDate{2020-01-22}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
index e3f88dfc947..158b56887f7 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 7814fd30898..51f183ce332 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index c503774a49a..fa7c56b27da 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 16f74edd990..d055974c3b3 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index adb399f9da1..072b1f0be85 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index ab7cc6cca48..2639575a654 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index 0b27eddfdbd..3e068842569 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
index f4fc3498f46..da0d56fddee 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
index 337fddffd7b..25273f5c075 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index 32c5050d87e..4cce22b2410 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
@@ -873,24 +873,24 @@
%
% \subsection{Deprecated \pkg{l3str} functions}
%
-% \begin{macro}[EXP, deprecated = 2021-07-01]
+% \begin{macro}[EXP, deprecated = 2022-07-01]
% {
% \str_lower_case:n, \str_lower_case:f,
% \str_upper_case:n, \str_upper_case:f,
% \str_fold_case:n, \str_fold_case:V
% }
% \begin{macrocode}
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_lower_case:n }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_lowercase:n }
\cs_gset:Npn \str_lower_case:n { \str_lowercase:n }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_lower_case:f }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_lowercase:f }
\cs_gset:Npn \str_lower_case:f { \str_lowercase:f }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_upper_case:n }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_uppercase:n }
\cs_gset:Npn \str_upper_case:n { \str_uppercase:n }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_upper_case:f }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_uppercase:f }
\cs_gset:Npn \str_upper_case:f { \str_uppercase:f }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_fold_case:n }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_foldcase:n }
\cs_gset:Npn \str_fold_case:n { \str_foldcase:n }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \str_fold_case:V }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \str_foldcase:V }
\cs_gset:Npn \str_fold_case:V { \str_foldcase:V }
% \end{macrocode}
% \end{macro}
@@ -1028,7 +1028,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP, deprecated = 2021-07-01]
+% \begin{macro}[EXP, deprecated = 2022-07-01]
% {
% \char_lower_case:N, \char_upper_case:N,
% \char_mixed_case:Nn, \char_fold_case:N,
@@ -1036,21 +1036,21 @@
% \char_str_mixed_case:Nn, \char_str_fold_case:N,
% }
% \begin{macrocode}
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_lower_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_lowercase:N }
\cs_gset:Npn \char_lower_case:N { \char_lowercase:N }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_upper_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_uppercase:N }
\cs_gset:Npn \char_upper_case:N { \char_uppercase:N }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_mixed_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_titlecase:N }
\cs_gset:Npn \char_mixed_case:N { \char_titlecase:N }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_fold_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_foldcase:N }
\cs_gset:Npn \char_fold_case:N { \char_foldcase:N }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_lower_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_lowercase:N }
\cs_gset:Npn \char_str_lower_case:N { \char_str_lowercase:N }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_upper_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_uppercase:N }
\cs_gset:Npn \char_str_upper_case:N { \char_str_uppercase:N }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_mixed_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_titlecase:N }
\cs_gset:Npn \char_str_mixed_case:N { \char_str_titlecase:N }
-\__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \char_str_fold_case:N }
+\__kernel_patch_deprecation:nnNNpn { 2022-01-01 } { \char_str_foldcase:N }
\cs_gset:Npn \char_str_fold_case:N { \char_str_foldcase:N }
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index c2949444822..c2333adb50a 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-01-12}
+% \date{Released 2020-01-22}
% \maketitle
% \tableofcontents
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 3f64b98edf6..bc7bd712ed3 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index a2767d96921..2adec11ca75 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index 274d5da8ecc..65a4d8e2479 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
index a8677aeb684..14b8affe917 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index 2f8b6dcc770..e0ce156f1e2 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index ee6abd5f551..529f5e966b1 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-01-12}
+% \date{Released 2020-01-22}
% \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 f306cc12c1d..6b430746180 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index bf0afbf7c4b..89ee175a518 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index b6b9e0d7c9a..f596ece141e 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index d830b74036d..a8fb4bc9294 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index 961655d05ad..3134edee748 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index e6aab8c3945..fd841bf44e3 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 4c4c31c95e1..6c9228aa92b 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index e56642bd6d2..8ed7387fd2d 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index 672bfd9c8a4..545a67194fa 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index 74809e63859..d47a70452af 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-01-12}
+% \date{Released 2020-01-22}
% \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 fced52d7593..61ef2f4250c 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index 44530a1518b..56a9238cc2f 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index e7f0675fc95..748a705b3dc 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index bc68230b3f2..c0d70864a5b 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index 6fc43aad658..9a957da913f 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index 98f588a53e5..0aa6beaab81 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 54167b15c25..8045b98036a 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
@@ -270,22 +270,26 @@
% does not trigger an error.
% \end{function}
%
-% \begin{function}{.dim_set:N, .dim_set:c, .dim_gset:N, .dim_gset:c}
+% \begin{function}[updated = 2020-01-17]
+% {.dim_set:N, .dim_set:c, .dim_gset:N, .dim_gset:c}
% \begin{syntax}
% \meta{key} .dim_set:N = \meta{dimension}
% \end{syntax}
% Defines \meta{key} to set \meta{dimension} to \meta{value} (which
% must a dimension expression). If the variable does not exist, it
-% is created globally at the point that the key is set up.
+% is created globally at the point that the key is set up. The key will
+% require a value at point-of-use unless a default is set.
% \end{function}
%
-% \begin{function}{.fp_set:N, .fp_set:c, .fp_gset:N, .fp_gset:c}
+% \begin{function}[updated = 2020-01-17]
+% {.fp_set:N, .fp_set:c, .fp_gset:N, .fp_gset:c}
% \begin{syntax}
% \meta{key} .fp_set:N = \meta{floating point}
% \end{syntax}
% Defines \meta{key} to set \meta{floating point} to \meta{value}
% (which must a floating point expression). If the variable does not exist,
-% it is created globally at the point that the key is set up.
+% it is created globally at the point that the key is set up. The key will
+% require a value at point-of-use unless a default is set.
% \end{function}
%
% \begin{function}[added = 2013-07-14]
@@ -329,13 +333,15 @@
% \end{quote}
% \end{function}
%
-% \begin{function}{.int_set:N, .int_set:c, .int_gset:N, .int_gset:c}
+% \begin{function}[updated = 2020-01-17]
+% {.int_set:N, .int_set:c, .int_gset:N, .int_gset:c}
% \begin{syntax}
% \meta{key} .int_set:N = \meta{integer}
% \end{syntax}
% Defines \meta{key} to set \meta{integer} to \meta{value} (which
% must be an integer expression). If the variable does not exist, it
-% is created globally at the point that the key is set up.
+% is created globally at the point that the key is set up. The key will
+% require a value at point-of-use unless a default is set.
% \end{function}
%
% \begin{function}[updated = 2013-07-10]{.meta:n}
@@ -382,14 +388,15 @@
% Choices are discussed in detail in section~\ref{sec:l3keys:choice}.
% \end{function}
%
-% \begin{function}[added = 2019-05-05]
+% \begin{function}[added = 2019-05-05, updated = 2020-01-17]
% {.muskip_set:N, .muskip_set:c, .muskip_gset:N, .muskip_gset:c}
% \begin{syntax}
% \meta{key} .muskip_set:N = \meta{muskip}
% \end{syntax}
% Defines \meta{key} to set \meta{muskip} to \meta{value} (which
% must be a muskip expression). If the variable does not exist, it
-% is created globally at the point that the key is set up.
+% is created globally at the point that the key is set up. The key will
+% require a value at point-of-use unless a default is set.
% \end{function}
%
% \begin{function}[added = 2019-01-31]
@@ -403,13 +410,15 @@
% is created globally at the point that the key is set up.
% \end{function}
%
-% \begin{function}{.skip_set:N, .skip_set:c, .skip_gset:N, .skip_gset:c}
+% \begin{function}[updated = 2020-01-17]
+% {.skip_set:N, .skip_set:c, .skip_gset:N, .skip_gset:c}
% \begin{syntax}
% \meta{key} .skip_set:N = \meta{skip}
% \end{syntax}
% Defines \meta{key} to set \meta{skip} to \meta{value} (which
% must be a skip expression). If the variable does not exist, it
-% is created globally at the point that the key is set up.
+% is created globally at the point that the key is set up. The key will
+% require a value at point-of-use unless a default is set.
% \end{function}
%
% \begin{function}{.tl_set:N, .tl_set:c, .tl_gset:N, .tl_gset:c}
@@ -1145,7 +1154,7 @@
% One message for the low level parsing system.
% \begin{macrocode}
\__kernel_msg_new:nnnn { kernel } { misplaced-equals-sign }
- { Misplaced~equals~sign~in~key-value~input~\msg_line_number: }
+ { Misplaced~equals~sign~in~key-value~input~\msg_line_context: }
{
LaTeX~is~attempting~to~parse~some~key-value~input~but~found~
two~equals~signs~not~separated~by~a~comma.
@@ -1591,6 +1600,7 @@
\cs_set_nopar:cpx
{ \c_@@_default_root_tl \l_keys_path_tl }
{ \exp_not:n {#1} }
+ \@@_value_requirement:nn { required } { false }
}
}
% \end{macrocode}
@@ -1766,6 +1776,7 @@
% \end{macro}
%
% \begin{macro}{\@@_variable_set:NnnN, \@@_variable_set:cnnN}
+% \begin{macro}{\@@_variable_set_required:NnnN, \@@_variable_set_required:cnnN}
% Setting a variable takes the type and scope separately so that
% it is easy to make a new variable if needed.
% \begin{macrocode}
@@ -1780,8 +1791,15 @@
}
}
\cs_generate_variant:Nn \@@_variable_set:NnnN { c }
+\cs_new_protected:Npn \@@_variable_set_required:NnnN #1#2#3#4
+ {
+ \@@_variable_set:NnnN #1 {#2} {#3} #4
+ \@@_value_requirement:nn { required } { true }
+ }
+\cs_generate_variant:Nn \@@_variable_set_required:NnnN { c }
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \subsection{Creating key properties}
%
@@ -1895,13 +1913,13 @@
% Setting a variable is very easy: just pass the data along.
% \begin{macrocode}
\cs_new_protected:cpn { \c_@@_props_root_tl .dim_set:N } #1
- { \@@_variable_set:NnnN #1 { dim } { } n }
+ { \@@_variable_set_required:NnnN #1 { dim } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .dim_set:c } #1
- { \@@_variable_set:cnnN {#1} { dim } { } n }
+ { \@@_variable_set_required:cnnN {#1} { dim } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .dim_gset:N } #1
- { \@@_variable_set:NnnN #1 { dim } { g } n }
+ { \@@_variable_set_required:NnnN #1 { dim } { g } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .dim_gset:c } #1
- { \@@_variable_set:cnnN {#1} { dim } { g } n }
+ { \@@_variable_set_required:cnnN {#1} { dim } { g } n }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1911,13 +1929,13 @@
% Setting a variable is very easy: just pass the data along.
% \begin{macrocode}
\cs_new_protected:cpn { \c_@@_props_root_tl .fp_set:N } #1
- { \@@_variable_set:NnnN #1 { fp } { } n }
+ { \@@_variable_set_required:NnnN #1 { fp } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .fp_set:c } #1
- { \@@_variable_set:cnnN {#1} { fp } { } n }
+ { \@@_variable_set_required:cnnN {#1} { fp } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .fp_gset:N } #1
- { \@@_variable_set:NnnN #1 { fp } { g } n }
+ { \@@_variable_set_required:NnnN #1 { fp } { g } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .fp_gset:c } #1
- { \@@_variable_set:cnnN {#1} { fp } { g } n }
+ { \@@_variable_set_required:cnnN {#1} { fp } { g } n }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -1957,13 +1975,13 @@
% Setting a variable is very easy: just pass the data along.
% \begin{macrocode}
\cs_new_protected:cpn { \c_@@_props_root_tl .int_set:N } #1
- { \@@_variable_set:NnnN #1 { int } { } n }
+ { \@@_variable_set_required:NnnN #1 { int } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .int_set:c } #1
- { \@@_variable_set:cnnN {#1} { int } { } n }
+ { \@@_variable_set_required:cnnN {#1} { int } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .int_gset:N } #1
- { \@@_variable_set:NnnN #1 { int } { g } n }
+ { \@@_variable_set_required:NnnN #1 { int } { g } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .int_gset:c } #1
- { \@@_variable_set:cnnN {#1} { int } { g } n }
+ { \@@_variable_set_required:cnnN {#1} { int } { g } n }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2012,13 +2030,13 @@
% Setting a variable is very easy: just pass the data along.
% \begin{macrocode}
\cs_new_protected:cpn { \c_@@_props_root_tl .muskip_set:N } #1
- { \@@_variable_set:NnnN #1 { muskip } { } n }
+ { \@@_variable_set_required:NnnN #1 { muskip } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .muskip_set:c } #1
- { \@@_variable_set:cnnN {#1} { muskip } { } n }
+ { \@@_variable_set_required:cnnN {#1} { muskip } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .muskip_gset:N } #1
- { \@@_variable_set:NnnN #1 { muskip } { g } n }
+ { \@@_variable_set_required:NnnN #1 { muskip } { g } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .muskip_gset:c } #1
- { \@@_variable_set:cnnN {#1} { muskip } { g } n }
+ { \@@_variable_set_required:cnnN {#1} { muskip } { g } n }
% \end{macrocode}
% \end{macro}
%
@@ -2041,13 +2059,13 @@
% Setting a variable is very easy: just pass the data along.
% \begin{macrocode}
\cs_new_protected:cpn { \c_@@_props_root_tl .skip_set:N } #1
- { \@@_variable_set:NnnN #1 { skip } { } n }
+ { \@@_variable_set_required:NnnN #1 { skip } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .skip_set:c } #1
- { \@@_variable_set:cnnN {#1} { skip } { } n }
+ { \@@_variable_set_required:cnnN {#1} { skip } { } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .skip_gset:N } #1
- { \@@_variable_set:NnnN #1 { skip } { g } n }
+ { \@@_variable_set_required:NnnN #1 { skip } { g } n }
\cs_new_protected:cpn { \c_@@_props_root_tl .skip_gset:c } #1
- { \@@_variable_set:cnnN {#1} { skip } { g } n }
+ { \@@_variable_set_required:cnnN {#1} { skip } { g } n }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2711,7 +2729,7 @@
\cs_set:Npn \@@_trim_spaces_auxiii:w #1 /
{
\quark_if_recursion_tail_stop:n {#1}
- \tl_trim_spaces:n { / #1 }
+ / \tl_trim_spaces:n { #1 }
\@@_trim_spaces_auxiii:w
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
index 21d6fe5146b..5fe0f559cac 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index a9f1f0c0a3d..76e8fbf1065 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index 3b52246c27d..508b11101f1 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index cce95b98661..b5794158df4 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -2,7 +2,7 @@
%
%% File: l3names.dtx
%
-% Copyright (C) 1990-2019 The LaTeX3 project
+% Copyright (C) 1990-2020 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
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 6a503a97f6c..00d03322d6d 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index 445695ac0f8..5149bccfc23 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index d3ee404a2f8..b299651b81e 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index f096c3e65de..a52cc40cbb6 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index bc21d02688a..915f118057d 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index cbb2345e78f..28606e8c4cd 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index 1cb084742bb..b16baf2834b 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
index 07343492cd0..78216f73590 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index 9947592862c..ddcffc9a0a6 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index 12ebc542a50..df4921bdf69 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
index 3c608eacb9e..06d6e541352 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
index 0efc072cf89..ba97945154a 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
@@ -77,6 +77,19 @@
% expansion
% \end{function}
%
+% \begin{function}[added = 2020-01-22]
+% {
+% \text_declare_expand_equivalent:Nn ,
+% \text_declare_expand_equivalent:cn
+% }
+% \begin{syntax}
+% \cs{text_declare_expand_equivalent:Nn} \meta{cmd} \Arg{replacement}
+% \end{syntax}
+% Declares that the \meta{replacement} tokens should be used whenever the
+% \meta{cmd} (a single token) is encountered. The \meta{replacement} tokens
+% should be expandable.
+% \end{function}
+%
% \subsection{Case changing}
%
% \begin{function}[EXP, added = 2019-11-20]
@@ -189,8 +202,7 @@
% \end{variable}
%
% \begin{variable}{\l_text_expand_exclude_tl}
-% Lists commands which are excluded from expansion. (Defined only for the
-% \LaTeXe{} package.)
+% Lists commands which are excluded from expansion.
% \end{variable}
%
% \end{documentation}
@@ -426,7 +438,7 @@
% Non-text arguments.
% \begin{macrocode}
\tl_new:N \l_text_case_exclude_arg_tl
-\tl_set:Nn \l_text_case_exclude_arg_tl { \cite \label \ref }
+\tl_set:Nn \l_text_case_exclude_arg_tl { \begin \cite \end \label \ref }
% \end{macrocode}
% \end{variable}
%
@@ -449,8 +461,8 @@
% \begin{variable}{\l_text_expand_exclude_tl}
% Commands which need not to expand.
% \begin{macrocode}
-%<*package>
\tl_new:N \l_text_expand_exclude_tl
+%<*package>
\tl_set:Nn \l_text_expand_exclude_tl
{ \cite \label \ref }
%</package>
@@ -523,7 +535,10 @@
% }
% \begin{macro}[EXP]{\@@_expand_protect:nN}
% \begin{macro}[EXP]{\@@_expand_protect:Nw}
+% \begin{macro}[EXP]{\@@_expand_replace:N}
+% \begin{macro}[EXP]{\@@_expand_replace:n}
% \begin{macro}[EXP]{\@@_expand_cs_expand:N}
+% \begin{macro}[EXP]{\@@_expand_noexpand:n}
% After precautions against |&| tokens, start a simple loop: that of
% course means that \enquote{text} cannot contain the two recursion
% quarks. The loop here must be \texttt{f}-type expandable; we have
@@ -835,7 +850,7 @@
{
\str_if_eq:nnTF {#1} { \protect }
{ \@@_expand_protect:N }
- { \@@_expand_cs_expand:N #1 }
+ { \@@_expand_replace:N #1 }
}
\cs_new:Npn \@@_expand_protect:N #1
{
@@ -856,18 +871,47 @@
\@@_expand_loop:w
}
% \end{macrocode}
+% See if there is a dedicated replacement, and if there is, insert it.
+% \begin{macrocode}
+\cs_new:Npn \@@_expand_replace:N #1
+ {
+ \bool_lazy_and:nnTF
+ { \cs_if_exist_p:c { l_@@_expand_ \token_to_str:N #1 _tl } }
+ {
+ \bool_lazy_or_p:nn
+ { \token_if_cs_p:N #1 }
+ { \token_if_active_p:N #1 }
+ }
+ {
+ \exp_args:Nv \@@_expand_replace:n
+ { l_@@_expand_ \token_to_str:N #1 _tl }
+ }
+ { \@@_expand_cs_expand:N #1 }
+ }
+\cs_new:Npn \@@_expand_replace:n #1 { \@@_expand_loop:w #1 }
+% \end{macrocode}
% Finally, expand any macros which can be: this then loops back around to
-% deal with what they produce.
+% deal with what they produce. The only issue is if the token is
+% \cs{exp_not:n}, as that must apply to the following balanced text.
% \begin{macrocode}
\cs_new:Npn \@@_expand_cs_expand:N #1
{
\@@_if_expandable:NTF #1
- { \exp_after:wN \@@_expand_loop:w #1 }
+ {
+ \str_if_eq:nnTF {#1} { \exp_not:n }
+ { \@@_expand_noexpand:n }
+ { \exp_after:wN \@@_expand_loop:w #1 }
+ }
{
\@@_expand_store:n {#1}
\@@_expand_loop:w
}
}
+\cs_new:Npn \@@_expand_noexpand:n #1
+ {
+ \@@_expand_store:n {#1}
+ \@@_expand_loop:w
+ }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -893,6 +937,38 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}
+% {
+% \text_declare_expand_equivalent:Nn ,
+% \text_declare_expand_equivalent:cn
+% }
+% Create equivalents to allow replacement.
+% \begin{macrocode}
+\cs_new_protected:Npn \text_declare_expand_equivalent:Nn #1#2
+ {
+ \tl_clear_new:c { l_@@_expand_ \token_to_str:N #1 _tl }
+ \tl_set:cn { l_@@_expand_ \token_to_str:N #1 _tl } {#2}
+ }
+\cs_generate_variant:Nn \text_declare_expand_equivalent:Nn { c }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_expand_textcomp:NN}
+% Filter out \pkg{textcomp}-like commands.
+% \begin{macrocode}
+%<*package>
+\cs_new:Npn \@@_expand_textcomp:NN #1#2 { \exp_not:n {#1} }
+\text_declare_expand_equivalent:cn { ?-cmd } { \@@_expand_textcomp:NN }
+\text_declare_expand_equivalent:cn { T1-cmd } { \@@_expand_textcomp:NN }
+\text_declare_expand_equivalent:cn { TS1-cmd } { \@@_expand_textcomp:NN }
+\text_declare_expand_equivalent:cn { TU-cmd } { \@@_expand_textcomp:NN }
+%</package>
+% \end{macrocode}
+% \end{macro}
%
% \begin{macrocode}
%</initex|package>
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index e9f36e03b8f..f744c4be17d 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index a564e6eca3e..21998dae31f 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index 93b1e6ffc55..68f849ae54c 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index 383826eaeb4..c02f0d5592b 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-01-12}
+% \date{Released 2020-01-22}
%
% \maketitle
%