texlive[53518] Master/texmf-dist: l3kernel (23jan20)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 23 22:57:42 CET 2020


Revision: 53518
          http://tug.org/svn/texlive?view=revision&revision=53518
Author:   karl
Date:     2020-01-23 22:57:42 +0100 (Thu, 23 Jan 2020)
Log Message:
-----------
l3kernel (23jan20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
    trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
    trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
    trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
    trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
    trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
    trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md	2020-01-23 21:57:42 UTC (rev 53518)
@@ -7,6 +7,17 @@
 
 ## [Unreleased]
 
+## [2020-01-22]
+
+### Added
+- Support for command replacement in text expansion
+
+### Changed
+- Require key values for numerical key types (dim, int, etc.) (see #661)
+
+### Fixed
+- Issue with keys where some leading spaces could be left in key names
+
 ## [2020-01-12]
 
 ### Added
@@ -557,7 +568,8 @@
 - Step func­tions have been added for dim vari­ables,
   e.g. `\dim_step_in­line:nnnn`
 
-[Unreleased]: https://github.com/latex3/latex3/compare/2020-01-12...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2020-01-22...HEAD
+[2020-01-22]: https://github.com/latex3/latex3/compare/2020-01-12...2020-01-22
 [2020-01-12]: https://github.com/latex3/latex3/compare/2019-11-07...2020-01-12
 [2019-11-07]: https://github.com/latex3/latex3/compare/2019-10-28...2019-11-07
 [2019-10-28]: https://github.com/latex3/latex3/compare/2019-10-27...2019-10-28

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/README.md	2020-01-23 21:57:42 UTC (rev 53518)
@@ -1,7 +1,7 @@
 LaTeX3 Programming Conventions
 ==============================
 
-Release 2020-01-12
+Release 2020-01-22
 
 Overview
 --------

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/interface3.tex	2020-01-23 21:57:42 UTC (rev 53518)
@@ -54,7 +54,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2020-01-12}
+\date{Released 2020-01-22}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt	2020-01-23 21:57:42 UTC (rev 53518)
@@ -47,20 +47,18 @@
 \c_one_thousand                   2019
 \c_ten_thousand                   2019
 \c_term_ior                       2020
-\char_fold_case:N                 2021
-\char_lower_case:N                2021
-\char_mixed_case:N                2021
-\char_upper_case:N                2021
-\char_str_fold_case:N             2021
-\char_str_lower_case:N            2021
-\char_str_mixed_case:N            2021
-\char_str_upper_case:N            2021
+\char_fold_case:N                 2022
+\char_lower_case:N                2022
+\char_mixed_case:N                2022
+\char_upper_case:N                2022
+\char_str_fold_case:N             2022
+\char_str_lower_case:N            2022
+\char_str_mixed_case:N            2022
+\char_str_upper_case:N            2022
 \etex_....:D                      2019
 \hbox_unpack_clear:c              2020
 \hbox_unpack_clear:N              2020
 \lua_escape_x:n                   2019
-\lua_now_x:n                      2019
-\lua_shipout_x:n                  2019
 \luatex_...:D                     2019
 \msg_interrupt:nn                 2019
 \msg_log:n                        2019
@@ -67,30 +65,26 @@
 \msg_term:n                       2019
 \pdftex_...:D                     2019
 \ptex_...:D                       2019
-\str_case_x:nn                    2019
-\str_case_x:nnF                   2019
-\str_case_x:nnT                   2019
-\str_case_x:nnTF                  2019
-\str_fold_case:n                  2021
-\str_fold_case:V                  2021
-\str_if_eq_x:nnF                  2019
-\str_if_eq_x:nnT                  2019
-\str_if_eq_x:nnTF                 2019
-\str_if_eq_x_p:nn                 2019
-\str_lower_case:f                 2021
-\str_lower_case:n                 2021
-\str_upper_case:f                 2021
-\str_upper_case:n                 2021
+\str_fold_case:n                  2022
+\str_fold_case:V                  2022
+\str_lower_case:f                 2022
+\str_lower_case:n                 2022
+\str_upper_case:f                 2022
+\str_upper_case:n                 2022
 \tl_gset_from_file:cnn            2020
 \tl_gset_from_file:Nnn            2020
 \tl_gset_from_file_x:cnn          2020
 \tl_gset_from_file_x:Nnn          2020
-\tl_show_analysis:N               2019
-\tl_show_analysis:n               2019
+\tl_lower_case:n                  2022
+\tl_lower_case:nn                 2022
+\tl_mixed_case:n                  2022
+\tl_mixed_case:nn                 2022
 \tl_set_from_file:cnn             2020
 \tl_set_from_file:Nnn             2020
 \tl_set_from_file_x:cnn           2020
 \tl_set_from_file_x:Nnn           2020
+\tl_upper_case:n                  2022
+\tl_upper_case:nn                 2022
 \token_get_arg_spec:N             2020
 \token_get_prefix_spec:N          2020
 \token_get_replacement_spec:N     2020
@@ -354,6 +348,8 @@
 \l_tmpb_toks                                    2011-09-08
 \l_tmpc_int                                     2013-01-08
 \l_tmpc_toks                                    2011-09-08
+\lua_now_x:n                                    2020-01-01
+\lua_shipout_x:n                                2020-01-01
 \luatex_if_engine_p:                            2017-01-01
 \luatex_if_engine:F                             2017-01-01
 \luatex_if_engine:T                             2017-01-01
@@ -451,8 +447,16 @@
 \sort_reversed:                                 2018-12-27
 \str_case:nnn                                   2015-07-14
 \str_case:onn                                   2015-07-14
+\str_case_x:nn                                  2020-01-01
+\str_case_x:nnF                                 2020-01-01
 \str_case_x:nnn                                 2015-07-14
+\str_case_x:nnT                                 2020-01-01
+\str_case_x:nnTF                                2020-01-01
 \str_if_eq_p:xx                                 2013-01-08
+\str_if_eq_x:nnF                                2020-01-01
+\str_if_eq_x:nnT                                2020-01-01
+\str_if_eq_x:nnTF                               2020-01-01
+\str_if_eq_x_p:nn                               2020-01-01
 \str_if_eq:xxF                                  2013-01-08
 \str_if_eq:xxT                                  2013-01-08
 \str_if_eq:xxTF                                 2013-01-08
@@ -509,6 +513,8 @@
 \tl_replace_in:cnn                              2011-09-08
 \tl_replace_in:Nnn                              2011-09-08
 \tl_set:Nc                                      2011-09-08
+\tl_show_analysis:N                             2020-01-01
+\tl_show_analysis:n                             2020-01-01
 \tl_tail:w                                      2013-01-08
 \tl_to_lowercase:n                              2018-03-05
 \tl_to_uppercase:n                              2018-03-05

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv	2020-01-23 21:57:42 UTC (rev 53518)
@@ -160,6 +160,7 @@
 tmpa,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
 tmpb,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
 tag,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2019-06-02,2019-06-02,
+text,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-01-15,2020-01-15,
 token,l3kernel,The LaTeX3 Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
 uftag,tagpdf,Ulrike Fischer,,,,2018-07-15,2018-07-15,
 um,unicode-math,Will Robertson,https://github.com/wspr/unicode-math,https://github.com/wspr/unicode-math.git,https://github.com/wspr/unicode-math/issues,2013-03-16,2013-03-16,

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex	2020-01-23 21:57:42 UTC (rev 53518)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-01-12}
+\date{Released 2020-01-22}
 
 \begin{document}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex	2020-01-23 21:57:42 UTC (rev 53518)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-01-12}
