From 708618ecc7286d78178798f207079f79173d38a7 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 16 May 2021 21:08:14 +0000 Subject: l3kernel git-svn-id: svn://tug.org/texlive/trunk@59231 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md | 17 +++- Master/texmf-dist/doc/latex/l3kernel/README.md | 2 +- Master/texmf-dist/doc/latex/l3kernel/expl3.pdf | Bin 623531 -> 623415 bytes .../texmf-dist/doc/latex/l3kernel/interface3.pdf | Bin 1704394 -> 1707327 bytes .../texmf-dist/doc/latex/l3kernel/interface3.tex | 2 +- .../texmf-dist/doc/latex/l3kernel/l3docstrip.pdf | Bin 151853 -> 151697 bytes Master/texmf-dist/doc/latex/l3kernel/l3news.pdf | Bin 395934 -> 395934 bytes Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf | Bin 122713 -> 122713 bytes Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf | Bin 150672 -> 150672 bytes Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf | Bin 148707 -> 148707 bytes Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf | Bin 114588 -> 114588 bytes Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf | Bin 112485 -> 112485 bytes Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf | Bin 151572 -> 151572 bytes Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf | Bin 128312 -> 128312 bytes Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf | Bin 163405 -> 163405 bytes Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf | Bin 250134 -> 250134 bytes Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf | Bin 150289 -> 150289 bytes Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf | Bin 170069 -> 170069 bytes Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf | Bin 204992 -> 204992 bytes .../texmf-dist/doc/latex/l3kernel/l3prefixes.pdf | Bin 79776 -> 79776 bytes .../texmf-dist/doc/latex/l3kernel/l3styleguide.pdf | Bin 296251 -> 296129 bytes .../texmf-dist/doc/latex/l3kernel/l3styleguide.tex | 2 +- .../doc/latex/l3kernel/l3syntax-changes.pdf | Bin 242931 -> 242807 bytes .../doc/latex/l3kernel/l3syntax-changes.tex | 2 +- .../doc/latex/l3kernel/l3term-glossary.pdf | Bin 231313 -> 231193 bytes .../doc/latex/l3kernel/l3term-glossary.tex | 2 +- Master/texmf-dist/doc/latex/l3kernel/source3.pdf | Bin 6766562 -> 6780088 bytes Master/texmf-dist/doc/latex/l3kernel/source3.tex | 2 +- Master/texmf-dist/source/latex/l3kernel/expl3.dtx | 8 +- .../texmf-dist/source/latex/l3kernel/l3basics.dtx | 2 +- .../source/latex/l3kernel/l3bootstrap.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3box.dtx | 2 +- .../source/latex/l3kernel/l3candidates.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3cctab.dtx | 41 ++++++++- .../texmf-dist/source/latex/l3kernel/l3clist.dtx | 74 +++++++++++++++- .../texmf-dist/source/latex/l3kernel/l3coffins.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3color.dtx | 6 +- .../texmf-dist/source/latex/l3kernel/l3debug.dtx | 2 +- .../source/latex/l3kernel/l3deprecation.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3doc.dtx | 2 +- .../source/latex/l3kernel/l3docstrip.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3expan.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3file.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3flag.dtx | 2 +- .../source/latex/l3kernel/l3fp-assign.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-aux.dtx | 2 +- .../source/latex/l3kernel/l3fp-basics.dtx | 2 +- .../source/latex/l3kernel/l3fp-convert.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-expo.dtx | 2 +- .../source/latex/l3kernel/l3fp-extended.dtx | 2 +- .../source/latex/l3kernel/l3fp-logic.dtx | 2 +- .../source/latex/l3kernel/l3fp-parse.dtx | 2 +- .../source/latex/l3kernel/l3fp-random.dtx | 2 +- .../source/latex/l3kernel/l3fp-round.dtx | 2 +- .../source/latex/l3kernel/l3fp-traps.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-trig.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3fp.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fparray.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3int.dtx | 2 +- .../source/latex/l3kernel/l3intarray.dtx | 2 +- .../source/latex/l3kernel/l3kernel-functions.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3keys.dtx | 20 +++-- .../texmf-dist/source/latex/l3kernel/l3legacy.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3luatex.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3msg.dtx | 72 +++++++-------- .../texmf-dist/source/latex/l3kernel/l3names.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3prg.dtx | 15 +++- Master/texmf-dist/source/latex/l3kernel/l3prop.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3quark.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3regex.dtx | 34 +++++--- Master/texmf-dist/source/latex/l3kernel/l3seq.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3skip.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3sort.dtx | 2 +- .../source/latex/l3kernel/l3str-convert.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3str.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3sys.dtx | 2 +- .../source/latex/l3kernel/l3text-case.dtx | 2 +- .../source/latex/l3kernel/l3text-purify.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3text.dtx | 2 +- .../source/latex/l3kernel/l3tl-analysis.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3tl.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3token.dtx | 11 ++- .../texmf-dist/source/latex/l3kernel/l3unicode.dtx | 2 +- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 97 +++++++++++++++++---- .../tex/latex/l3kernel/expl3-generic.tex | 4 +- Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 2 +- 88 files changed, 369 insertions(+), 140 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md index 447668b7bf3..1813e73d114 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md @@ -7,6 +7,20 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2021-05-11] + +### Added +- `\cctab_item:Nn` (issue #880) +- `\clist_use:nnnn` and `\clist_use:nn` (issue #561) + +### Fixed +- Loading of backend in generic DVI mode (issue #905) +- Make `\keyval_parse:nnn` alignment-safe (issue #896) +- Control sequences and category codes in regex replacements (issue #909) + +### Changed +- Speed up \group_align_safe_begin: (pull #906) + ## [2021-05-07] ### Added @@ -883,7 +897,8 @@ this project uses date-based 'snapshot' version identifiers. - Step functions have been added for dim variables, e.g. `\dim_step_inline:nnnn` -[Unreleased]: https://github.com/latex3/latex3/compare/2021-05-07...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2021-05-11...HEAD +[2021-05-11]: https://github.com/latex3/latex3/compare/2021-05-07...2021-05-11 [2021-05-07]: https://github.com/latex3/latex3/compare/2021-02-18...2021-05-07 [2021-02-18]: https://github.com/latex3/latex3/compare/2021-02-06...2021-02-18 [2021-02-06]: https://github.com/latex3/latex3/compare/2021-02-02...2021-02-06 diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md index 5acfbb5d3b9..3127e246c56 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/README.md +++ b/Master/texmf-dist/doc/latex/l3kernel/README.md @@ -1,7 +1,7 @@ LaTeX3 Programming Conventions ============================== -Release 2021-05-07 +Release 2021-05-11 Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf index 7e9a3d01baf..7872487af22 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf index e73bc3462cc..4ab31e9042d 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex index 0108f11ddd6..c41b45bf4e0 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex @@ -54,7 +54,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf index 2c252c5ca9d..8d05bf60a83 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf index 2971e2c1efc..187147d56ca 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf index 9d5e2fe3e66..58d8d083975 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf index 0b8f621fc2d..382e0212adf 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf index e90998a0bfc..46912dfb9f6 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf index 5c8945b9255..a41de356e18 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf index 31af650bdae..11357e96ced 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf index 2d221914592..4ec096a2d61 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf index 632e7814634..d13185fb0fc 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf index d308888b504..4ae5d0c89b4 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf index 5f45b57bcf2..65b65444fc4 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf index c2f0363c440..38170700641 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf index aeefd9ab82e..27d0e8042dd 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf index 78d84d6f138..5a9e0fe8f8c 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf index a21877e64c1..345295840db 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf index 82ed3e5bf50..de7203d2022 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex index 00e041f2948..375691e3a2f 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \begin{document} diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf index 6e0445de7d8..397508a83c7 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex index d4282431b8a..834a27a6e12 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \newcommand{\TF}{\textit{(TF)}} diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf index 9bd43ef0f0c..667db28a6c0 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf and b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex index 7ea79a155ff..253dc77e19b 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex @@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \newcommand{\TF}{\textit{(TF)}} diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf index e6503168dc2..b962910210f 100644 Binary files a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf and b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf differ diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex index 95e707b01fc..05de34a9e4c 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex @@ -53,7 +53,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2021-05-07} +\date{Released 2021-05-11} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index a2f5c86cbe9..16632dbd992 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> % -\def\ExplFileDate{2021-05-07}% +\def\ExplFileDate{2021-05-11}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1756,11 +1756,15 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\g__kernel_backend_header_bool} % Load the dynamic code and standard back-end. % \begin{macrocode} \sys_everyjob: +\bool_new:N \g__kernel_backend_header_bool +\bool_gset_true:N \g__kernel_backend_header_bool \sys_load_backend:n { } % \end{macrocode} +% \end{macro} % % For the generic loader, a few final steps to take. Turn of \cs{expl3} % syntax and tidy up the small number of temporary changes. diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 83c8f2b20f0..47c746ee43f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index 2897f94237e..40047fe4464 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index d83fdb914e7..1eb6848d857 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index b03b3831c57..84fd99a2b09 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx index a84852f73b3..9a0bc549333 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -110,7 +110,7 @@ % matching \cs{cctab_begin:N}. % \end{function} % -% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N} +% \begin{function}[added = 2020-05-19, updated = 2020-07-02]{\cctab_select:N, \cctab_select:c} % \begin{syntax} % \cs{cctab_select:N} \meta{category code table} % \end{syntax} @@ -120,6 +120,15 @@ % and \cs{cctab_gset:Nn}. % \end{function} % +% \begin{function}[EXP, added = 2021-05-10]{\cctab_item:Nn, \cctab_item:cn} +% \begin{syntax} +% \cs{cctab_item:Nn} \meta{category code table} \Arg{integer expression} +% \end{syntax} +% Determines the \meta{character} with character code given by the +% \meta{integer expression} and expands to its category code specified +% by the \meta{category code table}. +% \end{function} +% % \section{Category code table conditionals} % % \begin{function}[pTF]{\cctab_if_exist:N, \cctab_if_exist:c} @@ -660,6 +669,34 @@ } % \end{macrocode} % +% +% \begin{macro}{\cctab_item:Nn, \cctab_item:cn} +% Evaluate the integer argument only once. In most engines the +% |cctab| variable only has $256$ entries so we only look up the +% catcode for these entries, otherwise we use the current catcode. In +% particular, for out-of-range values we use whatever fall-back +% \cs{char_value_catcode:n}. In \LuaTeX{}, we use the +% |tex.getcatcode| function. +% \begin{macrocode} +\cs_new:Npn \cctab_item:Nn #1#2 + { \exp_args:Nf \@@_item:nN { \int_eval:n {#2} } #1 } +\sys_if_engine_luatex:TF + { + \cs_new:Npn \@@_item:nN #1#2 + { \lua_now:e { tex.print(-2, tex.getcatcode(\int_use:N #2, #1)) } } + } + { + \cs_new:Npn \@@_item:nN #1#2 + { + \int_compare:nNnTF {#1} < { 256 } + { \intarray_item:Nn #2 { #1 + 1 } } + { \char_value_catcode:n {#1} } + } + } +\cs_generate_variant:Nn \cctab_item:Nn { c } +% \end{macrocode} +% \end{macro} +% % \subsection{Category code table conditionals} % % \begin{macro}{\cctab_if_exist:N,\cctab_if_exist:c} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 3db9365a1ff..f61fedb4837 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -591,6 +591,20 @@ % \end{texnote} % \end{function} % +% \begin{function}[EXP, added = 2021-05-10]{\clist_use:nnnn, \clist_use:nn} +% \begin{syntax} +% \cs{clist_use:nnnn} \meta{comma~list} \Arg{separator~between~two} \Arg{separator~between~more~than~two} \Arg{separator~between~final~two} +% \cs{clist_use:nn} \meta{comma~list} \Arg{separator} +% \end{syntax} +% Places the contents of the \meta{comma~list} in the input stream, +% with the appropriate \meta{separator} between the items. As for +% \cs{clist_set:Nn}, blank items are omitted, spaces are removed from +% both sides of each item, then a set of braces is removed if the +% resulting space-trimmed item is braced. The \meta{separators} are +% then inserted in the same way as for \cs{clist_use:Nnnn} and +% \cs{clist_use:Nn}, respectively. +% \end{function} +% % \section{Comma lists as stacks} % % Comma lists can be used as stacks, where data is pushed to and popped @@ -805,11 +819,13 @@ % \end{variable} % % \begin{macro}[EXP]{ +% \@@_use_none_delimit_by_s_mark:w, % \@@_use_none_delimit_by_s_stop:w, % \@@_use_i_delimit_by_s_stop:nw % } % Functions to gobble up to a scan mark. % \begin{macrocode} +\cs_new:Npn \@@_use_none_delimit_by_s_mark:w #1 \s_@@_mark { } \cs_new:Npn \@@_use_none_delimit_by_s_stop:w #1 \s_@@_stop { } \cs_new:Npn \@@_use_i_delimit_by_s_stop:nw #1 #2 \s_@@_stop {#1} % \end{macrocode} @@ -1941,6 +1957,62 @@ % \end{macro} % \end{macro} % +% \begin{macro} +% { +% \clist_use:nnnn, \clist_use:nn, \@@_use:Nw, +% \@@_use_one:w, \@@_use_end:w, \@@_use_more:w +% } +% Items are grabbed by \cs{@@_use:Nw}, which detects blank items with +% a \cs{tl_if_empty:oTF} test (in which case it recurses). Non-blank +% items are either the end of the list, in which case the argument +% |#1| of \cs{@@_use:Nw} is used to properly end the list, or are +% normal items, which must be trimmed and properly unbraced. As we +% find successive items, the long list of \cs{@@_use:Nw} calls gets +% shortened and we end up calling \cs{@@_use_more:w} once we have +% found $3$ items. This auxiliary leaves the first-found item and the +% general separator, and calls \cs{@@_use:Nw} to find more items. +% A subtlety is that we use \cs{@@_use_end:w} both in the case of a +% two-item list and for the last two items of a general list: to get +% the correct separator, \cs{@@_use_more:w} replaces the +% separator-of-two by the last-separator when called, namely as soon +% as we have found three items. +% \begin{macrocode} +\cs_new:Npn \clist_use:nnnn #1#2#3#4 + { + \@@_use:Nw \@@_use_none_delimit_by_s_stop:w + \@@_use:Nw \@@_use_one:w + \@@_use:Nw \@@_use_end:w + \@@_use_more:w ; + {#2} {#3} {#4} ; + \prg_do_nothing: #1 , \s_@@_mark , + \s_@@_stop + } +\cs_new:Npn \@@_use:Nw #1#2 ; #3 ; #4 , + { + \tl_if_empty:oTF { \use_none:nn #4 ? } + { \@@_use:Nw #1#2 ; } + { + \@@_use_none_delimit_by_s_mark:w #4 #1 \s_@@_mark + \tl_trim_spaces_apply:oN {#4} \@@_use_ii_i:nn + \@@_map_unbrace:wn , { #2 ; } + } + #3 ; \prg_do_nothing: + } +\cs_new:Npn \@@_use_one:w \s_@@_mark #1 , #2#3#4 \s_@@_stop + { \exp_not:n {#3} } +\cs_new:Npn \@@_use_end:w + \s_@@_mark #1 , #2#3#4#5#6 \s_@@_stop + { \exp_not:n { #4 #5 #3 } } +\cs_new:Npn \@@_use_more:w ; #1#2#3#4#5#6 ; + { + \exp_not:n { #3 #5 } + \@@_use:Nw \@@_use_end:w \@@_use_more:w ; + {#1} {#2} {#6} {#5} {#6} ; + } +\cs_new:Npn \clist_use:nn #1#2 { \clist_use:nnnn {#1} {#2} {#2} {#2} } +% \end{macrocode} +% \end{macro} +% % \subsection{Using a single item} % % \begin{macro}{\clist_item:Nn, \clist_item:cn} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index 1291f40128d..e0cdd606b31 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx index 1b59215b8a2..9b72bdc466a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -158,8 +158,8 @@ % red!50!cyan % \end{verbatim} % will result in a color specification using the |rgb| model, made up of -% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}. As color -% model interconversion is not exact. +% $50\,\%$ red and $50\,\%$ of cyan \emph{expressed in \texttt{rgb}}. +% This may be important as color model interconversion is not exact. % % The one exception to the above is where the first model in an expression is % |gray|. In this case, the order of mixing is \enquote{swapped} internally, so diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index 56b74c3a344..b7eb9d0215d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index 29e0f37051d..42e7283436d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index 9e079c7f430..aa9fce6c58b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx @@ -79,7 +79,7 @@ and all files in that bundle must be distributed together. % % \title{The \cls{l3doc} class} % \author{\Team} -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % \tableofcontents % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index 6555eb4c3b1..fa01fb954e7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index 1c6b1bd01d9..163e867881d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index eb025e0b16c..a89f6540c68 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index ee3458bb461..1b8dfa7c7ae 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index d4f03e55f2c..59eb0b65df0 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx index 172735f54d1..1811a174755 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index 9ded69aa6f4..0a5662979dd 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index 97d449608f2..097da442af6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index 1ae1a4faf87..0be0e3f605d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index ebb28522230..44ae9a5d7d6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index 75823bbb95c..165d955d7b9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index c43da846b6b..dcfa86e2276 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index a8c2f8403b3..7b854343ed1 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index e61833552bb..5012e48e9b2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index faba0ea08a7..c4dbfa4d15a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % \maketitle % % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx index 7ca054e7d22..669642d2e8f 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx @@ -40,7 +40,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index e56560e88df..27ee89c0730 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index 7a110305cb5..a66073e0735 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index 54f36dbab51..5994a193c6c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index d0be26dc676..f67e937989b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index c5586a9a0d5..428774aa937 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index cf04ec82d2d..8f5f984c79c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -891,7 +891,7 @@ % \end{verbatim} % are treated identically. % -% \begin{function}[rEXP, added=2020-12-19]{\keyval_parse:nnn} +% \begin{function}[rEXP, added=2020-12-19, updated = 2021-05-10]{\keyval_parse:nnn} % \begin{syntax} % \cs{keyval_parse:nnn} \Arg{code_1} \Arg{code_2} \Arg{key--value list} % \end{syntax} @@ -929,7 +929,7 @@ % \end{texnote} % \end{function} % -% \begin{function}[rEXP,updated = 2020-12-19]{\keyval_parse:NNn} +% \begin{function}[rEXP, updated = 2021-05-10]{\keyval_parse:NNn} % \begin{syntax} % \cs{keyval_parse:NNn} \meta{function_1} \meta{function_2} \Arg{key--value list} % \end{syntax} @@ -1017,7 +1017,10 @@ % argument. % \begin{macrocode} \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 - { \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 } + { + \group_align_safe_begin: + \@@_loop_active:nnw {##1} {##2} \s_@@_mark ##3 #1 \s_@@_tail #1 + } \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn % \end{macrocode} % \end{macro} @@ -1255,7 +1258,7 @@ \cs_new:Npn \@@_end_loop_active:w \s_@@_tail \@@_loop_other:nnw ##1 \s_@@_mark \s_@@_tail , \s_@@_tail , - { } + { \group_align_safe_end: } % \end{macrocode} % \end{macro} % @@ -1280,14 +1283,18 @@ { \@@_if_blank:w \s_@@_mark #2 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop + \group_align_safe_end: \exp_not:n { #4 { #2 } { #1 } } + \group_align_safe_begin: \@@_loop_other:nnw {#3} {#4} } \cs_new:Npn \@@_key:nn #1 #2 { \@@_if_blank:w \s_@@_mark #1 \s_@@_nil \s_@@_stop \@@_blank_key_error:w \s_@@_mark \s_@@_stop + \group_align_safe_end: \exp_not:n { #2 { #1 } } + \group_align_safe_begin: \@@_loop_other:nnw {#2} } % \end{macrocode} @@ -1311,7 +1318,8 @@ % \begin{macrocode} \cs_new:Npn \@@_blank_true:w \s_@@_mark \s_@@_stop \@@_trim:nN #1 \@@_key:nn { \@@_loop_other:nnw } -\cs_new:Npn \@@_blank_key_error:w \s_@@_mark \s_@@_stop \exp_not:n #1 +\cs_new:Npn \@@_blank_key_error:w + \s_@@_mark \s_@@_stop \group_align_safe_end: \exp_not:n #1 { \__kernel_msg_expandable_error:nn { keyval } { blank-key-name } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index a843e28ffef..05b98fed562 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index 7e4f729ca5e..35c8df065da 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index b408c181b26..ed2169b94f2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -125,6 +125,40 @@ % defined. % \end{function} % +% \section{Customizable information for message modules} +% +% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n} +% \begin{syntax} +% \cs{msg_module_name:n} \Arg{module} +% \end{syntax} +% Expands to the public name of the \meta{module} as defined by +% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module} +% unchanged). +% \end{function} +% +% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n} +% \begin{syntax} +% \cs{msg_module_type:n} \Arg{module} +% \end{syntax} +% Expands to the description which applies to the \meta{module}, +% for example a |Package| or |Class|. The information here is defined +% in \cs{g_msg_module_type_prop}, and will default to |Package| if an +% entry is not present. +% \end{function} +% +% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop} +% Provides a mapping between the module name used for messages, and that +% for documentation. For example, \LaTeX{}3 core messages are stored in +% the reserved |LaTeX| tree, but are printed as |LaTeX3|. +% \end{variable} +% +% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop} +% Provides a mapping between the module name used for messages, and that +% type of module. For example, for \LaTeX{}3 core messages, an empty entry +% is set here meaning that they are not described using the standard +% |Package| text. +% \end{variable} +% % \section{Contextual information for messages} % % \begin{function}[rEXP]{\msg_line_context:} @@ -215,25 +249,6 @@ % |Package| is the standard outcome: see \cs{msg_module_type:n}. % \end{function} % -% \begin{function}[EXP, added = 2018-10-10]{\msg_module_name:n} -% \begin{syntax} -% \cs{msg_module_name:n} \Arg{module} -% \end{syntax} -% Expands to the public name of the \meta{module} as defined by -% \cs{g_msg_module_name_prop} (or otherwise leaves the \meta{module} -% unchanged). -% \end{function} -% -% \begin{function}[EXP, added = 2018-10-10]{\msg_module_type:n} -% \begin{syntax} -% \cs{msg_module_type:n} \Arg{module} -% \end{syntax} -% Expands to the description which applies to the \meta{module}, -% for example a |Package| or |Class|. The information here is defined -% in \cs{g_msg_module_type_prop}, and will default to |Package| if an -% entry is not present. -% \end{function} -% % \begin{function}[EXP,updated = 2018-09-30]{\msg_see_documentation_text:n} % \begin{syntax} % \cs{msg_see_documentation_text:n} \Arg{module} @@ -246,23 +261,10 @@ % \end{quote} % This function can be redefined to alter the language in which the % message is given, using |#1| as the name of the \meta{module} to -% be included. The name of the \meta{module} may be altered by use of -% \cs{g_msg_module_documentation_prop} +% be included. The name of the \meta{module} is produced using +% \cs{msg_module_name:n}. % \end{function} % -% \begin{variable}[added = 2018-10-10]{\g_msg_module_name_prop} -% Provides a mapping between the module name used for messages, and that -% for documentation. For example, \LaTeX{}3 core messages are stored in -% the reserved |LaTeX| tree, but are printed as |LaTeX3|. -% \end{variable} -% -% \begin{variable}[added = 2018-10-10]{\g_msg_module_type_prop} -% Provides a mapping between the module name used for messages, and that -% type of module. For example, for \LaTeX{}3 core messages, an empty entry -% is set here meaning that they are not described using the standard -% |Package| text. -% \end{variable} -% % \section{Issuing messages} % % Messages behave differently depending on the message class. In all cases, diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index 9a548a53919..44239f2348e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx index 747f46aa9f3..71a0f854697 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index 972e417998c..eedb4f271a3 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1620,7 +1620,7 @@ % \TeX{}'s alignment structures present many problems. As Knuth says % himself in \emph{\TeX : The Program}: \enquote{It's sort of a miracle % whenever \tn{halign} or \tn{valign} work, [\ldots]} One problem relates -% to commands that internally issues a \tn{cr} but also peek ahead for +% to commands that internally issue a \tn{cr} but also peek ahead for % the next character for use in, say, an optional argument. If the % next token happens to be a |&| with category code~4 we get some % sort of weird error message because the underlying @@ -1631,14 +1631,21 @@ % special group so that \TeX{} still thinks it's on safe ground but at % the same time we don't want to introduce any brace group that may % find its way to the output. The following functions help with this -% by using code documented only in Appendix~D of +% by using behaviour documented only in Appendix~D of % \emph{The \TeX{}book}\dots +% In short evaluating |`{| and |`}| as numbers will not change the counter +% \TeX{} uses to keep track of its state in an alignment, whereas gobbling a +% brace using \cs{if_false:} will affect \TeX's state without producing any +% real group. % We place the \cs{if_false:} |{| \cs{fi:} part at that place so % that the successive expansions of \cs{group_align_safe_begin/end:} % are always brace balanced. % \begin{macrocode} +\group_begin: +\tex_catcode:D `\^^@ = 2 \exp_stop_f: \cs_new:Npn \group_align_safe_begin: - { \if_int_compare:w \if_false: { \fi: `} = \c_zero_int \fi: } + { \exp:w \if_false: { \fi: `^^@ \exp_stop_f: } +\group_end: \cs_new:Npn \group_align_safe_end: { \if_int_compare:w `{ = \c_zero_int } \fi: } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index 38acc36a4c9..371f894c420 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index 8106e1746e5..10ccfa74836 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 0824cbcb974..4962ca6fa2e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -270,11 +270,15 @@ % \item[\{$n,m$\}] At least $n$, no more than $m$, greedy. % \item[\{$n,m$\}?] At least $n$, no more than $m$, lazy. % \end{l3regex-syntax} +% For greedy quantifiers the regex code will first investigate matches +% that involve as many repetitions as possible, while for lazy +% quantifiers it investigates matches with as few repetitions as +% possible first. % % Alternation and capturing groups. % \begin{l3regex-syntax} % \item[A\char`|B\char`|C] Either one of \texttt{A}, \texttt{B}, -% or \texttt{C}. +% or \texttt{C}, investigating \texttt{A} first. % \item[(\ldots{})] Capturing group. % \item[(?:\ldots{})] Non-capturing group. % \item[(?\char`|\ldots{})] Non-capturing group which resets @@ -5652,17 +5656,21 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_replacement_normal:n #1 { - \tl_if_empty:NTF \l_@@_replacement_category_tl - { \@@_replacement_normal_aux:N #1 } - { % ( - \token_if_eq_charcode:NNTF #1 ) - { - \seq_pop:NN \l_@@_replacement_category_seq - \l_@@_replacement_category_tl - } - { - \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w } - ? #1 + \int_compare:nNnTF { \l_@@_replacement_csnames_int } > 0 + { \exp_args:No \@@_replacement_put:n { \token_to_str:N #1 } } + { + \tl_if_empty:NTF \l_@@_replacement_category_tl + { \@@_replacement_normal_aux:N #1 } + { % ( + \token_if_eq_charcode:NNTF #1 ) + { + \seq_pop:NN \l_@@_replacement_category_seq + \l_@@_replacement_category_tl + } + { + \use:c { @@_replacement_c_ \l_@@_replacement_category_tl :w } + ? #1 + } } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index 7b6cc0c857d..18e954d9e18 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index 67c71a890bf..fa2b011f990 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index 58e65d59b19..46ed7ca906e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index 23fbf0421b9..c9ce040eeec 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index 10d4fa865e4..aecd6d3c0d1 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index 57f3361c517..6399f57f318 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index 6f6bef57ec4..3fb6816d12e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index 18cc1db0648..54fa33d04e8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index aee505c0c52..58e87ba0e3a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index f2f10d16647..05f32c25fe5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index 30a9612af15..fb2a14b6f05 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index 3db1f706c84..ce65d87061b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % @@ -1080,6 +1080,15 @@ % \cs{peek_regex:nTF} as control sequences, while functions that % inspect individual tokens (for instance \cs{peek_charcode:NTF}) % only take into account their meaning. +% +% The \cs{peek_regex:nTF} function only inspects as few tokens as +% necessary to determine whether the regular expression matches. +% For instance \cs{peek_regex:nTF} \verb"{ abc | [a-z] }" |{ } { }| +% |abc| will only inspect the first token~|a| even though the first +% branch |abc| of the alternative is preferred in functions such as +% \cs{peek_regex_remove_once:n}. This may have an effect on +% tokenization if the input stream has not yet been tokenized and +% category codes are changed. % \end{texnote} % \end{function} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index 6165c802ae6..0d2a3bedbc8 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2021-05-07} +% \date{Released 2021-05-11} % % \maketitle % diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index be777b6ab07..3a967c71daa 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -70,7 +70,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2021-05-07}% +\def\ExplFileDate{2021-05-11}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -7303,8 +7303,11 @@ { \if_mode_inner: \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_conditional:Npnn \mode_if_math: { p , T , F , TF } { \if_mode_math: \prg_return_true: \else: \prg_return_false: \fi: } +\group_begin: +\tex_catcode:D `\^^@ = 2 \exp_stop_f: \cs_new:Npn \group_align_safe_begin: - { \if_int_compare:w \if_false: { \fi: `} = \c_zero_int \fi: } + { \exp:w \if_false: { \fi: `^^@ \exp_stop_f: } +\group_end: \cs_new:Npn \group_align_safe_end: { \if_int_compare:w `{ = \c_zero_int } \fi: } \int_new:N \g__kernel_prg_map_int @@ -7710,6 +7713,7 @@ \tl_new:N \l__clist_internal_clist \scan_new:N \s__clist_mark \scan_new:N \s__clist_stop +\cs_new:Npn \__clist_use_none_delimit_by_s_mark:w #1 \s__clist_mark { } \cs_new:Npn \__clist_use_none_delimit_by_s_stop:w #1 \s__clist_stop { } \cs_new:Npn \__clist_use_i_delimit_by_s_stop:nw #1 #2 \s__clist_stop {#1} \quark_new:N \q__clist_recursion_tail @@ -8232,6 +8236,39 @@ \cs_new:Npn \clist_use:Nn #1#2 { \clist_use:Nnnn #1 {#2} {#2} {#2} } \cs_generate_variant:Nn \clist_use:Nn { c } +\cs_new:Npn \clist_use:nnnn #1#2#3#4 + { + \__clist_use:Nw \__clist_use_none_delimit_by_s_stop:w + \__clist_use:Nw \__clist_use_one:w + \__clist_use:Nw \__clist_use_end:w + \__clist_use_more:w ; + {#2} {#3} {#4} ; + \prg_do_nothing: #1 , \s__clist_mark , + \s__clist_stop + } +\cs_new:Npn \__clist_use:Nw #1#2 ; #3 ; #4 , + { + \tl_if_empty:oTF { \use_none:nn #4 ? } + { \__clist_use:Nw #1#2 ; } + { + \__clist_use_none_delimit_by_s_mark:w #4 #1 \s__clist_mark + \tl_trim_spaces_apply:oN {#4} \__clist_use_ii_i:nn + \__clist_map_unbrace:wn , { #2 ; } + } + #3 ; \prg_do_nothing: + } +\cs_new:Npn \__clist_use_one:w \s__clist_mark #1 , #2#3#4 \s__clist_stop + { \exp_not:n {#3} } +\cs_new:Npn \__clist_use_end:w + \s__clist_mark #1 , #2#3#4#5#6 \s__clist_stop + { \exp_not:n { #4 #5 #3 } } +\cs_new:Npn \__clist_use_more:w ; #1#2#3#4#5#6 ; + { + \exp_not:n { #3 #5 } + \__clist_use:Nw \__clist_use_end:w \__clist_use_more:w ; + {#1} {#2} {#6} {#5} {#6} ; + } +\cs_new:Npn \clist_use:nn #1#2 { \clist_use:nnnn {#1} {#2} {#2} {#2} } \cs_new:Npn \clist_item:Nn #1#2 { \__clist_item:ffoN @@ -12655,7 +12692,10 @@ \cs_set_protected:Npn \__keyval_tmp:NN #1#2 { \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 - { \__keyval_loop_active:nnw {##1} {##2} \s__keyval_mark ##3 #1 \s__keyval_tail #1 } + { + \group_align_safe_begin: + \__keyval_loop_active:nnw {##1} {##2} \s__keyval_mark ##3 #1 \s__keyval_tail #1 + } \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn \cs_new:Npn \__keyval_loop_active:nnw ##1 ##2 ##3 #1 { @@ -12764,7 +12804,7 @@ \cs_new:Npn \__keyval_end_loop_active:w \s__keyval_tail \__keyval_loop_other:nnw ##1 \s__keyval_mark \s__keyval_tail , \s__keyval_tail , - { } + { \group_align_safe_end: } } \char_set_catcode_active:n { `\, } \char_set_catcode_active:n { `\= } @@ -12774,14 +12814,18 @@ { \__keyval_if_blank:w \s__keyval_mark #2 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop + \group_align_safe_end: \exp_not:n { #4 { #2 } { #1 } } + \group_align_safe_begin: \__keyval_loop_other:nnw {#3} {#4} } \cs_new:Npn \__keyval_key:nn #1 #2 { \__keyval_if_blank:w \s__keyval_mark #1 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop + \group_align_safe_end: \exp_not:n { #2 { #1 } } + \group_align_safe_begin: \__keyval_loop_other:nnw {#2} } \cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop { } @@ -12789,7 +12833,8 @@ \cs_new:Npn \__keyval_if_recursion_tail:w \s__keyval_mark #1 \s__keyval_tail { } \cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \__keyval_trim:nN #1 \__keyval_key:nn { \__keyval_loop_other:nnw } -\cs_new:Npn \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop \exp_not:n #1 +\cs_new:Npn \__keyval_blank_key_error:w + \s__keyval_mark \s__keyval_stop \group_align_safe_end: \exp_not:n #1 { \__kernel_msg_expandable_error:nn { keyval } { blank-key-name } @@ -20723,6 +20768,22 @@ { \__kernel_msg_error:nn { cctab } { missing-end } } } } +\cs_new:Npn \cctab_item:Nn #1#2 + { \exp_args:Nf \__cctab_item:nN { \int_eval:n {#2} } #1 } +\sys_if_engine_luatex:TF + { + \cs_new:Npn \__cctab_item:nN #1#2 + { \lua_now:e { tex.print(-2, tex.getcatcode(\int_use:N #2, #1)) } } + } + { + \cs_new:Npn \__cctab_item:nN #1#2 + { + \int_compare:nNnTF {#1} < { 256 } + { \intarray_item:Nn #2 { #1 + 1 } } + { \char_value_catcode:n {#1} } + } + } +\cs_generate_variant:Nn \cctab_item:Nn { c } \prg_new_eq_conditional:NNn \cctab_if_exist:N \cs_if_exist:N { TF , T , F , p } \prg_new_eq_conditional:NNn \cctab_if_exist:c \cs_if_exist:c @@ -25864,17 +25925,21 @@ { \tl_build_put_right:Nn \l__regex_build_tl } \cs_new_protected:Npn \__regex_replacement_normal:n #1 { - \tl_if_empty:NTF \l__regex_replacement_category_tl - { \__regex_replacement_normal_aux:N #1 } - { % ( - \token_if_eq_charcode:NNTF #1 ) - { - \seq_pop:NN \l__regex_replacement_category_seq - \l__regex_replacement_category_tl - } - { - \use:c { __regex_replacement_c_ \l__regex_replacement_category_tl :w } - ? #1 + \int_compare:nNnTF { \l__regex_replacement_csnames_int } > 0 + { \exp_args:No \__regex_replacement_put:n { \token_to_str:N #1 } } + { + \tl_if_empty:NTF \l__regex_replacement_category_tl + { \__regex_replacement_normal_aux:N #1 } + { % ( + \token_if_eq_charcode:NNTF #1 ) + { + \seq_pop:NN \l__regex_replacement_category_seq + \l__regex_replacement_category_tl + } + { + \use:c { __regex_replacement_c_ \l__regex_replacement_category_tl :w } + ? #1 + } } } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 76f651b6d5c..1652be55250 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2021-05-07}% +\def\ExplFileDate{2021-05-11}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 @@ -93,6 +93,8 @@ \tex_input:D #1 .def \scan_stop: } \sys_everyjob: +\bool_new:N \g__kernel_backend_header_bool +\bool_gset_true:N \g__kernel_backend_header_bool \sys_load_backend:n { } \ExplSyntaxOff \l@expl@tidy@tl diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 48e75787828..b1ec76b53f3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2021-05-07}% +\def\ExplFileDate{2021-05-11}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index f83cbbea278..d78fd024f70 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2021-05-07}% +\def\ExplFileDate{2021-05-11}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% -- cgit v1.2.3