+\date{Released 2020-01-22}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex	2020-01-23 21:57:42 UTC (rev 53518)
@@ -32,7 +32,7 @@
         {latex-team at latex-project.org}%
     }%
 }
-\date{Released 2020-01-12}
+\date{Released 2020-01-22}
 
 \newcommand{\TF}{\textit{(TF)}}
 

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/doc/latex/l3kernel/source3.tex	2020-01-23 21:57:42 UTC (rev 53518)
@@ -53,7 +53,7 @@
          {latex-team at latex-project.org}%
    }%
 }
-\date{Released 2020-01-12}
+\date{Released 2020-01-22}
 
 \pagenumbering{roman}
 \maketitle

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/expl3.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -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
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3box.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %
@@ -873,7 +873,7 @@
 %
 % \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,
@@ -880,17 +880,17 @@
 %     \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}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -79,7 +79,7 @@
 %
 % \title{The \cls{l3doc} class}
 % \author{\Team}
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 % \maketitle
 % \tableofcontents
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -63,7 +63,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3file.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3final.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 % \maketitle
 %
 % \begin{documentation}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -40,7 +40,7 @@
 %          {latex-team at latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -49,7 +49,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3int.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -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,7 +388,7 @@
 %   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}
@@ -389,7 +395,8 @@
 %   \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}

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3names.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -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
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3str.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3text.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -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}
+\tl_new:N \l_text_expand_exclude_tl
 %<*package>
-\tl_new:N \l_text_expand_exclude_tl
 \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,8 +937,40 @@
 % \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>
 %    \end{macrocode}
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -44,7 +44,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3token.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2020-01-12}
+% \date{Released 2020-01-22}
 %
 % \maketitle
 %

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex	2020-01-23 21:57:42 UTC (rev 53518)
@@ -67,7 +67,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-01-12}%
+\def\ExplFileDate{2020-01-22}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -12655,7 +12655,7 @@
   { \__keyval_def_aux:w #1 \q_stop }
 \cs_new:Npn \__keyval_def_aux:w #1 \q_stop { \exp_not:n {#1} }
 \__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.
@@ -12879,6 +12879,7 @@
         \cs_set_nopar:cpx
           { \c__keys_default_root_tl \l_keys_path_tl }
           { \exp_not:n {#1} }
+        \__keys_value_requirement:nn { required } { false }
       }
   }
 \cs_new_protected:Npn \__keys_groups_set:n #1
@@ -13003,6 +13004,12 @@
       }
   }
 \cs_generate_variant:Nn \__keys_variable_set:NnnN { c }
+\cs_new_protected:Npn \__keys_variable_set_required:NnnN #1#2#3#4
+  {
+    \__keys_variable_set:NnnN #1 {#2} {#3} #4
+    \__keys_value_requirement:nn { required } { true }
+  }
+\cs_generate_variant:Nn \__keys_variable_set_required:NnnN { c }
 \cs_new_protected:cpn { \c__keys_props_root_tl .bool_set:N } #1
   { \__keys_bool_set:Nn #1 { } }
 \cs_new_protected:cpn { \c__keys_props_root_tl .bool_set:c } #1
@@ -13048,21 +13055,21 @@
 \cs_new_protected:cpn { \c__keys_props_root_tl .default:x } #1
   { \exp_args:Nx \__keys_default_set:n {#1} }
 \cs_new_protected:cpn { \c__keys_props_root_tl .dim_set:N } #1
-  { \__keys_variable_set:NnnN #1 { dim } { } n }
+  { \__keys_variable_set_required:NnnN #1 { dim } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .dim_set:c } #1
-  { \__keys_variable_set:cnnN {#1} { dim } { } n }
+  { \__keys_variable_set_required:cnnN {#1} { dim } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .dim_gset:N } #1
-  { \__keys_variable_set:NnnN #1 { dim } { g } n }
+  { \__keys_variable_set_required:NnnN #1 { dim } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .dim_gset:c } #1
-  { \__keys_variable_set:cnnN {#1} { dim } { g } n }
+  { \__keys_variable_set_required:cnnN {#1} { dim } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .fp_set:N } #1
-  { \__keys_variable_set:NnnN #1 { fp } { } n }
+  { \__keys_variable_set_required:NnnN #1 { fp } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .fp_set:c } #1
-  { \__keys_variable_set:cnnN {#1} { fp } { } n }
+  { \__keys_variable_set_required:cnnN {#1} { fp } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .fp_gset:N } #1
-  { \__keys_variable_set:NnnN #1 { fp } { g } n }
+  { \__keys_variable_set_required:NnnN #1 { fp } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .fp_gset:c } #1
-  { \__keys_variable_set:cnnN {#1} { fp } { g } n }
+  { \__keys_variable_set_required:cnnN {#1} { fp } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .groups:n } #1
   { \__keys_groups_set:n {#1} }
 \cs_new_protected:cpn { \c__keys_props_root_tl .inherit:n } #1
@@ -13076,13 +13083,13 @@
 \cs_new_protected:cpn { \c__keys_props_root_tl .initial:x } #1
   { \exp_args:Nx \__keys_initialise:n {#1} }
 \cs_new_protected:cpn { \c__keys_props_root_tl .int_set:N } #1
-  { \__keys_variable_set:NnnN #1 { int } { } n }
+  { \__keys_variable_set_required:NnnN #1 { int } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .int_set:c } #1
-  { \__keys_variable_set:cnnN {#1} { int } { } n }
+  { \__keys_variable_set_required:cnnN {#1} { int } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .int_gset:N } #1
-  { \__keys_variable_set:NnnN #1 { int } { g } n }
+  { \__keys_variable_set_required:NnnN #1 { int } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .int_gset:c } #1
-  { \__keys_variable_set:cnnN {#1} { int } { g } n }
+  { \__keys_variable_set_required:cnnN {#1} { int } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .meta:n } #1
   { \__keys_meta_make:n {#1} }
 \cs_new_protected:cpn { \c__keys_props_root_tl .meta:nn } #1
@@ -13098,13 +13105,13 @@
 \cs_new_protected:cpn { \c__keys_props_root_tl .multichoices:xn } #1
   { \exp_args:Nx \__keys_multichoices_make:nn #1 }
 \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_set:N } #1
-  { \__keys_variable_set:NnnN #1 { muskip } { } n }
+  { \__keys_variable_set_required:NnnN #1 { muskip } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_set:c } #1
-  { \__keys_variable_set:cnnN {#1} { muskip } { } n }
+  { \__keys_variable_set_required:cnnN {#1} { muskip } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_gset:N } #1
-  { \__keys_variable_set:NnnN #1 { muskip } { g } n }
+  { \__keys_variable_set_required:NnnN #1 { muskip } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .muskip_gset:c } #1
-  { \__keys_variable_set:cnnN {#1} { muskip } { g } n }
+  { \__keys_variable_set_required:cnnN {#1} { muskip } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .prop_put:N } #1
   { \__keys_prop_put:Nn #1 { } }
 \cs_new_protected:cpn { \c__keys_props_root_tl .prop_put:c } #1
@@ -13114,13 +13121,13 @@
 \cs_new_protected:cpn { \c__keys_props_root_tl .prop_gput:c } #1
   { \__keys_prop_put:cn {#1} { g } }
 \cs_new_protected:cpn { \c__keys_props_root_tl .skip_set:N } #1
-  { \__keys_variable_set:NnnN #1 { skip } { } n }
+  { \__keys_variable_set_required:NnnN #1 { skip } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .skip_set:c } #1
-  { \__keys_variable_set:cnnN {#1} { skip } { } n }
+  { \__keys_variable_set_required:cnnN {#1} { skip } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .skip_gset:N } #1
-  { \__keys_variable_set:NnnN #1 { skip } { g } n }
+  { \__keys_variable_set_required:NnnN #1 { skip } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .skip_gset:c } #1
-  { \__keys_variable_set:cnnN {#1} { skip } { g } n }
+  { \__keys_variable_set_required:cnnN {#1} { skip } { g } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .tl_set:N } #1
   { \__keys_variable_set:NnnN #1 { tl } { } n }
 \cs_new_protected:cpn { \c__keys_props_root_tl .tl_set:c } #1
@@ -13569,7 +13576,7 @@
 \cs_set:Npn \__keys_trim_spaces_auxiii:w #1 /
   {
     \quark_if_recursion_tail_stop:n {#1}
-    \tl_trim_spaces:n { / #1 }
+    / \tl_trim_spaces:n { #1 }
     \__keys_trim_spaces_auxiii:w
   }
 \prg_new_conditional:Npnn \keys_if_exist:nn #1#2 { p , T , F , TF }
@@ -27858,7 +27865,7 @@
     \TH \th
   }
 \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 }
 \tl_new:N \l_text_math_arg_tl
 \tl_set:Nn \l_text_math_arg_tl { \ensuremath }
 \tl_new:N \l_text_math_delims_tl
@@ -28103,7 +28110,7 @@
   {
     \str_if_eq:nnTF {#1} { \protect }
       { \__text_expand_protect:N }
-      { \__text_expand_cs_expand:N #1 }
+      { \__text_expand_replace:N #1 }
   }
 \cs_new:Npn \__text_expand_protect:N #1
   {
@@ -28123,15 +28130,51 @@
       { \__text_expand_store:n { \protect #1 } }
     \__text_expand_loop:w
   }
+\cs_new:Npn \__text_expand_replace:N #1
+  {
+    \bool_lazy_and:nnTF
+      { \cs_if_exist_p:c { l__text_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 \__text_expand_replace:n
+          { l__text_expand_ \token_to_str:N #1 _tl }
+      }
+      { \__text_expand_cs_expand:N #1 }
+  }
+\cs_new:Npn \__text_expand_replace:n #1 { \__text_expand_loop:w #1 }
 \cs_new:Npn \__text_expand_cs_expand:N #1
   {
     \__text_if_expandable:NTF #1
-      { \exp_after:wN \__text_expand_loop:w #1 }
       {
+        \str_if_eq:nnTF {#1} { \exp_not:n }
+          { \__text_expand_noexpand:n }
+          { \exp_after:wN \__text_expand_loop:w #1 }
+      }
+      {
         \__text_expand_store:n {#1}
         \__text_expand_loop:w
       }
   }
+\cs_new:Npn \__text_expand_noexpand:n #1
+  {
+    \__text_expand_store:n {#1}
+    \__text_expand_loop:w
+  }
+\cs_new_protected:Npn \text_declare_expand_equivalent:Nn #1#2
+  {
+    \tl_clear_new:c { l__text_expand_ \token_to_str:N #1 _tl }
+    \tl_set:cn { l__text_expand_ \token_to_str:N #1 _tl } {#2}
+  }
+\cs_generate_variant:Nn \text_declare_expand_equivalent:Nn { c }
+\cs_new:Npn \__text_expand_textcomp:NN #1#2 { \exp_not:n {#1} }
+\text_declare_expand_equivalent:cn { ?-cmd }  { \__text_expand_textcomp:NN }
+\text_declare_expand_equivalent:cn { T1-cmd }  { \__text_expand_textcomp:NN }
+\text_declare_expand_equivalent:cn { TS1-cmd } { \__text_expand_textcomp:NN }
+\text_declare_expand_equivalent:cn { TU-cmd }  { \__text_expand_textcomp:NN }
 %% File: l3text-case.dtx
 \cs_new:Npn \text_lowercase:n #1
   { \__text_change_case:nnn { lower } { } {#1} }

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex	2020-01-23 21:57:42 UTC (rev 53518)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-01-12}%
+\def\ExplFileDate{2020-01-22}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \def\tempa{LaTeX2e}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx	2020-01-23 21:57:42 UTC (rev 53518)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-01-12}%
+\def\ExplFileDate{2020-01-22}%
 \let\ExplLoaderFileDate\ExplFileDate
 \everyjob\expandafter{\the\everyjob
   \message{L3 programming layer <\ExplFileDate>}%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/expl3.sty	2020-01-23 21:57:42 UTC (rev 53518)
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-01-12}%
+\def\ExplFileDate{2020-01-22}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%

Modified: trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def	2020-01-23 21:57:04 UTC (rev 53517)
+++ trunk/Master/texmf-dist/tex/latex/l3kernel/l3deprecation.def	2020-01-23 21:57:42 UTC (rev 53518)
@@ -179,17 +179,17 @@
 \cs_gset:Npn \__prg_break: #1 \__prg_break_point: { }
 \__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \prg_break:n }
 \cs_gset:Npn \__prg_break:n #1#2 \__prg_break_point: {#1}
-\__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 }
 \__kernel_patch_deprecation:nnNNpn { 2020-01-01 } { \str_case_e:nn }
 \cs_gset:Npn \str_case_x:nn { \str_case_e:nn }
@@ -269,21 +269,21 @@
 \cs_gset:Npn \token_get_arg_spec:N { \cs_argument_spec:N }
 \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { \cs_replacement_spec:N }
 \cs_gset:Npn \token_get_replacement_spec:N { \cs_replacement_spec:N }
-\__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 }
 \__kernel_patch_deprecation:nnNNpn { 2021-01-01 } { -1 }
 \cs_new_protected:Npn \c_term_ior { -1 \scan_stop: }



More information about the tex-live-commits mailing list