diff options
author | Karl Berry <karl@freefriends.org> | 2023-10-10 20:27:00 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-10-10 20:27:00 +0000 |
commit | 1045e3f70340d9f7540d9c9328a282ee84f88a51 (patch) | |
tree | ab54e08e01a041bf9bfd650d8981c1f63214a169 | |
parent | f92a7f650889a8bbbd6ff151a911a35c25fa2901 (diff) |
l3 (10oct23)
git-svn-id: svn://tug.org/texlive/trunk@68507 c570f23f-e606-0410-a88d-b1316a301751
170 files changed, 4625 insertions, 3853 deletions
diff --git a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md index 5877ce53d3b..94da9cacbe4 100644 --- a/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3backend/CHANGELOG.md @@ -6,6 +6,11 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-10-10] + +### Changed +- Track `expl3` changes + ## [2023-04-19] ### Changed @@ -296,7 +301,8 @@ this project uses date-based 'snapshot' version identifiers. - Include `l3backend` in file names - Moved backend code to internal for each 'parent' module -[Unreleased]: https://github.com/latex3/latex3/compare/2023-04-19...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-10...HEAD +[2023-10-10]: https://github.com/latex3/latex3/compare/2023-04-19...2023-10-10 [2023-04-19]: https://github.com/latex3/latex3/compare/2023-03-30...2023-04-19 [2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-16...2023-03-30 [2023-01-16]: https://github.com/latex3/latex3/compare/2022-10-26...2023-01-16 diff --git a/Master/texmf-dist/doc/latex/l3backend/README.md b/Master/texmf-dist/doc/latex/l3backend/README.md index 0aa2b14b5f9..883bd5d1c68 100644 --- a/Master/texmf-dist/doc/latex/l3backend/README.md +++ b/Master/texmf-dist/doc/latex/l3backend/README.md @@ -1,7 +1,7 @@ LaTeX3 Backend Drivers ====================== -Release 2023-04-19 +Release 2023-10-10 This package forms parts of `expl3`, and contains the code used to interface with backends (drivers) across the `expl3` codebase. The functions here are diff --git a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf Binary files differindex 6f9ea9a52e2..0131abee161 100644 --- a/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf +++ b/Master/texmf-dist/doc/latex/l3backend/l3backend-code.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md index e440354bfb1..7befc1cdf89 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3experimental/CHANGELOG.md @@ -7,6 +7,12 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-10-10] + +### Changed +- Slowdown a l3benchmark slow branch code slightly to gain test suite + robustness (issue \#1274) + ## [2023-05-11] ### Changed @@ -275,7 +281,8 @@ this project uses date-based 'snapshot' version identifiers. - New `l3color` module using `xcolor`-like expression syntax - New `l3draw` module, based on `pgf` layer of the TikZ system -[Unreleased]: https://github.com/latex3/latex3/compare/2023-05-11...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-10...HEAD +[2023-10-10]: https://github.com/latex3/latex3/compare/2023-05-11...2023-10-10 [2023-05-11]: https://github.com/latex3/latex3/compare/2023-04-19...2023-05-11 [2023-04-19]: https://github.com/latex3/latex3/compare/2023-03-30...2023-04-19 [2023-03-30]: https://github.com/latex3/latex3/compare/2023-01-24...2023-03-30 diff --git a/Master/texmf-dist/doc/latex/l3experimental/README.md b/Master/texmf-dist/doc/latex/l3experimental/README.md index fad6c09a3b7..f78ecff28af 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/README.md +++ b/Master/texmf-dist/doc/latex/l3experimental/README.md @@ -1,7 +1,7 @@ Experimental LaTeX3 Concepts ============================ -Release 2023-05-11 +Release 2023-10-10 Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf Binary files differindex c8c57e91691..a4f00544739 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3benchmark/l3benchmark.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf Binary files differindex b7744fd2b6a..095a3dd3913 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3bitset/l3bitset.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf Binary files differindex 4926dccaa7c..9e5404c2216 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw-code.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf Binary files differindex 81f9aa126ce..485b4ded369 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3draw/l3draw.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf Binary files differindex e51c8b26506..dd86d0bd769 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3graphics/l3graphics.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf Binary files differindex 8a1140d1cb6..bd73f200d55 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3opacity/l3opacity.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf Binary files differindex 5c7e16f8709..dbc0058acea 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3str/l3str-format.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf Binary files differindex fb739697fd7..2416721b43c 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/l3sys-shell/l3sys-shell.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf Binary files differindex f67094abd68..4e7d4f9a575 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xcoffins/xcoffins.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf Binary files differindex e0ca0b85d4f..3ba577c1598 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/l3galley.pdf diff --git a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf Binary files differindex 8fbd8fb0a07..eacea34401e 100644 --- a/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf +++ b/Master/texmf-dist/doc/latex/l3experimental/xgalley/xgalley.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md index 43e0dce3393..590abad03a5 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md @@ -7,6 +7,32 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-10-10] + +### Added +- `\iow_shipout_e:Nn` +- Documentation for `\sys_if_timer_exist_p:` and `\sys_if_timer_exist:(TF)`. + They were supported since l3kernel 2021-05-25, along with `\sys_timer:`. +- l3doc.dtx: Support for footnotes in the function and variable environment +- Variants `\tl_if_single:c(TF)` and `\tl_if_single_p:c` (issue \#1272) +- Key properties `.str_(g)set_e:N` and `.tl_(g)set_e:N` + +### Changed +- Switch generally from `x`- to `e`-type variants +- Convert `\file_if_exist:n(TF)` to expandable status, + adding predicate version +- Standardise variants for `\prop_(g)pop:NnN(TF)` +- Standardise variants for `\prop_(g)put:Nnn` +- Standardise variants for `\prop_(g)put_if_new:Nnn` +- Standardise variants for `\prop_(g)remove:Nn` + +### Deprecated +- `\iow_shipout_x:Nn` in favor of `e`-type naming +- Key properties `.str_(g)set_x:N` and `.tl_(g)set_x:N` + +### Fixed +- Rare rounding error in divisions (issue \#1264) + ## [2023-08-29] ### Added @@ -1512,7 +1538,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/2023-08-29...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-10...HEAD +[2023-10-10]: https://github.com/latex3/latex3/compare/2023-08-29...2023-10-10 [2023-08-29]: https://github.com/latex3/latex3/compare/2023-08-11...2023-08-29 [2023-08-11]: https://github.com/latex3/latex3/compare/2023-08-03...2023-08-11 [2023-08-03]: https://github.com/latex3/latex3/compare/2023-06-30...2023-08-03 diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md index 7afb055297b..7b368819d58 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 2023-08-29 +Release 2023-10-10 Overview -------- diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf Binary files differindex 33262bd8281..af52bd35c0c 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf Binary files differindex 61d451cc9ee..f8431c73476 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex index 0198240396c..79d4cec3e98 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex @@ -48,6 +48,8 @@ for those people who are interested. { \texttt{ \__codedoc_meta:n {#1} } } \ExplSyntaxOff +\newif\ifinterface +\interfacetrue \listfiles @@ -62,7 +64,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2023-08-29} +\date{Released 2023-10-10} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf Binary files differindex 8ec07dcef36..b8cd8d1e295 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf Binary files differindex d93d065c3b2..39d53ac5b93 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf Binary files differindex 7ebec4848a6..7f0effadb86 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf Binary files differindex fe4f64501cc..5508abfcc94 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf Binary files differindex 3b36d8a341e..13e40ab8bd7 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf Binary files differindex f3031cb0d83..f80fc2a5193 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf Binary files differindex d7155a90490..c33cbf0cace 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf Binary files differindex 788ded7ff12..ffe3a03c6c8 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf Binary files differindex 9778f1dd952..e25a8421bb8 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf Binary files differindex 84e2f2c9f28..4159983011a 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf Binary files differindex e91e2d344b5..8d74fc5968a 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf Binary files differindex 83832c32372..d4c60d81f74 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf Binary files differindex acbefc90b50..7b5dcec9cc1 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf Binary files differindex 132979c8a75..1cfeef5b063 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf Binary files differindex c1ed0ffacaf..cd159d28f32 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt b/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt index dc715471b22..75af4e93044 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt +++ b/Master/texmf-dist/doc/latex/l3kernel/l3obsolete.txt @@ -70,6 +70,7 @@ Function Date deprecated \tl_mixed_case:nn 2020-01-03 \tl_upper_case:n 2020-01-03 \tl_upper_case:nn 2020-01-03 +[x-type variants] 2023-09-27 --------------------------------------------------- Removed functions and variables @@ -349,6 +350,7 @@ Function Date removed \iow_now_when_avail:Nn 2012-06-05 \iow_now_when_avail:Nx 2012-06-05 \iow_open_streams: 2011-09-08 +\iow_shipout_x:Nn 2023-09-17 \iow_wrap:xnnnN 2013-01-08 \KV_process_no_space_removal_no_sanitize:NNn 2011-09-08 \KV_process_space_removal_no_sanitize:NNn 2011-09-08 diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv index 2de6430a12d..710da8edbea 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv +++ b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.csv @@ -12,6 +12,7 @@ alloc,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https ampersand,l3kernel,The LaTeX 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, apfs,apfontspec,Qing Lee,https://github.com/CTeX-org/apfontspec,https://github.com/CTeX-org/apfontspec.git,https://github.com/CTeX-org/apfontspec/issues,2020-05-17,2020-05-17, arch,archaeologie,Lukas C. Bossert,http://www.biblatex-archaeologie.de,https://github.com/LukasCBossert/biblatex-archaeologie.git,https://github.com/LukasCBossert/biblatex-archaeologie/issues,2017-03-24,2017-03-24, +arsenal,arsenal,Boris Veytsman,https://github.com/borisveytsman/arsenal,https://github.com/borisveytsman/arsenal,https://github.com/borisveytsman/arsenal/issues array,hobby,Andrew Stacey,https://github.com/loopspace/hobby,https://github.com/loopspace/hobby,https://github.com/loopspace/hobby/issues,2013-03-16,2020-10-29, atsign,l3kernel,The LaTeX 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, avm,langsci-avm,Felix Kopecky,https://ctan.org/pkg/langsci-avm,https://github.com/langsci/langsci-avm,https://github.com/langsci/langsci-avm/issues,2020-03-11,2020-03-11, @@ -120,6 +121,7 @@ intarray,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,ht ior,l3kernel,The LaTeX 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, iot,iot,Island of TeX,https://islandoftex.gitlab.io,https://gitlab.com/islandoftex/texmf,https://gitlab.com/groups/islandoftex/texmf/-/issues,2023-07-18,2023-07-18, iow,l3kernel,The LaTeX 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, +iwonamath,iwonamath,Boris Veytsman,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath,https://github.com/borisveytsman/iwonamath/issues jiazhu,jiazhu,Qing Lee,https://github.com/CTeX-org/ctex-kit,https://github.com/CTeX-org/ctex-kit.git,https://github.com/CTeX-org/ctex-kit/issues,2020-05-17,2020-05-17, job,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2021-04-23,2021-04-23, kernel,l3kernel,The LaTeX 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, @@ -197,6 +199,7 @@ prelim,prelim2e,Marei Peischl,https://github.com/TeXhackse/prelim2e,https://gith prg,l3kernel,The LaTeX 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, primargs,morewrites,Bruno Le Floch,https://github.com/blefloch/latex-morewrites,https://github.com/blefloch/latex-morewrites.git,https://github.com/blefloch/latex-morewrites/issues,2013-03-16,2015-09-22, prop,l3kernel,The LaTeX 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, +property,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2021-01-20,2021-03-03, pseudo,pseudo,Magnus Lie Hetland,https://github.com/mlhetland/pseudo.sty,https://github.com/mlhetland/pseudo.sty.git,https://github.com/mlhetland/pseudo.sty/issues,2019-06-24,2019-06-24, ptex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2015-07-28,2015-07-28, ptxcd,ptxcd, Marei Peischl,,,,2020-07-27,2020-07-27,Used for specific corporate design templates @@ -238,6 +241,7 @@ tag,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https:/ tasks,tasks,Clemens Niederberger,https://github.com/cgnieder/tasks/,https://github.com/cgnieder/tasks.git,https://github.com/cgnieder/cgnieder/tasks/issues,2013-03-16,2020-04-14, tblr,tabularray,Jianrui Lyu,https://github.com/lvjr/tabularray,https://github.com/lvjr/tabularray.git,https://github.com/lvjr/tabularray/issues,2022-04-02,2022-04-02, tcobox,tcolorbox,Thomas F. Sturm,https://github.com/T-F-S/tcolorbox,https://github.com/T-F-S/tcolorbox.git,https://github.com/T-F-S/tcolorbox/issues,2020-02-19,2020-02-19, +template,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2021-01-20,2021-03-03, term,l3kernel,The LaTeX 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, tex,l3kernel,The LaTeX 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, text,l3kernel,The LaTeX 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, diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf Binary files differindex 89ba420517c..5d41b138f07 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf Binary files differindex c3025741c6d..16d307e0284 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex index d241392fb9d..29c2f76864c 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 2023-08-29} +\date{Released 2023-10-10} \begin{document} diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf Binary files differindex ebc9bcab2ae..5c4fe8ad1d8 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex index 42e1b4c263d..dbb6d858b49 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 2023-08-29} +\date{Released 2023-10-10} \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 Binary files differindex c34ddb6bd89..ebe1f75c91b 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex index e0a5780cb87..bd166834ac7 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 2023-08-29} +\date{Released 2023-10-10} \newcommand{\TF}{\textit{(TF)}} diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf Binary files differindex 458c832be3c..a89fb20da4a 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf +++ b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex index ee6efdcc7ac..bd89e295245 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex @@ -40,6 +40,10 @@ for those people who are interested. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[kernel]{l3doc} + +\newif\ifinterface +\interfacefalse + \listfiles \begin{document} @@ -53,7 +57,7 @@ for those people who are interested. {latex-team@latex-project.org}% }% } -\date{Released 2023-08-29} +\date{Released 2023-10-10} \pagenumbering{roman} \maketitle diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3body.tex b/Master/texmf-dist/doc/latex/l3kernel/source3body.tex index cddbdac6e2a..34573d3d648 100644 --- a/Master/texmf-dist/doc/latex/l3kernel/source3body.tex +++ b/Master/texmf-dist/doc/latex/l3kernel/source3body.tex @@ -44,8 +44,16 @@ for those people who are interested. \setlength\parskip{\baselineskip} \noindent +\ifinterface This is the reference documentation for the \pkg{expl3} -programming environment. The \pkg{expl3} modules set up an experimental +programming environment; see the matching \pkg{source3} PDF +for the typeset sources. +\else +This is the typset sources for the \pkg{expl3} +programming environment; see the matching \pkg{interface3} PDF +for the API reference manual. +\fi +The \pkg{expl3} modules set up a naming scheme for \LaTeX{} commands, which allow the \LaTeX{} programmer to systematically name functions and variables, and specify the argument types of functions. diff --git a/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md index de080e8d41d..05001a0e8fa 100644 --- a/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md +++ b/Master/texmf-dist/doc/latex/l3packages/CHANGELOG.md @@ -7,8 +7,14 @@ this project uses date-based 'snapshot' version identifiers. ## [Unreleased] +## [2023-10-10] + +### Changed +- Track `expl3` changes + ## [2023-08-29] +### Added - Re-add `\GetDocumentCommandArgSpec`, etc., to `xparse` stub ## [2023-02-02] @@ -231,7 +237,8 @@ this project uses date-based 'snapshot' version identifiers. - Switch to ISO date format - Improve cross-module use of internal functions -[Unreleased]: https://github.com/latex3/latex3/compare/2023-08-29...HEAD +[Unreleased]: https://github.com/latex3/latex3/compare/2023-10-10...HEAD +[2023-10-10]: https://github.com/latex3/latex3/compare/2023-08-29...2023-10-10 [2023-08-29]: https://github.com/latex3/latex3/compare/2023-02-02...2023-08-29 [2023-02-02]: https://github.com/latex3/latex3/compare/2023-02-01...2023-02-02 [2023-02-01]: https://github.com/latex3/latex3/compare/2023-01-16...2023-02-01 diff --git a/Master/texmf-dist/doc/latex/l3packages/README.md b/Master/texmf-dist/doc/latex/l3packages/README.md index e1f195b332a..d3ecea70287 100644 --- a/Master/texmf-dist/doc/latex/l3packages/README.md +++ b/Master/texmf-dist/doc/latex/l3packages/README.md @@ -1,7 +1,7 @@ LaTeX3 High-Level Concepts ========================== -Release 2023-08-29 +Release 2023-10-10 Overview -------- @@ -20,13 +20,13 @@ updated at the same time. Currently included in the CTAN release of `l3packages` are the following bundles: -* `l3keys2e` +* `l3keys2e` (deprecated in favor of updated LaTeX kernel methods) * `xfp` (from 2022-06-01 part of the LaTeX format) -* `xfrac` -* `xparse` +* `xfrac` +* `xparse` (deprecated in favor of elements move to the LaTeX kernel) * `xtemplate` -`l3keys2e` +`l3keys2e` (deprecated) ---------- The `l3keys2e` package allows keys defined using `l3keys` to be used as package diff --git a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf Binary files differindex 754439a4ca8..cfef37deffa 100644 --- a/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/l3keys2e/l3keys2e.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf Binary files differindex be5ed0387f0..aa5b6c02933 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xfp/xfp.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf Binary files differindex 7b124a040f7..61a472a9012 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xfrac/xfrac.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf Binary files differindex dffaa1ae590..483370f2fc5 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xparse/xparse.pdf diff --git a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf Binary files differindex 31258f27dee..57ab72b1487 100644 --- a/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf +++ b/Master/texmf-dist/doc/latex/l3packages/xtemplate/xtemplate.pdf diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index cf4ad444ba6..a6f7ea6d1c2 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -70,27 +70,27 @@ % \begin{macrocode} \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2023-04-19}{} + {l3backend-dvipdfmx.def}{2023-10-10}{} {L3 backend support: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3backend-dvips.def}{2023-04-19}{} + {l3backend-dvips.def}{2023-10-10}{} {L3 backend support: dvips} %</dvips> %<*dvisvgm> - {l3backend-dvisvgm.def}{2023-04-19}{} + {l3backend-dvisvgm.def}{2023-10-10}{} {L3 backend support: dvisvgm} %</dvisvgm> %<*luatex> - {l3backend-luatex.def}{2023-04-19}{} + {l3backend-luatex.def}{2023-10-10}{} {L3 backend support: PDF output (LuaTeX)} %</luatex> %<*pdftex> - {l3backend-pdftex.def}{2023-04-19}{} + {l3backend-pdftex.def}{2023-10-10}{} {L3 backend support: PDF output (pdfTeX)} %</pdftex> %<*xetex> - {l3backend-xetex.def}{2023-04-19}{} + {l3backend-xetex.def}{2023-10-10}{} {L3 backend support: XeTeX} %</xetex> % \end{macrocode} @@ -137,8 +137,7 @@ % \begin{macro} % { % \__kernel_backend_literal:e, -% \__kernel_backend_literal:n, -% \__kernel_backend_literal:x +% \__kernel_backend_literal:n % } % The one shared function for all backends is access to the basic % \tn{special} primitive: it has slightly odd expansion behaviour @@ -147,7 +146,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } % \end{macrocode} % \end{macro} % @@ -175,7 +173,7 @@ % \end{macrocode} % % \begin{macro} -% {\__kernel_backend_literal_postscript:n, \__kernel_backend_literal_postscript:x} +% {\__kernel_backend_literal_postscript:n, \__kernel_backend_literal_postscript:e} % Literal PostScript can be included using a few low-level formats. Here, % we use the form with no positioning: this is overall more convenient as % a wrapper. Note that this does require that where position is important, @@ -183,18 +181,18 @@ % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_literal_postscript:n #1 { \__kernel_backend_literal:n { ps:: #1 } } -\cs_generate_variant:Nn \__kernel_backend_literal_postscript:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_postscript:n { e } % \end{macrocode} % \end{macro} % -% \begin{macro}{\__kernel_backend_postscript:n, \__kernel_backend_postscript:x} +% \begin{macro}{\__kernel_backend_postscript:n, \__kernel_backend_postscript:e} % PostScript data that does have positioning, and also applying % a shift to |SDict| (which is not done automatically by % |ps:| or |ps::|, in contrast to |!| or |"|). % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_postscript:n #1 { \__kernel_backend_literal:n { ps: SDict ~ begin ~ #1 ~ end } } -\cs_generate_variant:Nn \__kernel_backend_postscript:n { x } +\cs_generate_variant:Nn \__kernel_backend_postscript:n { e } % \end{macrocode} % \end{macro} % @@ -265,7 +263,7 @@ % to have more code in Lua means we create two independent files using % shared DocStrip code. % -% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:x} +% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:e} % This is equivalent to \verb|\special{pdf:}| but the engine can % track it. Without the \texttt{direct} keyword everything is kept in % sync: the transformation matrix is set to the current point automatically. @@ -282,11 +280,11 @@ %</pdftex> { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } % \end{macrocode} % \end{macro} % -% \begin{macro}{\__kernel_backend_literal_page:n} +% \begin{macro}{\__kernel_backend_literal_page:n, \__kernel_backend_literal_page:e} % Page literals are pretty simple. To avoid an expansion, we write out % by hand. % \begin{macrocode} @@ -300,6 +298,16 @@ %</pdftex> page { \exp_not:n {#1} } } +\cs_new_protected:Npn \__kernel_backend_literal_page:e #1 + { +%<*luatex> + \tex_pdfextension:D literal ~ +%</luatex> +%<*pdftex> + \tex_pdfliteral:D +%</pdftex> + page {#1} + } % \end{macrocode} % \end{macro} % @@ -327,7 +335,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\__kernel_backend_matrix:n, \__kernel_backend_matrix:x} +% \begin{macro}{\__kernel_backend_matrix:n, \__kernel_backend_matrix:e} % Here the appropriate function is set up to insert an affine matrix % into the PDF. With \pdfTeX{} and \LuaTeX{} in direct PDF output mode there % is a primitive for this, which only needs the rotation/scaling/skew part. @@ -342,7 +350,7 @@ %</pdftex> { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_matrix:n { x } +\cs_generate_variant:Nn \__kernel_backend_matrix:n { e } % \end{macrocode} % \end{macro} % @@ -362,14 +370,14 @@ % for both backends, with some \texttt{clean up} for \XeTeX{} as % required. % -% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:x} +% \begin{macro}{\__kernel_backend_literal_pdf:n, \__kernel_backend_literal_pdf:e} % Undocumented but equivalent to \pdfTeX{}'s |literal| keyword. It's similar to % be not the same as the documented |contents| keyword as that adds a |q|/|Q| % pair. % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_literal_pdf:n #1 { \__kernel_backend_literal:n { pdf:literal~ #1 } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } % \end{macrocode} % \end{macro} % @@ -404,7 +412,7 @@ %<*dvisvgm> % \end{macrocode} % -% \begin{macro}{\__kernel_backend_literal_svg:n, \__kernel_backend_literal_svg:x} +% \begin{macro}{\__kernel_backend_literal_svg:n, \__kernel_backend_literal_svg:e} % Unlike the other backends, the requirements for making SVG files mean % that we can't conveniently transform all operations to the current point. % That makes life a bit more tricky later as that needs to be accounted for. @@ -413,7 +421,7 @@ % \begin{macrocode} \cs_new_protected:Npn \__kernel_backend_literal_svg:n #1 { \__kernel_backend_literal:n { dvisvgm:raw~ #1 { ?nl } } } -\cs_generate_variant:Nn \__kernel_backend_literal_svg:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_svg:n { e } % \end{macrocode} % \end{macro} % @@ -427,8 +435,8 @@ % \end{variable} % % \begin{macro}{\__kernel_backend_scope_begin:, \__kernel_backend_scope_end:} -% \begin{macro}{\__kernel_backend_scope_begin:n, \__kernel_backend_scope_begin:x} -% \begin{macro}{\__kernel_backend_scope:n, \__kernel_backend_scope:x} +% \begin{macro}{\__kernel_backend_scope_begin:n, \__kernel_backend_scope_begin:e} +% \begin{macro}{\__kernel_backend_scope:n, \__kernel_backend_scope:e} % In SVG, the need to attach concepts to a scope means we need to be sure we % will close all of the open scopes. That is easiest done if we only need % an outer \enquote{wrapper} \texttt{begin}/\texttt{end} pair, and within @@ -464,13 +472,13 @@ \group_begin: \int_gset:Nn \g__kernel_backend_scope_int { 1 } } -\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { x } +\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { e } \cs_new_protected:Npn \__kernel_backend_scope:n #1 { \__kernel_backend_literal_svg:n { <g ~ #1 > } \int_gincr:N \g__kernel_backend_scope_int } -\cs_generate_variant:Nn \__kernel_backend_scope:n { x } +\cs_generate_variant:Nn \__kernel_backend_scope:n { e } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index 6d8d4ede020..9bc74a1611d 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -82,7 +82,7 @@ \__kernel_backend_literal_postscript:n { Resolution~72~div~VResolution~72~div~scale } \__kernel_backend_literal_postscript:n { DVImag~dup~scale } - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { 0 ~ \dim_to_decimal_in_bp:n { \box_dp:N #1 } ~ @@ -111,7 +111,7 @@ { \__kernel_backend_scope_begin: \__kernel_backend_align_begin: - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { \fp_compare:nNnTF {#2} = \c_zero_fp { 0 } @@ -134,7 +134,7 @@ { \__kernel_backend_scope_begin: \__kernel_backend_align_begin: - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { \fp_eval:n { round ( #2 , 5 ) } ~ \fp_eval:n { round ( #3 , 5 ) } ~ @@ -169,7 +169,7 @@ \cs_new_protected:Npn \@@_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -204,7 +204,7 @@ \fp_compare:nNnT \l_@@_backend_cos_fp = \c_zero_fp { \fp_zero:N \l_@@_backend_cos_fp } \fp_set:Nn \l_@@_backend_sin_fp { round ( sind ( #2 ) , 5 ) } - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_use:N \l_@@_backend_cos_fp \c_space_tl \fp_compare:nNnTF \l_@@_backend_sin_fp = \c_zero_fp @@ -234,7 +234,7 @@ \cs_new_protected:Npn \@@_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_eval:n { round ( #2 , 5 ) } ~ 0~0~ @@ -263,7 +263,7 @@ \cs_new_protected:Npn \@@_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -293,7 +293,7 @@ \cs_new_protected:Npn \@@_backend_rotate_aux:Nn #1#2 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#2} = \c_zero_fp @@ -314,7 +314,7 @@ \cs_new_protected:Npn \@@_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ @@ -350,9 +350,9 @@ \cs_new_protected:Npn \@@_backend_clip:N #1 { \int_gincr:N \g__kernel_clip_path_int - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > } - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { < path ~ d = @@ -387,7 +387,7 @@ scale ( 1 , -1 ) " } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url ( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int ) " @@ -416,7 +416,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_rotate:Nn #1#2 { - \__kernel_backend_scope_begin:x + \__kernel_backend_scope_begin:e { transform = " @@ -437,7 +437,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_scale:Nnn #1#2#3 { - \__kernel_backend_scope_begin:x + \__kernel_backend_scope_begin:e { transform = " diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index 5049aae5f92..73eee0ca2cf 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -322,7 +322,7 @@ % \begin{macro}[EXP]{\@@_backend_devicen_colorants:n} % \begin{macro}[EXP]{\@@_backend_devicen_colorants:w} % \begin{macrocode} -\cs_new:Npx \@@_backend_devicen_colorants:n #1 +\cs_new:Npe \@@_backend_devicen_colorants:n #1 { \exp_not:N \tl_if_blank:nF {#1} { @@ -377,7 +377,7 @@ % \begin{macro} % { % \@@_backend_separation_init:nnnnn, -% \@@_backend_separation_init:nxxnn +% \@@_backend_separation_init:neenn % } % \begin{macro} % {\@@_backend_separation_init_aux:nnnnnn} @@ -402,17 +402,17 @@ % ideas from \url{https://tex.stackexchange.com/q/560093} plus using % the PostScript manual for other aspects. % \begin{macrocode} -\cs_new_protected:Npx \@@_backend_separation_init:nnnnn #1#2#3#4#5 +\cs_new_protected:Npe \@@_backend_separation_init:nnnnn #1#2#3#4#5 { \bool_if:NT \g__kernel_backend_header_bool { - \exp_args:Nx \__kernel_backend_first_shipout:n + \exp_not:N \exp_args:Ne \__kernel_backend_first_shipout:n { \exp_not:N \@@_backend_separation_init_aux:nnnnnn { \exp_not:N \int_use:N \g_@@_model_int } {#1} {#2} {#3} {#4} {#5} } - \prop_gput:Nxx \exp_not:N \g_@@_backend_colorant_prop + \prop_gput:Nee \exp_not:N \g_@@_backend_colorant_prop { / \exp_not:N \str_convert_pdfname:n {#1} } { << ~ @@ -423,7 +423,7 @@ } } } -\cs_generate_variant:Nn \@@_backend_separation_init:nnnnn { nxx } +\cs_generate_variant:Nn \@@_backend_separation_init:nnnnn { nee } \cs_new_protected:Npn \@@_backend_separation_init_aux:nnnnnn #1#2#3#4#5#6 { \__kernel_backend_literal:e @@ -552,7 +552,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_separation_init_CIELAB:nnn #1#2#3 { - \@@_backend_separation_init:nxxnn + \@@_backend_separation_init:neenn {#2} { /CIEBasedABC ~ @@ -678,7 +678,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select_iccbased:nn #1#2 { - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { <style> @color-profile ~ @@ -712,7 +712,7 @@ % \begin{macrocode} %<*dvipdfmx|xetex> \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2 - { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } + { \__kernel_backend_literal:e { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } %</dvipdfmx|xetex> %<*luatex|pdftex> \cs_new_protected:Npn \@@_backend_select_separation:nn #1#2 @@ -734,7 +734,7 @@ { \cs_if_exist_p:N \pdfmanagement_if_active_p: } { \pdfmanagement_if_active_p: } { - \use:x + \use:e { \pdfmanagement_add:nnn { Page / Resources / ColorSpace } @@ -759,7 +759,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_separation_init:nnnnn #1#2#3#4#5 { - \pdf_object_unnamed_write:nx { dict } + \pdf_object_unnamed_write:ne { dict } { /FunctionType ~ 2 /Domain ~ [0 ~ 1] @@ -767,19 +767,19 @@ /C0 ~ [#4] ~ /C1 ~ [#5] /N ~ 1 } - \exp_args:Nx \@@_backend_separation_init:nn + \exp_args:Ne \@@_backend_separation_init:nn { \str_convert_pdfname:n {#1} } {#2} \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int } } \cs_new_protected:Npn \@@_backend_separation_init:nn #1#2 { - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g_@@_model_int } \pdf_object_write:nnn { color \int_use:N \g_@@_model_int } { array } { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: } } - \prop_gput:Nnx \g_@@_backend_colorant_prop { /#1 } + \prop_gput:Nne \g_@@_backend_colorant_prop { /#1 } { \pdf_object_ref_last: } } % \end{macrocode} @@ -791,7 +791,7 @@ \pdf_object_if_exist:nF { @@_illuminant_CIELAB_ #1 } { \pdf_object_new:n { @@_illuminant_CIELAB_ #1 } - \pdf_object_write:nnx { @@_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nne { @@_illuminant_CIELAB_ #1 } { array } { /Lab ~ << @@ -820,7 +820,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_devicen_init:nnn #1#2#3 { - \pdf_object_unnamed_write:nx { stream } + \pdf_object_unnamed_write:ne { stream } { { /FunctionType ~ 4 ~ @@ -842,7 +842,7 @@ } { {#3} } } - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g_@@_model_int } \pdf_object_write:nnn { color \int_use:N \g_@@_model_int } { array } @@ -875,7 +875,7 @@ \pdf_object_if_exist:nF { @@_icc_ #1 } { \pdf_object_new:n { @@_icc_ #1 } - \pdf_object_write:nnx { @@_icc_ #1 } { fstream } + \pdf_object_write:nne { @@_icc_ #1 } { fstream } { { /N ~ \exp_not:n { #2 } ~ @@ -884,7 +884,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } } \@@_backend_init_resource:n { color \int_use:N \g_@@_model_int } } @@ -906,7 +906,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { @@_icc_ #1 } } \@@_backend_init_resource:n { Default #2 } } @@ -965,12 +965,12 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_fill_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_protected:Npn \@@_backend_stroke_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_eq:NN \@@_backend_fill_devicen:nn \@@_backend_fill_separation:nn @@ -1171,7 +1171,7 @@ \cs_new_protected:Npn \@@_backend_stroke_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s_@@_stop { - \use:x + \use:e { \@@_backend:nnn { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } @@ -1181,7 +1181,7 @@ } \cs_new_protected:Npn \@@_backend_stroke_gray:n #1 { - \use:x + \use:e { \@@_backend_stroke_gray_aux:n { \fp_eval:n { 100 * (#1) } } @@ -1194,7 +1194,7 @@ \cs_new_protected:Npn \@@_backend_stroke_rgb:w #1 ~ #2 ~ #3 \s_@@_stop { - \use:x + \use:e { \@@_backend:nnn { \fp_eval:n { 100 * (#1) } } @@ -1202,7 +1202,7 @@ { \fp_eval:n { 100 * (#3) } } } } -\cs_new_protected:Npx \@@_backend:nnn #1#2#3 +\cs_new_protected:Npe \@@_backend:nnn #1#2#3 { \__kernel_backend_scope:n { diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index 170f4090cd9..8fa2fda9401 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -66,12 +66,12 @@ %<*dvips> % \end{macrocode} % -% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:x} +% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:e} % The same as literal PostScript: same arguments about positioning apply % her. % \begin{macrocode} \cs_new_eq:NN \@@_backend_literal:n \__kernel_backend_literal_postscript:n -\cs_generate_variant:Nn \@@_backend_literal:n { x } +\cs_generate_variant:Nn \@@_backend_literal:n { e } % \end{macrocode} % \end{macro} % @@ -125,7 +125,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_moveto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ moveto @@ -133,7 +133,7 @@ } \cs_new_protected:Npn \@@_backend_lineto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ lineto @@ -141,7 +141,7 @@ } \cs_new_protected:Npn \@@_backend_rectangle:nnnn #1#2#3#4 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ @@ -150,7 +150,7 @@ } \cs_new_protected:Npn \@@_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -205,7 +205,7 @@ \@@_backend_literal:n { grestore } \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -221,14 +221,14 @@ } \cs_new_protected:Npn \@@_backend_fill: { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } fill } \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -239,7 +239,7 @@ } \cs_new_protected:Npn \@@_backend_fillstroke: { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } fill @@ -250,7 +250,7 @@ \@@_backend_literal:n { grestore } \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -266,7 +266,7 @@ { \bool_if:NT \g_@@_draw_clip_bool { - \@@_backend_literal:x + \@@_backend_literal:e { \bool_if:NT \g_@@_draw_eor_bool { eo } clip @@ -293,7 +293,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_dash_pattern:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { [ \exp_args:Nf \use:n @@ -306,7 +306,7 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \@@_backend_linewidth:n #1 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 @@ -400,11 +400,11 @@ % % \subsubsection{Drawing} % -% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:x} +% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:e} % Pass data through using a dedicated interface. % \begin{macrocode} \cs_new_eq:NN \@@_backend_literal:n \__kernel_backend_literal_pdf:n -\cs_generate_variant:Nn \@@_backend_literal:n { x } +\cs_generate_variant:Nn \@@_backend_literal:n { e } % \end{macrocode} % \end{macro} % @@ -434,17 +434,17 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_moveto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m } } \cs_new_protected:Npn \@@_backend_lineto:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l } } \cs_new_protected:Npn \@@_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -454,7 +454,7 @@ } \cs_new_protected:Npn \@@_backend_rectangle:nnnn #1#2#3#4 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -500,17 +500,17 @@ { \@@_backend_literal:n { s } } \cs_new_protected:Npn \@@_backend_fill: { - \@@_backend_literal:x + \@@_backend_literal:e { f \bool_if:NT \g_@@_draw_eor_bool * } } \cs_new_protected:Npn \@@_backend_fillstroke: { - \@@_backend_literal:x + \@@_backend_literal:e { B \bool_if:NT \g_@@_draw_eor_bool * } } \cs_new_protected:Npn \@@_backend_clip: { - \@@_backend_literal:x + \@@_backend_literal:e { W \bool_if:NT \g_@@_draw_eor_bool * } } \cs_new_protected:Npn \@@_backend_discardpath: @@ -532,7 +532,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_dash_pattern:nn #1#2 { - \@@_backend_literal:x + \@@_backend_literal:e { [ \exp_args:Nf \use:n @@ -545,11 +545,11 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \@@_backend_linewidth:n #1 { - \@@_backend_literal:x + \@@_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \@@_backend_literal:x { #1 ~ M } } + { \@@_backend_literal:e { #1 ~ M } } \cs_new_protected:Npn \@@_backend_cap_butt: { \@@_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \@@_backend_cap_round: @@ -594,20 +594,20 @@ %<*dvipdfmx|xetex> \cs_new_protected:Npn \@@_backend_cm_aux:nnnn #1#2#3#4 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#1} = \c_zero_fp { 0 } { \fp_eval:n { round ( -#1 , 5 ) } } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ \fp_eval:n { round ( #3 , 5 ) } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#4} = \c_zero_fp @@ -678,7 +678,7 @@ %<*dvipdfmx|xetex> \cs_new_protected:Npn \@@_backend_cm_decompose:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_cm_decompose_auxi:nnnnN { \fp_eval:n { (#1 + #4) / 2 } } @@ -690,7 +690,7 @@ } \cs_new_protected:Npn \@@_backend_cm_decompose_auxi:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_cm_decompose_auxii:nnnnN { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } @@ -702,7 +702,7 @@ } \cs_new_protected:Npn \@@_backend_cm_decompose_auxii:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_cm_decompose_auxiii:nnnnN { \fp_eval:n { ( #4 - #3 ) / 2 } } @@ -760,11 +760,11 @@ %<*dvisvgm> % \end{macrocode} % -% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:x} +% \begin{macro}{\@@_backend_literal:n, \@@_backend_literal:e} % The same as the more general literal call. % \begin{macrocode} \cs_new_eq:NN \@@_backend_literal:n \__kernel_backend_literal_svg:n -\cs_generate_variant:Nn \@@_backend_literal:n { x } +\cs_generate_variant:Nn \@@_backend_literal:n { e } % \end{macrocode} % \end{macro} % @@ -834,7 +834,7 @@ } \cs_new_protected:Npn \@@_backend_add_to_path:n #1 { - \tl_gset:Nx \g_@@_backend_path_tl + \tl_gset:Ne \g_@@_backend_path_tl { \g_@@_backend_path_tl \tl_if_empty:NF \g_@@_backend_path_tl { \c_space_tl } @@ -885,7 +885,7 @@ \bool_if:NTF \g_@@_draw_clip_bool { \int_gincr:N \g__kernel_clip_path_int - \@@_backend_literal:x + \@@_backend_literal:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } @@ -897,14 +897,14 @@ #1 /> } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" } } { - \@@_backend_literal:x + \@@_backend_literal:e { <path ~ d=" \g_@@_backend_path_tl " ~ #1 /> } } \tl_gclear:N \g_@@_backend_path_tl @@ -930,14 +930,14 @@ \bool_if:NT \g_@@_draw_clip_bool { \int_gincr:N \g__kernel_clip_path_int - \@@_backend_literal:x + \@@_backend_literal:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } <path~d=" \g_@@_backend_path_tl "/> { ?nl } < /clipPath > } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" @@ -968,7 +968,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_dash_pattern:nn #1#2 { - \use:x + \use:e { \@@_backend_dash_aux:nn { \clist_map_function:nN {#1} \@@_backend_dash:n } @@ -979,7 +979,7 @@ { , \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \@@_backend_dash_aux:nn #1#2 { - \__kernel_backend_scope:x + \__kernel_backend_scope:e { stroke-dasharray = " @@ -991,9 +991,9 @@ } } \cs_new_protected:Npn \@@_backend_linewidth:n #1 - { \__kernel_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } + { \__kernel_backend_scope:e { stroke-width=" \dim_to_decimal:n {#1} " } } \cs_new_protected:Npn \@@_backend_miterlimit:n #1 - { \__kernel_backend_scope:x { stroke-miterlimit=" #1 " } } + { \__kernel_backend_scope:e { stroke-miterlimit=" #1 " } } \cs_new_protected:Npn \@@_backend_cap_butt: { \__kernel_backend_scope:n { stroke-linecap="butt" } } \cs_new_protected:Npn \@@_backend_cap_round: diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index da7dc7516e8..610785e348c 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -107,7 +107,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_include_eps:n #1 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { PSfile = #1 \c_space_tl llx = \dim_to_decimal_in_bp:n \l_@@_llx_dim \c_space_tl @@ -185,7 +185,7 @@ { \int_zero:N \l_@@_page_int \tl_clear:N \l_@@_pagebox_tl - \tl_set:Nx \l_@@_attr_tl + \tl_set:Ne \l_@@_attr_tl { \tl_if_empty:NF \l_@@_decodearray_str { :D \l_@@_decodearray_str } @@ -202,7 +202,7 @@ { \tl_clear:N \l_@@_decodearray_str \bool_set_false:N \l_@@_interpolate_bool - \tl_set:Nx \l_@@_attr_tl + \tl_set:Ne \l_@@_attr_tl { : \l_@@_pagebox_tl \int_compare:nNnT \l_@@_page_int > 1 @@ -214,7 +214,7 @@ } \cs_new_protected:Npn \@@_backend_getbb_auxi:n #1 { - \@@_bb_restore:xF { #1 \l_@@_attr_tl } + \@@_bb_restore:eF { #1 \l_@@_attr_tl } { \@@_backend_getbb_auxii:n {#1} } } % \end{macrocode} @@ -230,7 +230,7 @@ { \@@_backend_dequote:w #1 " #1 " \s_@@_stop } \int_const:cn { c_@@_ #1 \l_@@_attr_tl _int } { \tex_the:D \tex_pdflastximage:D } - \@@_bb_save:x { #1 \l_@@_attr_tl } + \@@_bb_save:e { #1 \l_@@_attr_tl } } \cs_new_protected:Npn \@@_backend_getbb_auxiii:n #1 { @@ -310,7 +310,7 @@ \l_@@_backend_dir_str \l_@@_backend_name_str \l_@@_backend_ext_str - \exp_args:Nx \@@_backend_getbb_eps:nn + \exp_args:Ne \@@_backend_getbb_eps:nn { \exp_args:Ne \__kernel_file_name_quote:n { @@ -336,7 +336,7 @@ { \file_parse_full_name:nNNN {#1} \l_@@_backend_dir_str \l_@@_backend_name_str \l_@@_backend_ext_str - \exp_args:Nx \@@_backend_include_pdf:n + \exp_args:Ne \@@_backend_include_pdf:n { \exp_args:Ne \__kernel_file_name_quote:n { @@ -436,7 +436,7 @@ % \@@_backend_include_bmp:n , % } % \begin{macro}{\@@_backend_include_auxi:nn} -% \begin{macro}{\@@_backend_include_auxii:nnn, \@@_backend_include_auxii:xnn} +% \begin{macro}{\@@_backend_include_auxii:nnn, \@@_backend_include_auxii:enn} % \begin{macro}{\@@_backend_include_auxiii:nnn} % The special syntax depends on the file type. There is a difference in % how PDF graphics are best handled between |dvipdfmx| and \XeTeX{}: for @@ -445,7 +445,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_include_eps:n #1 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { PSfile = #1 \c_space_tl llx = \dim_to_decimal_in_bp:n \l_@@_llx_dim \c_space_tl @@ -472,7 +472,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_include_auxi:nn #1#2 { - \@@_backend_include_auxii:xnn + \@@_backend_include_auxii:enn { \tl_if_empty:NF \l_@@_pagebox_tl { : \l_@@_pagebox_tl } @@ -489,12 +489,12 @@ { \int_if_exist:cTF { c_@@_ #2#1 _int } { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:usexobj~@graphic \int_use:c { c_@@_ #2#1 _int } } } { \@@_backend_include_auxiii:nnn {#2} {#1} {#3} } } -\cs_generate_variant:Nn \@@_backend_include_auxii:nnn { x } +\cs_generate_variant:Nn \@@_backend_include_auxii:nnn { e } % \end{macrocode} % Inclusion using the specials is relatively straight-forward, but there % is one wrinkle. To get the |pagebox| correct for PDF graphics in all cases, @@ -505,7 +505,7 @@ { \int_gincr:N \g_@@_track_int \int_const:cn { c_@@_ #1#2 _int } { \g_@@_track_int } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:#3~ @graphic \int_use:c { c_@@_ #1#2 _int } ~ @@ -612,7 +612,7 @@ } \cs_new_protected:Npn \@@_backend_getbb_auxiv:nnNnn #1#2#3#4#5 { - \use:x + \use:e { \@@_backend_getbb_auxv:nNnn {#2} #3 { : #1 #4 } { @@ -750,10 +750,10 @@ } \cs_new_protected:Npn \@@_backend_getbb_svg_auxi:nNn #1#2#3 { - \use:x + \use:e { \cs_set_protected:Npn \@@_backend_getbb_svg_auxii:w - ####1 \tl_to_str:n {#1} = ####2 \tl_to_str:n {#1} = ####3 + ##1 \tl_to_str:n {#1} = ##2 \tl_to_str:n {#1} = ##3 \s_@@_stop } { @@ -772,7 +772,7 @@ ##2 \s_@@_stop } } - \use:x + \use:e { \@@_backend_getbb_svg_auxii:w #3 \tl_to_str:n {#1} = \tl_to_str:n {#1} = @@ -855,7 +855,7 @@ { \@@_backend_include:nn { pdffile } {#1} } \cs_new_protected:Npn \@@_backend_include:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { #1 = #2 \c_space_tl llx = \dim_to_decimal_in_bp:n \l_@@_llx_dim \c_space_tl @@ -892,7 +892,7 @@ { \hbox:n { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { dvisvgm:img~ \dim_to_decimal:n { \l_@@_urx_dim } ~ diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index 0cb6767908f..5bd4bb4808e 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx index 033ab150f0b..9b994ac16e2 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -73,7 +73,7 @@ % % \begin{macro}{\@@_backend_select:n,\@@_backend_select_aux:n} % \begin{macro}{\@@_backend_fill:n, \@@_backend_stroke:n} -% \begin{macro}{\@@_backend:nnn, \@@_backend:xnn} +% \begin{macro}{\@@_backend:nnn, \@@_backend:enn} % No stack so set values directly. The need to deal with Distiller and % Ghostscript separately means we use a common auxiliary: the two % systems require different PostScript for transparency. This is @@ -83,7 +83,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select:n #1 { - \exp_args:Nx \@@_backend_select_aux:n + \exp_args:Ne \@@_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \@@_backend_select_aux:n #1 @@ -93,14 +93,14 @@ } \cs_new_protected:Npn \@@_backend_fill:n #1 { - \@@_backend:xnn + \@@_backend:enn { \fp_eval:n { min(max(0,#1),1) } } { fill } { ca } } \cs_new_protected:Npn \@@_backend_stroke:n #1 { - \@@_backend:xnn + \@@_backend:enn { \fp_eval:n { min(max(0,#1),1) } } { stroke } { CA } @@ -124,7 +124,7 @@ ifelse } } -\cs_generate_variant:Nn \@@_backend:nnn { x } +\cs_generate_variant:Nn \@@_backend:nnn { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -170,7 +170,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_select:n #1 { - \exp_args:Nx \@@_backend_select_aux:n + \exp_args:Ne \@@_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \@@_backend_select_aux:n #1 @@ -210,19 +210,19 @@ % \end{macro} % % \begin{macro}{\@@_backend_fill:n, \@@_backend_stroke:n} -% \begin{macro}{\@@_backend_fillstroke:nn, \@@_backend_fillstroke:xx} +% \begin{macro}{\@@_backend_fillstroke:nn, \@@_backend_fillstroke:ee} % For separate fill and stroke, we need to work out if we need to do % more work or if we can stick to a single setting. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_fill:n #1 { - \@@_backend_fill_stroke:xx + \@@_backend_fill_stroke:ee { \fp_eval:n { min(max(0,#1),1) } } \l_@@_backend_stroke_tl } \cs_new_protected:Npn \@@_backend_stroke:n #1 { - \@@_backend_fill_stroke:xx + \@@_backend_fill_stroke:ee \l_@@_backend_fill_tl { \fp_eval:n { min(max(0,#1),1) } } } @@ -249,7 +249,7 @@ \group_insert_after:N \@@_backend_reset: } } -\cs_generate_variant:Nn \@@_backend_fill_stroke:nn { xx } +\cs_generate_variant:Nn \@@_backend_fill_stroke:nn { ee } % \end{macrocode} % \end{macro} % \end{macro} @@ -274,7 +274,7 @@ \cs_new_protected:Npn \@@_backend_stroke:n #1 { \@@_backend:nn { {#1} } { stroke- } } \cs_new_protected:Npn \@@_backend:nn #1#2 - { \__kernel_backend_scope:x { #2 opacity = " \fp_eval:n { min(max(0,#1),1) } " } } + { \__kernel_backend_scope:e { #2 opacity = " \fp_eval:n { min(max(0,#1),1) } " } } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index a95aff4070b..8d942551bb0 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-04-19} +% \date{Released 2023-10-10} % % \maketitle % @@ -91,12 +91,12 @@ %<*dvips> % \end{macrocode} % -% \begin{macro}{\@@_backend_pdfmark:n, \@@_backend_pdfmark:x} +% \begin{macro}{\@@_backend_pdfmark:n, \@@_backend_pdfmark:e} % Used often enough it should be a separate function. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_pdfmark:n #1 { \__kernel_backend_postscript:n { mark #1 ~ pdfmark } } -\cs_generate_variant:Nn \@@_backend_pdfmark:n { x } +\cs_generate_variant:Nn \@@_backend_pdfmark:n { e } % \end{macrocode} % \end{macro} % @@ -138,7 +138,7 @@ % % \begin{macro} % { -% \@@_backend_object_write:nnn, \@@_backend_object_write:nnx, +% \@@_backend_object_write:nnn, \@@_backend_object_write:nne, % \@@_backend_object_write_aux:nnn % } % \begin{macro} @@ -159,10 +159,10 @@ { \@@_backend_object_ref:n {#1} } {#2} {#3} } -\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \@@_backend_object_write:nnn { nne } \cs_new_protected:Npn \@@_backend_object_write_aux:nnn #1#2#3 { - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { /_objdef ~ #1 /type @@ -179,17 +179,17 @@ } \cs_new_protected:Npn \@@_backend_object_write_array:nn #1#2 { - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { #1 ~0~ [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL } } \cs_new_protected:Npn \@@_backend_object_write_dict:nn #1#2 { - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { #1 << \exp_not:n {#2} >> /PUT } } \cs_new_protected:Npn \@@_backend_object_write_fstream:nn #1#2 { - \exp_args:Nx + \exp_args:Ne \@@_backend_object_write_fstream:nnn {#1} #2 } \cs_new_protected:Npn \@@_backend_object_write_fstream:nnn #1#2#3 @@ -204,7 +204,7 @@ } \cs_new_protected:Npn \@@_backend_object_write_stream:nn #1#2 { - \exp_args:Nx + \exp_args:Ne \@@_backend_object_write_stream:nnn {#1} #2 } \cs_new_protected:Npn \@@_backend_object_write_stream:nnn #1#2#3 @@ -220,7 +220,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:ne} % No anonymous objects, so things are done manually. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 @@ -230,7 +230,7 @@ { { pdf.obj \int_use:N \g_@@_backend_object_int } } {#1} {#2} } -\cs_generate_variant:Nn \@@_backend_object_now:nn { nx } +\cs_generate_variant:Nn \@@_backend_object_now:nn { ne } % \end{macrocode} % \end{macro} % @@ -304,7 +304,7 @@ } \int_gincr:N \g_@@_backend_object_int \int_gset_eq:NN \g_@@_backend_annotation_int \g_@@_backend_object_int - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { /_objdef { pdf.obj \int_use:N \g_@@_backend_object_int } pdf.rect @@ -468,7 +468,7 @@ \hbox_set_end: \@@_backend_link_minima: \hbox_set:Nn \l_@@_backend_model_box { Gg } - \exp_args:Nx \@@_backend_link_outerbox:n + \exp_args:Ne \@@_backend_link_outerbox:n { \int_if_odd:nTF { \value { page } } { \oddsidemargin } @@ -486,7 +486,7 @@ } \int_gincr:N \g_@@_backend_object_int \int_gset_eq:NN \g_@@_backend_link_int \g_@@_backend_object_int - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { mark /_objdef { pdf.obj \int_use:N \g_@@_backend_link_int } @@ -500,7 +500,7 @@ \cs_new_protected:Npn \@@_backend_link_minima: { \hbox_set:Nn \l_@@_backend_model_box { Gg } - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.linkdp.pad ~ \dim_to_decimal:n @@ -528,7 +528,7 @@ } \cs_new_protected:Npn \@@_backend_link_outerbox:n #1 { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.outerbox [ @@ -583,9 +583,9 @@ { \tl_put_right:Nn \@makecol@hook { - \box_if_empty:NF \@cclv + \box_if_empty:NF \l_shipout_box { - \vbox_set:Nn \@cclv + \vbox_set:Nn \l_shipout_box { \__kernel_backend_postscript:n { @@ -593,7 +593,7 @@ { pdf.bordertracking.continue } if } - \vbox_unpack_drop:N \@cclv + \vbox_unpack_drop:N \l_shipout_box \__kernel_backend_postscript:n { pdf.bordertracking.endpage } } @@ -620,7 +620,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_link_margin:n #1 { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.linkmargin { \dim_to_decimal:n {#1} ~ pdf.pt.dvi } def } @@ -638,7 +638,7 @@ \cs_new_protected:Npn \@@_backend_destination:nn #1#2 { \__kernel_backend_postscript:n { pdf.dest.anchor } - \@@_backend_pdfmark:x + \@@_backend_pdfmark:e { /View [ @@ -737,11 +737,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_version_major_gset:n #1 { - \cs_gset:Npx \@@_backend_version_major: { \int_eval:n {#1} } + \cs_gset:Npe \@@_backend_version_major: { \int_eval:n {#1} } } \cs_new_protected:Npn \@@_backend_version_minor_gset:n #1 { - \cs_gset:Npx \@@_backend_version_minor: { \int_eval:n {#1} } + \cs_gset:Npe \@@_backend_version_minor: { \int_eval:n {#1} } } % \end{macrocode} % \end{macro} @@ -805,7 +805,7 @@ % space in the \LuaTeX{} version is \emph{required} as it is consumed in % finding the end of the keyword. % \begin{macrocode} -\cs_new:Npx \@@_backend_annotation_last: +\cs_new:Npe \@@_backend_annotation_last: { \exp_not:N \int_value:w %<*luatex> @@ -857,7 +857,7 @@ % \begin{macro}{\@@_backend_link_last:} % Formatted for direct use. % \begin{macrocode} -\cs_new:Npx \@@_backend_link_last: +\cs_new:Npe \@@_backend_link_last: { \exp_not:N \int_value:w %<*luatex> @@ -1000,7 +1000,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nnx} +% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nne} % \begin{macro}[EXP]{\@@_backend_object_write:nn} % \begin{macro}[EXP]{\@@_exp_not_i:nn, \@@_exp_not_ii:nn} % Writing the data needs a little information about the structure of the @@ -1037,7 +1037,7 @@ } } } -\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \@@_backend_object_write:nnn { nne } \cs_new:Npn \@@_exp_not_i:nn #1#2 { \exp_not:n {#1} } \cs_new:Npn \@@_exp_not_ii:nn #1#2 { \exp_not:n {#2} } % \end{macrocode} @@ -1045,7 +1045,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:ne} % Much like writing, but direct creation. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 @@ -1058,14 +1058,14 @@ %</pdftex> \@@_backend_object_write:nn {#1} {#2} } -\cs_generate_variant:Nn \@@_backend_object_now:nn { nx } +\cs_generate_variant:Nn \@@_backend_object_now:nn { ne } % \end{macrocode} % \end{macro} % % \begin{macro}[EXP]{\@@_backend_object_last:} % Much like annotation. % \begin{macrocode} -\cs_new:Npx \@@_backend_object_last: +\cs_new:Npe \@@_backend_object_last: { \exp_not:N \int_value:w %<*luatex> @@ -1082,7 +1082,7 @@ % \begin{macro}[EXP]{\@@_backend_pageobject_ref:n} % The usual wrapper situation; the three spaces here are essential. % \begin{macrocode} -\cs_new:Npx \@@_backend_pageobject_ref:n #1 +\cs_new:Npe \@@_backend_pageobject_ref:n #1 { \exp_not:N \int_value:w %<*luatex> @@ -1141,7 +1141,7 @@ % The availability of the primitive is not universal, so we have to test % at load time. % \begin{macrocode} -\cs_new_protected:Npx \@@_backend_version_major_gset:n #1 +\cs_new_protected:Npe \@@_backend_version_major_gset:n #1 { %<*luatex> \int_compare:nNnT \tex_luatexversion:D > { 106 } @@ -1175,7 +1175,7 @@ % \begin{macro}[EXP]{\@@_backend_version_major:, \@@_backend_version_minor:} % As above. % \begin{macrocode} -\cs_new:Npx \@@_backend_version_major: +\cs_new:Npe \@@_backend_version_major: { %<*luatex> \int_compare:nNnTF \tex_luatexversion:D > { 106 } @@ -1226,12 +1226,12 @@ %<*dvipdfmx|xetex> % \end{macrocode} % -% \begin{macro}{\@@_backend:n, \@@_backend:x} +% \begin{macro}{\@@_backend:n, \@@_backend:e} % A generic function for the backend PDF specials: used where we can. % \begin{macrocode} -\cs_new_protected:Npx \@@_backend:n #1 +\cs_new_protected:Npe \@@_backend:n #1 { \__kernel_backend_literal:n { pdf: #1 } } -\cs_generate_variant:Nn \@@_backend:n { x } +\cs_generate_variant:Nn \@@_backend:n { e } % \end{macrocode} % \end{macro} % @@ -1274,7 +1274,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nnx} +% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nne} % \begin{macro} % { % \@@_backend_object_write_array:nn , @@ -1290,15 +1290,15 @@ \use:c { @@_backend_object_write_ #2 :nn } { \@@_backend_object_ref:n {#1} } {#3} } -\cs_generate_variant:Nn \@@_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \@@_backend_object_write:nnn { nne } \cs_new_protected:Npn \@@_backend_object_write_array:nn #1#2 { - \@@_backend:x + \@@_backend:e { obj ~ #1 ~ [ ~ \exp_not:n {#2} ~ ] } } \cs_new_protected:Npn \@@_backend_object_write_dict:nn #1#2 { - \@@_backend:x + \@@_backend:e { obj ~ #1 ~ << ~ \exp_not:n {#2} ~ >> } } \cs_new_protected:Npn \@@_backend_object_write_fstream:nn #1#2 @@ -1307,7 +1307,7 @@ { \@@_backend_object_write_stream:nnnn { } {#1} #2 } \cs_new_protected:Npn \@@_backend_object_write_stream:nnnn #1#2#3#4 { - \@@_backend:x + \@@_backend:e { #1 stream ~ #2 ~ ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >> @@ -1318,18 +1318,18 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_now:nn, \@@_backend_object_now:ne} % No anonymous objects with \texttt{dvipdfmx} so we have to give an % object name. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 { \int_gincr:N \g_@@_backend_object_int - \exp_args:Nnx \use:c { @@_backend_object_write_ #1 :nn } + \exp_args:Nne \use:c { @@_backend_object_write_ #1 :nn } { @pdf.obj \int_use:N \g_@@_backend_object_int } {#2} } -\cs_generate_variant:Nn \@@_backend_object_now:nn { nx } +\cs_generate_variant:Nn \@@_backend_object_now:nn { ne } % \end{macrocode} % \end{macro} % @@ -1364,7 +1364,7 @@ { \int_gincr:N \g_@@_backend_object_int \int_gset_eq:NN \g_@@_backend_annotation_int \g_@@_backend_object_int - \@@_backend:x + \@@_backend:e { ann ~ @pdf.obj \int_use:N \g_@@_backend_object_int \c_space_tl width ~ \dim_eval:n {#1} ~ @@ -1400,10 +1400,10 @@ { \@@_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } \cs_new_protected:Npn \@@_backend_link_begin_user:nnw #1#2 { \@@_backend_link_begin:n {#1#2} } -\cs_new_protected:Npx \@@_backend_link_begin:n #1 +\cs_new_protected:Npe \@@_backend_link_begin:n #1 { \exp_not:N \int_gincr:N \exp_not:N \g_@@_backend_link_int - \@@_backend:x + \@@_backend:e { bann ~ @pdf.lnk @@ -1435,7 +1435,7 @@ % Pass to \texttt{dvipdfmx}. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_link_margin:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~g~ \dim_eval:n {#1} } } % \end{macrocode} % \end{macro} % @@ -1449,7 +1449,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_destination:nn #1#2 { - \@@_backend:x + \@@_backend:e { dest ~ ( \exp_not:n {#1} ) [ @@ -1518,7 +1518,7 @@ % Pass data to the backend: these are a one-shot. % \begin{macrocode} \cs_new_protected:Npn \@@_backend_compresslevel:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~z~ \int_eval:n {#1} } } \cs_new_protected:Npn \@@_backend_compress_objects:n #1 { \bool_if:nF {#1} @@ -1534,13 +1534,13 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_backend_version_major_gset:n #1 { - \cs_gset:Npx \@@_backend_version_major: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:majorversion~ \@@_backend_version_major: } + \cs_gset:Npe \@@_backend_version_major: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:majorversion~ \@@_backend_version_major: } } \cs_new_protected:Npn \@@_backend_version_minor_gset:n #1 { - \cs_gset:Npx \@@_backend_version_minor: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:minorversion~ \@@_backend_version_minor: } + \cs_gset:Npe \@@_backend_version_minor: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:minorversion~ \@@_backend_version_minor: } } % \end{macrocode} % \end{macro} @@ -1608,7 +1608,7 @@ % % \begin{macro}{\@@_backend_link_last:} % \begin{macrocode} -\cs_new:Npx \@@_backend_link_last: { } +\cs_new:Npe \@@_backend_link_last: { } % \end{macrocode} % \end{macro} % @@ -1642,8 +1642,8 @@ % % \begin{macro}{\@@_backend_object_new:n} % \begin{macro}[EXP]{\@@_backend_object_ref:n} -% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:nx} -% \begin{macro}{\@@_backend_object_now:nn, , \@@_backend_object_now:nx} +% \begin{macro}{\@@_backend_object_write:nnn, \@@_backend_object_write:ne} +% \begin{macro}{\@@_backend_object_now:nn, , \@@_backend_object_now:ne} % \begin{macro}{\@@_backend_object_last:} % \begin{macro}[EXP]{\@@_backend_pageobject_ref:n} % All no-ops here. @@ -1651,9 +1651,9 @@ \cs_new_protected:Npn \@@_backend_object_new:nn #1 { } \cs_new:Npn \@@_backend_object_ref:n #1 { } \cs_new_protected:Npn \@@_backend_object_write:nnn #1#2#3 { } -\cs_new_protected:Npn \@@_backend_object_write:nnx #1#2#3 { } +\cs_new_protected:Npn \@@_backend_object_write:nne #1#2#3 { } \cs_new_protected:Npn \@@_backend_object_now:nn #1#2 { } -\cs_new_protected:Npn \@@_backend_object_now:nx #1#2 { } +\cs_new_protected:Npn \@@_backend_object_now:ne #1#2 { } \cs_new:Npn \@@_backend_object_last: { } \cs_new:Npn \@@_backend_pageobject_ref:n #1 { } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx index c02099765d1..cd41c2103ee 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3benchmark/l3benchmark.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -122,7 +122,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3benchmark}{2023-05-11}{} +\ProvidesExplPackage{l3benchmark}{2023-10-10}{} {L3 Experimental benchmarking} % \end{macrocode} % @@ -225,13 +225,13 @@ } \cs_new_protected:Npn \@@_raw_replicate_large:nnN #1#2 { - \cs_set:Npx \@@_tmp:w ##1 { \prg_replicate:nn { 5000 } {##1} } + \cs_set:Npe \@@_tmp:w ##1 { \prg_replicate:nn { 5000 } {##1} } \exp_args:Nno \@@_raw_replicate:nnN { #1 / 5000 } { \@@_tmp:w {#2} } } \cs_new_protected:Npn \@@_raw_replicate_small:nnN #1#2 { - \cs_set:Npx \@@_tmp:w ##1##2 { \prg_replicate:nn {#1} {##1} } + \cs_set:Npe \@@_tmp:w ##1##2 { \prg_replicate:nn {#1} {##1} } \@@_raw:nN { \@@_tmp:w {#2} { } } \g_@@_time_int \exp_args:No \@@_raw_replicate_aux:nnN { \int_use:N \g_@@_time_int } {#2} @@ -439,7 +439,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_display: { - \iow_term:x + \iow_term:e { \@@_fp_to_tl:N \g_benchmark_time_fp \c_space_tl seconds \c_space_tl ( \@@_fp_to_tl:N \g_benchmark_ops_fp \c_space_tl ops) @@ -474,7 +474,7 @@ % \begin{macrocode} \cs_new_protected:Npn \benchmark_tic: { - \iow_term:x { \@@_tictoc_prefix: TIC } + \iow_term:e { \@@_tictoc_prefix: TIC } \exp_args:NNf \seq_gput_right:Nn \g_@@_tictoc_seq { \sys_timer: } \int_gincr:N \g_@@_tictoc_int } @@ -494,7 +494,7 @@ \int_gdecr:N \g_@@_tictoc_int \fp_gset:Nn \g_benchmark_time_fp { ( \sys_timer: - \l_@@_tictoc_pop_tl ) / 65536 } - \iow_term:x + \iow_term:e { \@@_tictoc_prefix: TOC: \c_space_tl diff --git a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx index c15e0288e23..6d342b09552 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3bitset/l3bitset.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % \begin{documentation} @@ -264,7 +264,7 @@ %<@@=bitset> % \end{macrocode} % \begin{macrocode} -\ProvidesExplPackage{l3bitset}{2023-05-11}{} +\ProvidesExplPackage{l3bitset}{2023-10-10}{} {L3 Experimental bitset support} % \end{macrocode} % A bitset is a string variable. @@ -337,13 +337,13 @@ % then inserting an $1$. It is not checked if the value was already $1$. % \begin{macrocode} \cs_new_protected:Npn \@@_set_true:Nn #1#2 - { \@@_set:NNnN \str_set:Nx #1 {#2} 1 } + { \@@_set:NNnN \str_set:Ne #1 {#2} 1 } \cs_new_protected:Npn \@@_gset_true:Nn #1#2 - { \@@_set:NNnN \str_gset:Nx #1 {#2} 1 } + { \@@_set:NNnN \str_gset:Ne #1 {#2} 1 } \cs_new_protected:Npn \@@_set_false:Nn #1#2 - { \@@_set:NNnN \str_set:Nx #1 {#2} 0 } + { \@@_set:NNnN \str_set:Ne #1 {#2} 0 } \cs_new_protected:Npn \@@_gset_false:Nn #1#2 - { \@@_set:NNnN \str_gset:Nx #1 {#2} 0 } + { \@@_set:NNnN \str_gset:Ne #1 {#2} 0 } \cs_new_protected:Npn \@@_set:NNnN #1#2#3#4 { \int_compare:nNnT {#3} > { 0 } @@ -434,7 +434,7 @@ \prop_gput:cnn { g_@@_ \cs_to_str:N #2 _name_prop } {#3} {#3} } { - \msg_warning:nnxx { bitset } { unknown-name } + \msg_warning:nnee { bitset } { unknown-name } { \token_to_str:N #2 } { \tl_to_str:n {#3} } } @@ -531,11 +531,11 @@ % \bitset_log:N, \bitset_log:c % } % \begin{macrocode} -\cs_new_protected:Npn \bitset_show:N { \@@_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \bitset_show:N { \@@_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \bitset_show:N { c } -\cs_new_protected:Npn \bitset_log:N { \@@_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \bitset_log:N { \@@_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \bitset_log:N { c } -\cs_new_protected:Npn \bitset_show_named_index:N { \@@_show_named_index:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \bitset_show_named_index:N { \@@_show_named_index:NN \msg_show:nneeee } \cs_generate_variant:Nn \bitset_show_named_index:N { c } \cs_new_protected:Npn \@@_show:NN #1#2 { diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx index d8704e45455..b48aa9d9951 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-boxes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -102,7 +102,7 @@ \group_begin: \hbox_set:Nn \l_@@_tmp_box { - \use:x + \use:e { \@@_backend_box_use:Nnnnn #1 { \fp_use:N \l_@@_matrix_a_fp } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx index 0303081b15b..e85f370c347 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-layers.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx index 702ef922f9c..41e866e5639 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-paths.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -346,7 +346,7 @@ { \fp_set:Nn \l_@@_path_tmpa_fp { \c_@@_path_curveto_b_fp * #1 } \fp_set:Nn \l_@@_path_tmpb_fp { \c_@@_path_curveto_b_fp * #2 } - \use:x + \use:e { \@@_path_mark_corner: \@@_path_curveto:nnnnnn @@ -409,7 +409,7 @@ { \draw_path_arc:nnnn {#1} {#2} {#3} {#3} } \cs_new_protected:Npn \draw_path_arc:nnnn #1#2#3#4 { - \use:x + \use:e { \@@_path_arc:nnnn { \fp_eval:n {#1} } @@ -464,7 +464,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_path_arc_auxi:nnnnNnn #1#2#3#4#5#6#7 { - \use:x + \use:e { \@@_path_arc_auxii:nnnNnnnn {#1} {#2} {#4} #5 {#6} {#7} @@ -564,7 +564,7 @@ } \cs_new_protected:Npn \@@_path_arc_aux_add:nn #1#2 { - \tl_put_right:Nx \l_@@_path_tmp_tl + \tl_put_right:Ne \l_@@_path_tmp_tl { { \fp_to_dim:n {#1} } { \fp_to_dim:n {#2} } } } \fp_new:N \l_@@_path_arc_delta_fp @@ -624,7 +624,7 @@ } \cs_new_protected:Npn \@@_path_ellipse:nnnnnn #1#2#3#4#5#6 { - \use:x + \use:e { \@@_path_moveto:nn { \fp_to_dim:n { #1 + #3 } } { \fp_to_dim:n { #2 + #4 } } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx index e858b98f108..044f01a374a 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-points.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx index 75b5238b38a..4017e46f178 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-scopes.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -247,7 +247,7 @@ { \bool_if:NTF \l_@@_baseline_bool { - \use:x + \use:e { \exp_not:n {#1} \@@_finalise_baseline:n { \dim_use:N \l_@@_baseline_dim } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx index 867164c026a..44524fb17bb 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-softpath.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -96,11 +96,11 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}{\@@_softpath_add:n, \@@_softpath_add:o, \@@_softpath_add:x} +% \begin{macro}{\@@_softpath_add:n, \@@_softpath_add:o, \@@_softpath_add:e} % \begin{macrocode} \cs_new_protected:Npn \@@_softpath_add:n { \tl_build_gput_right:Nn \g_@@_softpath_main_tl } -\cs_generate_variant:Nn \@@_softpath_add:n { o, x } +\cs_generate_variant:Nn \@@_softpath_add:n { o, e } % \end{macrocode} % \end{macro} % @@ -150,7 +150,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_softpath_closepath: { - \@@_softpath_add:x + \@@_softpath_add:e { \@@_softpath_close_op:nn { \dim_use:N \g_@@_softpath_lastx_dim } @@ -466,19 +466,19 @@ % corner, in order to work out where the curve we are adding will start % and end. From those, plus the points we already have, we work out where % the control points will lie. All of this is done in an expansion to -% avoid multiple calls to |\tl_put_right:Nx|. The end point of the line +% avoid multiple calls to |\tl_put_right:Ne|. The end point of the line % is worked out up-front and saved: we need that if dealing with a % close-path operation. % \begin{macrocode} \cs_new_protected:Npn \@@_softpath_round_calc:NnnNnn #1#2#3#4#5#6 { - \tl_set:Nx \l_@@_softpath_curve_end_tl + \tl_set:Ne \l_@@_softpath_curve_end_tl { \draw_point_interpolate_distance:nnn \l_@@_softpath_cornerii_dim { #5 , #6 } { #2 , #3 } } - \tl_put_right:Nx \l_@@_softpath_part_tl + \tl_put_right:Ne \l_@@_softpath_part_tl { \exp_not:N #4 \@@_softpath_round_calc:fVnnnn @@ -546,11 +546,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_softpath_round_close:nn #1#2 { - \use:x + \use:e { \@@_softpath_round_calc:NnnNnn { - \tl_set:Nx \exp_not:N \l_@@_softpath_move_tl + \tl_set:Ne \exp_not:N \l_@@_softpath_move_tl { \@@_softpath_moveto_op:nn \exp_not:N \exp_after:wN @@ -558,7 +558,7 @@ \exp_not:N \l_@@_softpath_curve_end_tl \s_@@_stop } - \use:x + \use:e { \exp_not:N \exp_not:N \exp_not:N \use_i:nnnn { diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx index fca6f78389b..e1a67309e22 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-state.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -107,7 +107,7 @@ \seq_set_from_clist:Nn \l_@@_tmp_seq {#1} \seq_set_map:NNn \l_@@_tmp_seq \l_@@_tmp_seq { \fp_to_dim:n {##1} } - \use:x + \use:e { \@@_backend_dash_pattern:nn { \seq_use:Nn \l_@@_tmp_seq { , } } @@ -124,7 +124,7 @@ % Pass through to the driver layer. % \begin{macrocode} \cs_new_protected:Npn \draw_miterlimit:n #1 - { \exp_args:Nx \@@_backend_miterlimit:n { \fp_eval:n {#1} } } + { \exp_args:Ne \@@_backend_miterlimit:n { \fp_eval:n {#1} } } % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx index 901b0b6f84d..35b31395dbd 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw-transforms.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -172,7 +172,7 @@ % \begin{macrocode} \cs_new_protected:Npn \draw_transform_matrix:nnnn #1#2#3#4 { - \use:x + \use:e { \@@_transform:nnnn { \fp_eval:n {#1} } @@ -183,7 +183,7 @@ } \cs_new_protected:Npn \@@_transform:nnnn #1#2#3#4 { - \use:x + \use:e { \draw_transform_matrix_absolute:nnnn { #1 * \l_@@_matrix_a_fp + #2 * \l_@@_matrix_c_fp } @@ -269,7 +269,7 @@ } \cs_new_protected:Npn \@@_transform_triangle:nnnnnn #1#2#3#4#5#6 { - \use:x + \use:e { \draw_transform_matrix_absolute:nnnn { #3 - #1 } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx index 7d4afed84f2..d1e604d42d4 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3draw/l3draw.dtx @@ -110,7 +110,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -1173,7 +1173,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3draw}{2023-05-11}{} +\ProvidesExplPackage{l3draw}{2023-10-10}{} {L3 Experimental core drawing support} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx index 3209e4793cf..0266b711fa0 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3graphics/l3graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -184,7 +184,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3graphics}{2023-05-11}{} +\ProvidesExplPackage{l3graphics}{2023-10-10}{} {L3 Experimental graphics inclusion support} % \end{macrocode} % @@ -236,8 +236,8 @@ pagebox .choices:nn = { art , bleed , crop , media , trim } { - \tl_set:Nx \l_@@_pagebox_tl - { \tl_use:N \l_keys_choice_tl box } + \tl_set:Ne \l_@@_pagebox_tl + { \l_keys_choice_tl box } } , pagebox .initial:n = crop , @@ -267,8 +267,8 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}{\@@_bb_save:n, \@@_bb_save:x} -% \begin{macro}{\@@_bb_restore:nF, \@@_bb_restore:xF} +% \begin{macro}{\@@_bb_save:n, \@@_bb_save:e} +% \begin{macro}{\@@_bb_restore:nF, \@@_bb_restore:eF} % Caching graphic bounding boxes is sensible, and these functions are needed both % here and for drive-specific work. So they are made available as documented % functions. To save on registers, the \enquote{origin} is only saved if it is @@ -287,7 +287,7 @@ \dim_const:cn { c_@@_ #1 _ury_dim } { \l_@@_ury_dim } } } -\cs_generate_variant:Nn \@@_bb_save:n { x } +\cs_generate_variant:Nn \@@_bb_save:n { e } \cs_new_protected:Npn \@@_bb_restore:nF #1#2 { \dim_if_exist:cTF { c_@@_ #1 _urx_dim } @@ -303,7 +303,7 @@ } {#2} } -\cs_generate_variant:Nn \@@_bb_restore:nF { x } +\cs_generate_variant:Nn \@@_bb_restore:nF { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -375,7 +375,7 @@ \@@_bb_restore:nF {#1#2} { \@@_read_bb_auxii:nnnn {#3} {#4} {#1} {#2} } } -\cs_new_protected:Npx \@@_read_bb_auxii:nnnn #1#2#3#4 +\cs_new_protected:Npe \@@_read_bb_auxii:nnnn #1#2#3#4 { #1 \exp_not:N \ior_if_eof:NTF \exp_not:N \l_@@_internal_ior @@ -390,15 +390,15 @@ } \ior_close:N \exp_not:N \l_@@_internal_ior } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \@@_read_bb_auxiii:w - ##1 \c_colon_str ##2 \s_@@_stop + #1 \c_colon_str #2 \s_@@_stop { \exp_not:N \str_if_eq:nnT { \c_percent_str \c_percent_str BoundingBox } - {##1} - { \exp_not:N \@@_read_bb_auxiv:w ##2 ( ) \s_@@_stop } + {#1} + { \exp_not:N \@@_read_bb_auxiv:w #2 ( ) \s_@@_stop } } } % \end{macrocode} @@ -413,7 +413,7 @@ { \str_if_eq:nnF {#2} { atend } { - \tl_set_rescan:Nnx \l_@@_internal_tl + \tl_set_rescan:Nne \l_@@_internal_tl { \char_set_catcode_space:n { 9 } \char_set_catcode_space:n { 32 } @@ -552,7 +552,7 @@ \cs_if_exist:cTF { @@_backend_include_ #1 :n } { \tl_set_eq:NN \l_@@_final_name_str \l_@@_full_name_str - \str_set:Nx \l_@@_full_name_str + \str_set:Ne \l_@@_full_name_str { \exp_args:NV \__kernel_file_name_quote:n \l_@@_full_name_str } \exp_args:NnV \use:c { @@_backend_getbb_ #1 :n } \l_@@_full_name_str @@ -615,8 +615,8 @@ % \begin{macro}[EXP]{\@@_list_aux:n} % A function to list all graphic files used. % \begin{macrocode} -\cs_new_protected:Npn \graphics_show_list: { \@@_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \graphics_log_list: { \@@_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \graphics_show_list: { \@@_list:N \msg_show:nneeee } +\cs_new_protected:Npn \graphics_log_list: { \@@_list:N \msg_log:nneeee } \cs_new_protected:Npn \@@_list:N #1 { \seq_remove_duplicates:N \g_@@_record_seq @@ -714,7 +714,7 @@ \exp_args:NNNV \group_end: \tl_set:Nn #2 #2 } -\cs_new_protected:Npx \@@_get_pagecount:n #1 +\cs_new_protected:Npe \@@_get_pagecount:n #1 { \ior_shell_open:Nn \exp_not:N \l_@@_internal_ior { extractbb~-O~#1 } @@ -731,16 +731,16 @@ } \ior_close:N \exp_not:N \l_@@_internal_ior } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \@@_get_pagecount:nw - ##1##2 \c_colon_str ##3 \c_colon_str ##4 \s_@@_stop + #1#2 \c_colon_str #3 \c_colon_str #4 \s_@@_stop { \exp_not:N \str_if_eq:nnT { \c_percent_str \c_percent_str Pages } - {##2} + {#2} { - \int_const:cn { c_@@_ ##1 _pages_int } {##3} + \int_const:cn { c_@@_ #1 _pages_int } {#3} \exp_not:N \ior_map_break: } } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx index 0412372235e..3fce2c27d15 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3opacity/l3opacity.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -96,7 +96,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3opacity}{2023-05-11}{} +\ProvidesExplPackage{l3opacity}{2023-10-10}{} {L3 Experimental opacity support} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx index af0ad23e9f6..10ccfb2f794 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3str/l3str-format.dtx @@ -48,7 +48,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -166,7 +166,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3str-format}{2023-05-11}{} +\ProvidesExplPackage{l3str-format}{2023-10-10}{} {L3 Experimental string formatting} % \end{macrocode} % @@ -256,7 +256,7 @@ \exp_last_unbraced:Nf \@@_format_parse_auxi:NN { \__kernel_str_to_other:n {#1} } \s_@@_stop \s_@@_stop {#1} } -\cs_new:Npx \@@_format_parse_auxi:NN #1#2 +\cs_new:Npe \@@_format_parse_auxi:NN #1#2 { \exp_not:N \@@_format_if_in:nNTF { < > = ^ } #2 { \exp_not:N \@@_format_parse_auxiii:nN { #1 #2 } } @@ -271,7 +271,7 @@ { \@@_format_parse_auxiii:nN { #1 #2 } } { \@@_format_parse_auxiii:nN { #1 ? } #2 } } -\cs_new:Npx \@@_format_parse_auxiii:nN #1#2 +\cs_new:Npe \@@_format_parse_auxiii:nN #1#2 { \exp_not:N \@@_format_if_in:nNTF { + - \c_catcode_other_space_tl } diff --git a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx index dfc2fb188ae..0cc622dbbb1 100644 --- a/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/l3sys-shell/l3sys-shell.dtx @@ -46,7 +46,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -151,7 +151,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3sys-shell}{2023-05-11}{} +\ProvidesExplPackage{l3sys-shell}{2023-10-10}{} {L3 Experimental system shell functions} % \end{macrocode} % @@ -213,11 +213,11 @@ % Simple Unix-like file copying: at some stage we may need a directory-only % version as Windows and Unix have different requirements here. % \begin{macrocode} -\cs_new_protected:Npx \sys_shell_cp:nn #1#2 +\cs_new_protected:Npe \sys_shell_cp:nn #1#2 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { @@ -240,11 +240,11 @@ % issues a warning if the directory already exists: avoid by including a % test. % \begin{macrocode} -\cs_new_protected:Npx \sys_shell_mkdir:n #1 +\cs_new_protected:Npe \sys_shell_mkdir:n #1 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { mkdir~-p~ \exp_not:N \tl_to_str:n {#1} } @@ -264,11 +264,11 @@ % On Windows we do not have a single |mv| operation, so copy-and-delete % instead. % \begin{macrocode} -\cs_new_protected:Npx \sys_shell_mv:nn #1#2 +\cs_new_protected:Npe \sys_shell_mv:nn #1#2 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { @@ -291,11 +291,11 @@ % \begin{macro}{\sys_shell_rm:n} % Deletion: obviously a big health warning here! % \begin{macrocode} -\cs_new_protected:Npx \sys_shell_rm:n #1 +\cs_new_protected:Npe \sys_shell_rm:n #1 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { rm~-f~ \exp_not:N \tl_to_str:n {#1} } @@ -311,12 +311,12 @@ % When removing a directory, we create it first as that avoids errors in % the Windows case. % \begin{macrocode} -\cs_new_protected:Npx \sys_shell_rmdir:n #1 +\cs_new_protected:Npe \sys_shell_rmdir:n #1 { \sys_if_shell_unrestricted:T { \sys_shell_mkdir:n {#1} - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { rm~-rf~ \exp_not:N \tl_to_str:n {#1} } @@ -341,7 +341,7 @@ % that does not require shell escape. However, it's hard to see how it might % be useful without the other file functions.) % \begin{macrocode} -\cs_new_protected:Npx \sys_get_shell_pwd:N #1 +\cs_new_protected:Npe \sys_get_shell_pwd:N #1 { \sys_if_shell_unrestricted:T { @@ -371,7 +371,7 @@ % just a case of tidying up. The listing always ends in |^^M| so there is an % extra entry to trim. % \begin{macrocode} -\cs_new_protected:Npx \sys_shell_split_ls:nN #1#2 +\cs_new_protected:Npe \sys_shell_split_ls:nN #1#2 { \sys_if_shell_unrestricted:T { diff --git a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx index 97f1432be0e..8e8a9f0ca1a 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xcoffins/xcoffins.dtx @@ -53,7 +53,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -672,7 +672,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xcoffins}{2023-05-11}{} +\ProvidesExplPackage{xcoffins}{2023-10-10}{} {L3 Experimental design level coffins} % \end{macrocode} % @@ -781,7 +781,7 @@ { \group_begin: \@@_design_names:N #1 - \use:x + \use:e { \group_end: \coffin_set_horizontal_pole:Nnn #1 @@ -792,7 +792,7 @@ { \group_begin: \@@_design_names:N #1 - \use:x + \use:e { \group_end: \coffin_set_vertical_pole:Nnn #1 @@ -831,7 +831,7 @@ { \group_begin: \keys_set:nn { coffin } {#1} - \tl_set:Nx \l_@@_tmp_tl + \tl_set:Ne \l_@@_tmp_tl { \group_end: \bool_if:NTF \l_@@_bound_box_grow_bool diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx index a40688f42a5..7272d8625ea 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/l3galley.dtx @@ -61,7 +61,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -686,7 +686,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3galley}{2023-05-11}{} +\ProvidesExplPackage{l3galley}{2023-10-10}{} {L3 Experimental galley code} % \end{macrocode} % @@ -1325,7 +1325,7 @@ { \tl_if_empty:NF #1 { - \tl_gput_right:Nx \g_galley_restore_running_tl + \tl_gput_right:Ne \g_galley_restore_running_tl { \int_gset:Nn \exp_not:N \g_galley_penalty_int { \int_use:N \g_galley_penalty_int } @@ -1337,7 +1337,7 @@ { \tl_if_empty:NF #1 { - \tl_gput_right:Nx \g_galley_restore_running_tl + \tl_gput_right:Ne \g_galley_restore_running_tl { \skip_gset:Nn \exp_not:N \g_galley_vspace_skip { \skip_use:N \g_galley_vspace_skip } @@ -1755,7 +1755,7 @@ { \seq_gpop_left:NNF #2 \l_@@_tmp_tl { \tl_set:Nn \l_@@_tmp_tl { 0pt } } - \seq_put_right:Nx \l_@@_tmp_seq + \seq_put_right:Ne \l_@@_tmp_seq { \dim_eval:n { ##1 + \l_@@_tmp_tl } } } } @@ -1950,10 +1950,10 @@ % deals with this nicely. % \begin{macrocode} \cs_new_protected:Npn \galley_penalty_set_single:n #1 - { \tl_gset:Nx \g_@@_interpar_penalty_user_tl { \int_eval:n {#1} } } + { \tl_gset:Ne \g_@@_interpar_penalty_user_tl { \int_eval:n {#1} } } \cs_new_protected:Npn \galley_penalty_add_single:n #1 { - \tl_gset:Nx \g_@@_interpar_penalty_user_tl + \tl_gset:Ne \g_@@_interpar_penalty_user_tl { \int_eval:n { @@ -1964,10 +1964,10 @@ } } \cs_new_protected:Npn \galley_vspace_set_single:n #1 - { \tl_gset:Nx \g_@@_interpar_vspace_user_tl { \skip_eval:n {#1} } } + { \tl_gset:Ne \g_@@_interpar_vspace_user_tl { \skip_eval:n {#1} } } \cs_new_protected:Npn \galley_vspace_add_single:n #1 { - \tl_gset:Nx \g_@@_interpar_vspace_user_tl + \tl_gset:Ne \g_@@_interpar_vspace_user_tl { \skip_eval:n { @@ -2408,11 +2408,11 @@ { \clist_set_eq:NN #1 \l_galley_line_penalties_clist } % \end{macrocode} % These all require appropriate mappings, using the fact that -% \cs{clist_set:Nx} will tidy up the excess comma. +% \cs{clist_set:Ne} will tidy up the excess comma. % \begin{macrocode} \cs_new_protected:Npn \galley_save_display_club_penalties:N #1 { - \clist_set:Nx #1 + \clist_set:Ne #1 { \int_step_function:nN { \tex_clubpenalties:D 0 - 1 } \@@_save_display_club_penalties:n @@ -2422,7 +2422,7 @@ { \int_value:w \tex_clubpenalties:D \int_eval:n {#1} , } \cs_new_protected:Npn \galley_save_display_widow_penalties:N #1 { - \clist_set:Nx #1 + \clist_set:Ne #1 { \int_step_function:nN { \tex_displaywidowpenalties:D 0 - 1 } \@@_save_display_widow_penalties:n @@ -2435,7 +2435,7 @@ } \cs_new_protected:Npn \galley_save_widow_penalties:N #1 { - \clist_set:Nx #1 + \clist_set:Ne #1 { \int_step_function:nN { \tex_widowpenalties:D 0 - 1 } \@@_save_widow_penalties:n diff --git a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx index c7731b0b66e..abda67cc7ea 100644 --- a/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx +++ b/Master/texmf-dist/source/latex/l3experimental/xgalley/xgalley.dtx @@ -44,7 +44,7 @@ % }^^A % } % -% \date{Released 2023-05-11} +% \date{Released 2023-10-10} % % \maketitle % @@ -731,7 +731,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xgalley}{2023-05-11}{} +\ProvidesExplPackage{xgalley}{2023-10-10}{} {L3 Experimental galley} \RequirePackage{xtemplate,l3galley} % \end{macrocode} @@ -1057,7 +1057,7 @@ stretch-last-line = \l_galley_par_stretch_last_bool } { - \tl_put_left:Nx \l_@@_justification_other_tl + \tl_put_left:Ne \l_@@_justification_other_tl { \skip_set:Nn \exp_not:N \l_galley_par_end_skip { \skip_use:N \l_galley_par_end_skip } @@ -1355,7 +1355,7 @@ % \begin{macrocode} \tl_if_empty:NF \l_@@_interline_penalty_tl { - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \int_set:Nn \exp_not:N \l_@@_interline_penalty_int { \galley_interline_penalty: } @@ -1365,7 +1365,7 @@ } \tl_if_empty:NF \l_@@_parbreak_fuzz_tl { - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \dim_set:Nn \exp_not:N \l_galley_parbreak_fuzz_dim { \dim_use:N \l_galley_parbreak_fuzz_dim } @@ -1380,7 +1380,7 @@ { \tl_if_empty:cF { l_galley_ ##1 _tl } { - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \int_set:Nn \exp_not:c { l_galley_ ##1 _int } { \int_use:c { l_galley_ ##1 _int } } @@ -1399,7 +1399,7 @@ \tl_if_empty:cF { l_galley_ ##1 _tl } { \use:c { galley_save_ ##1 :N } \l_@@_tmpa_clist - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \exp_not:c { galley_set_ ##1 :n } { \exp_not:o \l_@@_tmpa_clist } @@ -1486,22 +1486,22 @@ { \tl_if_empty:NF \l_galley_display_begin_par_vpenalty_tl { - \tl_set:Nx \l_galley_display_begin_par_vpenalty_tl + \tl_set:Ne \l_galley_display_begin_par_vpenalty_tl { \int_eval:n { \l_galley_display_begin_par_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_begin_par_vspace_tl { - \tl_set:Nx \l_galley_display_begin_par_vspace_tl + \tl_set:Ne \l_galley_display_begin_par_vspace_tl { \skip_eval:n { \l_galley_display_begin_par_vspace_tl } } } \tl_if_empty:NF \l_galley_display_begin_vpenalty_tl { - \tl_set:Nx \l_galley_display_begin_vpenalty_tl + \tl_set:Ne \l_galley_display_begin_vpenalty_tl { \int_eval:n { \l_galley_display_begin_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_begin_vspace_tl { - \tl_set:Nx \l_galley_display_begin_vspace_tl + \tl_set:Ne \l_galley_display_begin_vspace_tl { \skip_eval:n { \l_galley_display_begin_vspace_tl } } } } @@ -1515,22 +1515,22 @@ { \tl_if_empty:NF \l_galley_display_end_par_vpenalty_tl { - \tl_set:Nx \l_galley_display_end_par_vpenalty_tl + \tl_set:Ne \l_galley_display_end_par_vpenalty_tl { \int_eval:n { \l_galley_display_end_par_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_end_par_vspace_tl { - \tl_set:Nx \l_galley_display_end_par_vspace_tl + \tl_set:Ne \l_galley_display_end_par_vspace_tl { \skip_eval:n { \l_galley_display_end_par_vspace_tl } } } \tl_if_empty:NF \l_galley_display_end_vpenalty_tl { - \tl_set:Nx \l_galley_display_end_vpenalty_tl + \tl_set:Ne \l_galley_display_end_vpenalty_tl { \int_eval:n { \l_galley_display_end_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_end_vspace_tl { - \tl_set:Nx \l_galley_display_end_vspace_tl + \tl_set:Ne \l_galley_display_end_vspace_tl { \skip_eval:n { \l_galley_display_end_vspace_tl } } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index 9adee097c5c..ea13fbeacf1 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -24,7 +24,7 @@ % %<*driver|generic|package|2ekernel> %</driver|generic|package|2ekernel> -\def\ExplFileDate{2023-08-29}% +\def\ExplFileDate{2023-10-10}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -311,8 +311,9 @@ % or private. % % To allow clear separation of these two cases, the following convention -% is used. Private functions should be defined with |__| added to the beginning -% of the module name. Thus +% is used. In private functions and variables, two |_| characters are +% added to the start of the module name. On the other hand, public +% interfaces to not have these two |_| character. Thus % \begin{verbatim} % \module_foo:nnn % \end{verbatim} @@ -323,8 +324,9 @@ % is private to the module, and should \emph{not} be used outside of that % module. % -% Similarly, private variables should use |__| to separate scope and -% module name, such that +% For variables, to avoid three |_| in a row, the separator for the variable +% scope and any leading |_| for a private interface in the module part are +% combined. Thus % \begin{verbatim} % \l_module_foo_tl % \end{verbatim} @@ -334,12 +336,12 @@ % \end{verbatim} % is private. % -% \subsubsection{Using \texttt{@@} and \pkg{l3docstrip} to mark private code} +% \subsubsection{Using \texttt{@@} and \pkg{DocStrip} to mark private code} % % The formal syntax for internal functions allows clear separation of public % and private code, but includes redundant information (every internal function % or variable includes \texttt{__\meta{module}}). To aid programmers, the -% \pkg{l3docstrip} program introduces the syntax +% \pkg{DocStrip} program introduces the syntax % \begin{quote} % \ttfamily % |%<@@=|\meta{module}|>| @@ -354,7 +356,7 @@ % \tl_new:N \l_@@_my_tl % % \end{macrocode} % \end{verbatim} -% is converted by \pkg{l3docstrip} to +% is converted by \pkg{DocStrip} to % \begin{verbatim} % \cs_new:Npn \__foo_function:n #1 % ... @@ -365,13 +367,6 @@ % distinguish variables from functions in the source when the |@@| % convention is used. % -% Please note that you have to use the \pkg{l3docstrip} and -% \textbf{not} the \pkg{docstrip} program in your \texttt{.ins} files -% to make this work---the original \LaTeXe{} \pkg{docstrip} doesn't -% understand the \texttt{@@} and will just copy it into your code -% unmodified! -% -% % \subsubsection{Variables: declaration} % % In well-formed \pkg{expl3} code, variables should always be declared before @@ -653,20 +648,10 @@ % variables which have a \cs{\meta{var}_use:N} function (other than % boxes), and which therefore deliver a single % \enquote{value}. -% \item[x] Fully-expanded token or braced token list.\\ -% This means that the argument is expanded as in the replacement -% text of an~\tn{edef}, and the expansion is passed to the function as -% a braced token list. Expansion takes place until only unexpandable -% tokens are left. |x|-type arguments cannot be nested. % \item[e] Fully-expanded token or braced token list.\\ -% This expansion is very similar to |x|-type but may be nested and does -% not require that |#| tokens are doubled. It uses \tn{expanded} primitive. -% \item[f] Expanding the first token recursively in a braced token -% list.\\ Almost the same as the |x| type except here the token list -% is expanded fully until the first unexpandable token is found and -% the rest is left unchanged. Note that if this function finds a -% space at the beginning of the argument it gobbles it and does not -% expand the next token. +% This means that the argument is expanded as in the replacement +% text of a~\tn{message}, and the expansion is passed to the function as +% a braced token list. % \item[o] One-level-expanded token or braced token list.\\ % This means that the argument is expanded one level, as by % \tn{expandafter}, and the expansion is passed to the function as a @@ -674,6 +659,19 @@ % token list then only the first token in that list is expanded. % In general, using \texttt{V} should be preferred to using % \texttt{o} for simple variable retrieval. +% \item[f] Expanding the first token recursively in a braced token +% list.\\ Almost the same as the |e| type except here the token list +% is expanded fully until the first unexpandable token is found and +% the rest is left unchanged. Note that if this function finds a +% space at the beginning of the argument it gobbles it and does not +% expand the next token. +% \item[x] Fully-expanded token or braced token list.\\ +% This expansion is very similar to |e|-type but is not nestable, +% can only be used to create non-expandable functions, and requires +% that |#| tokens are doubled in the argument. In almost all cases, +% |e|-type should be preferred: retained largely for historical +% reasons, and should where possible be replaced by the |e|-type +% equivalent. % \end{description} % % \subsection{Simpler means better} @@ -761,17 +759,17 @@ % % To illustrate this let us suppose you have a \enquote{base function} % |\demo_cmd:Nnn| that takes three normal arguments, and that you need -% to construct the variant |\demo_cmd:cnx|, for which the first argument +% to construct the variant |\demo_cmd:cne|, for which the first argument % is used to construct the \emph{name} of a command, whilst the third % argument must be fully expanded before being passed to % |\demo_cmd:Nnn|. % To produce the variant form from the base form, simply use this: % \begin{verbatim} -% \cs_generate_variant:Nn \demo_cmd:Nnn { cnx } +% \cs_generate_variant:Nn \demo_cmd:Nnn { cne } % \end{verbatim} % This defines the variant form so that you can then write, for example: % \begin{verbatim} -% \demo_cmd:cnx { abc } { pq } { \rst \xyz } +% \demo_cmd:cne { abc } { pq } { \rst \xyz } % \end{verbatim} % rather than \ldots\ well, something like this! % \begin{verbatim} @@ -793,13 +791,13 @@ % \end{verbatim} % % Another example: you may wish to declare a function -% |\demo_cmd_b:xcxcx|, a variant of an existing function +% |\demo_cmd_b:enene|, a variant of an existing function % |\demo_cmd_b:nnnnn|, that fully % expands arguments 1,~3 and~5, and produces commands to pass as % arguments 2 and~4 using~\tn{csname}. % The definition you need is simply % \begin{verbatim} -% \cs_generate_variant:Nn \demo_cmd_b:nnnnn { xcxcx } +% \cs_generate_variant:Nn \demo_cmd_b:nnnnn { enene } % \end{verbatim} % % This extension mechanism is written so that if the same new form of @@ -854,7 +852,7 @@ % \begin{itemize} % \item \pkg{expl3} is mainly focused on programming. This means that % some areas still require the use of \LaTeXe{} internal macros. -% For example, you may well need \tn{@ifpackageloaded}, as there +% For example, you may well need \tn{IfPackageLoadedTF}, as there % is currently no native \pkg{expl3} package loading module. % \item User level macros should be generated using the mechanism % available in the \pkg{xparse} package, which is part of the @@ -1541,12 +1539,12 @@ } \cs_gset_protected:Npn \@expl@push@filename@@@@ { - \exp_args:Nx \__kernel_file_input_push:n + \exp_args:Ne \__kernel_file_input_push:n { \tl_to_str:N \@currname . \tl_to_str:N \@currext } - \tl_put_left:Nx \l_@@_status_stack_tl + \tl_put_left:Ne \l_@@_status_stack_tl { \bool_if:NTF \l__kernel_expl_bool { 1 } @@ -1742,7 +1740,7 @@ \cs_set_protected:Npn \ProvidesExplFileAux ##1##2##3##4 { \group_end: - \iow_log:x { File:~##1~##2~v##3~##4 } + \iow_log:e { File:~##1~##2~v##3~##4 } } \tex_input:D #1 .def \scan_stop: } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 17cb2467bf6..6b484105fe5 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -200,7 +200,12 @@ % \subsection{Defining new functions using parameter text} % \label{sec:l3basics:defining-new-function-1} % -% \begin{function}{\cs_new:Npn, \cs_new:cpn, \cs_new:Npx, \cs_new:cpx} +% \begin{function} +% { +% \cs_new:Npn, \cs_new:cpn, +% \cs_new:Npe, \cs_new:cpe, +% \cs_new:Npx, \cs_new:cpx +% } % \begin{syntax} % \cs{cs_new:Npn} \meta{function} \meta{parameters} \Arg{code} % \end{syntax} @@ -214,6 +219,7 @@ % \begin{function} % { % \cs_new_nopar:Npn, \cs_new_nopar:cpn, +% \cs_new_nopar:Npe, \cs_new_nopar:cpe, % \cs_new_nopar:Npx, \cs_new_nopar:cpx % } % \begin{syntax} @@ -230,6 +236,7 @@ % \begin{function} % { % \cs_new_protected:Npn, \cs_new_protected:cpn, +% \cs_new_protected:Npe, \cs_new_protected:cpe, % \cs_new_protected:Npx, \cs_new_protected:cpx % } % \begin{syntax} @@ -247,6 +254,7 @@ % \begin{function} % { % \cs_new_protected_nopar:Npn, \cs_new_protected_nopar:cpn , +% \cs_new_protected_nopar:Npe, \cs_new_protected_nopar:cpe , % \cs_new_protected_nopar:Npx, \cs_new_protected_nopar:cpx % } % \begin{syntax} @@ -261,7 +269,12 @@ % and an error results if the \meta{function} is already defined. % \end{function} % -% \begin{function}{\cs_set:Npn, \cs_set:cpn, \cs_set:Npx, \cs_set:cpx} +% \begin{function} +% { +% \cs_set:Npn, \cs_set:cpn, +% \cs_set:Npe, \cs_set:cpe, +% \cs_set:Npx, \cs_set:cpx +% } % \begin{syntax} % \cs{cs_set:Npn} \meta{function} \meta{parameters} \Arg{code} % \end{syntax} @@ -275,6 +288,7 @@ % \begin{function} % { % \cs_set_nopar:Npn, \cs_set_nopar:cpn, +% \cs_set_nopar:Npe, \cs_set_nopar:cpe, % \cs_set_nopar:Npx, \cs_set_nopar:cpx % } % \begin{syntax} @@ -292,6 +306,7 @@ % \begin{function} % { % \cs_set_protected:Npn, \cs_set_protected:cpn, +% \cs_set_protected:Npe, \cs_set_protected:cpe, % \cs_set_protected:Npx, \cs_set_protected:cpx % } % \begin{syntax} @@ -308,6 +323,7 @@ % \begin{function} % { % \cs_set_protected_nopar:Npn, \cs_set_protected_nopar:cpn , +% \cs_set_protected_nopar:Npe, \cs_set_protected_nopar:cpe , % \cs_set_protected_nopar:Npx, \cs_set_protected_nopar:cpx , % } % \begin{syntax} @@ -323,7 +339,12 @@ % \texttt{x}-type or \texttt{e}-type argument. % \end{function} % -% \begin{function}{\cs_gset:Npn, \cs_gset:cpn, \cs_gset:Npx, \cs_gset:cpx} +% \begin{function} +% { +% \cs_gset:Npn, \cs_gset:cpn, +% \cs_gset:Npe, \cs_gset:cpe, +% \cs_gset:Npx, \cs_gset:cpx +% } % \begin{syntax} % \cs{cs_gset:Npn} \meta{function} \meta{parameters} \Arg{code} % \end{syntax} @@ -338,6 +359,7 @@ % \begin{function} % { % \cs_gset_nopar:Npn, \cs_gset_nopar:cpn, +% \cs_gset_nopar:Npe, \cs_gset_nopar:cpe, % \cs_gset_nopar:Npx, \cs_gset_nopar:cpx % } % \begin{syntax} @@ -355,6 +377,7 @@ % \begin{function} % { % \cs_gset_protected:Npn, \cs_gset_protected:cpn, +% \cs_gset_protected:Npe, \cs_gset_protected:cpe, % \cs_gset_protected:Npx, \cs_gset_protected:cpx % } % \begin{syntax} @@ -372,6 +395,7 @@ % \begin{function} % { % \cs_gset_protected_nopar:Npn, \cs_gset_protected_nopar:cpn, +% \cs_gset_protected_nopar:Npe, \cs_gset_protected_nopar:cpe, % \cs_gset_protected_nopar:Npx, \cs_gset_protected_nopar:cpx % } % \begin{syntax} @@ -393,7 +417,7 @@ % \begin{function} % { % \cs_new:Nn, \cs_new:cn, -% \cs_new:Nx, \cs_new:cx +% \cs_new:Ne, \cs_new:ce % } % \begin{syntax} % \cs{cs_new:Nn} \meta{function} \Arg{code} @@ -409,7 +433,7 @@ % \begin{function} % { % \cs_new_nopar:Nn, \cs_new_nopar:cn, -% \cs_new_nopar:Nx, \cs_new_nopar:cx +% \cs_new_nopar:Ne, \cs_new_nopar:ce % } % \begin{syntax} % \cs{cs_new_nopar:Nn} \meta{function} \Arg{code} @@ -426,7 +450,7 @@ % \begin{function} % { % \cs_new_protected:Nn, \cs_new_protected:cn, -% \cs_new_protected:Nx, \cs_new_protected:cx +% \cs_new_protected:Ne, \cs_new_protected:ce % } % \begin{syntax} % \cs{cs_new_protected:Nn} \meta{function} \Arg{code} @@ -443,7 +467,7 @@ % \begin{function} % { % \cs_new_protected_nopar:Nn, \cs_new_protected_nopar:cn, -% \cs_new_protected_nopar:Nx, \cs_new_protected_nopar:cx +% \cs_new_protected_nopar:Ne, \cs_new_protected_nopar:ce % } % \begin{syntax} % \cs{cs_new_protected_nopar:Nn} \meta{function} \Arg{code} @@ -461,7 +485,7 @@ % \begin{function} % { % \cs_set:Nn, \cs_set:cn, -% \cs_set:Nx, \cs_set:cx +% \cs_set:Ne, \cs_set:ce % } % \begin{syntax} % \cs{cs_set:Nn} \meta{function} \Arg{code} @@ -478,7 +502,7 @@ % \begin{function} % { % \cs_set_nopar:Nn, \cs_set_nopar:cn, -% \cs_set_nopar:Nx, \cs_set_nopar:cx +% \cs_set_nopar:Ne, \cs_set_nopar:ce % } % \begin{syntax} % \cs{cs_set_nopar:Nn} \meta{function} \Arg{code} @@ -496,7 +520,7 @@ % \begin{function} % { % \cs_set_protected:Nn, \cs_set_protected:cn, -% \cs_set_protected:Nx, \cs_set_protected:cx +% \cs_set_protected:Ne, \cs_set_protected:ce % } % \begin{syntax} % \cs{cs_set_protected:Nn} \meta{function} \Arg{code} @@ -514,7 +538,7 @@ % \begin{function} % { % \cs_set_protected_nopar:Nn, \cs_set_protected_nopar:cn, -% \cs_set_protected_nopar:Nx, \cs_set_protected_nopar:cx +% \cs_set_protected_nopar:Ne, \cs_set_protected_nopar:ce % } % \begin{syntax} % \cs{cs_set_protected_nopar:Nn} \meta{function} \Arg{code} @@ -533,7 +557,7 @@ % \begin{function} % { % \cs_gset:Nn, \cs_gset:cn, -% \cs_gset:Nx, \cs_gset:cx +% \cs_gset:Ne, \cs_gset:ce % } % \begin{syntax} % \cs{cs_gset:Nn} \meta{function} \Arg{code} @@ -549,7 +573,7 @@ % \begin{function} % { % \cs_gset_nopar:Nn, \cs_gset_nopar:cn, -% \cs_gset_nopar:Nx, \cs_gset_nopar:cx +% \cs_gset_nopar:Ne, \cs_gset_nopar:ce % } % \begin{syntax} % \cs{cs_gset_nopar:Nn} \meta{function} \Arg{code} @@ -566,7 +590,7 @@ % \begin{function} % { % \cs_gset_protected:Nn, \cs_gset_protected:cn, -% \cs_gset_protected:Nx, \cs_gset_protected:cx +% \cs_gset_protected:Ne, \cs_gset_protected:ce % } % \begin{syntax} % \cs{cs_gset_protected:Nn} \meta{function} \Arg{code} @@ -583,7 +607,7 @@ % \begin{function} % { % \cs_gset_protected_nopar:Nn, \cs_gset_protected_nopar:cn, -% \cs_gset_protected_nopar:Nx, \cs_gset_protected_nopar:cx +% \cs_gset_protected_nopar:Ne, \cs_gset_protected_nopar:ce % } % \begin{syntax} % \cs{cs_gset_protected_nopar:Nn} \meta{function} \Arg{code} @@ -1034,15 +1058,6 @@ % \end{texnote} % \end{function} % -% \begin{function}[updated = 2011-12-31]{\use:x} -% \begin{syntax} -% \cs{use:x} \Arg{expandable tokens} -% \end{syntax} -% Fully expands the \meta{expandable tokens} and inserts the -% result into the input stream at the current location. -% Any hash characters (|#|) in the argument must be doubled. -% \end{function} -% % \subsection{Selecting tokens from delimited arguments} % % A different kind of function for selecting tokens from the token @@ -1520,55 +1535,63 @@ % % \begin{macro} % { -% \cs_set_nopar:Npn , \cs_set_nopar:Npx , -% \cs_set:Npn , \cs_set:Npx , -% \cs_set_protected_nopar:Npn , \cs_set_protected_nopar:Npx , -% \cs_set_protected:Npn , \cs_set_protected:Npx +% \cs_set_nopar:Npn , \cs_set_nopar:Npe , \cs_set_nopar:Npx , +% \cs_set:Npn , \cs_set:Npe , \cs_set:Npx , +% \cs_set_protected_nopar:Npn , \cs_set_protected_nopar:Npe , \cs_set_protected_nopar:Npx , +% \cs_set_protected:Npn , \cs_set_protected:Npe , \cs_set_protected:Npx % } % All assignment functions in \LaTeX3 should be naturally protected; % after all, the \TeX{} primitives for assignments are and it can be % a cause of problems if others aren't. % \begin{macrocode} \tex_let:D \cs_set_nopar:Npn \tex_def:D +\tex_let:D \cs_set_nopar:Npe \tex_edef:D \tex_let:D \cs_set_nopar:Npx \tex_edef:D \tex_protected:D \tex_long:D \tex_def:D \cs_set:Npn { \tex_long:D \tex_def:D } -\tex_protected:D \tex_long:D \tex_def:D \cs_set:Npx +\tex_protected:D \tex_long:D \tex_def:D \cs_set:Npe { \tex_long:D \tex_edef:D } +\tex_let:D \cs_set:Npx \cs_set:Npe \tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npn { \tex_protected:D \tex_def:D } -\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npx +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npe { \tex_protected:D \tex_edef:D } +\tex_let:D \cs_set_protected_nopar:Npx \cs_set_protected_nopar:Npe \tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npn { \tex_protected:D \tex_long:D \tex_def:D } -\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npx +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npe { \tex_protected:D \tex_long:D \tex_edef:D } +\tex_let:D \cs_set_protected:Npx \cs_set_protected:Npe % \end{macrocode} % \end{macro} % % \begin{macro} % { -% \cs_gset_nopar:Npn , \cs_gset_nopar:Npx , -% \cs_gset:Npn , \cs_gset:Npx , -% \cs_gset_protected_nopar:Npn , \cs_gset_protected_nopar:Npx , -% \cs_gset_protected:Npn , \cs_gset_protected:Npx +% \cs_gset_nopar:Npn , \cs_gset_nopar:Npe , \cs_gset_nopar:Npx , +% \cs_gset:Npn , \cs_gset:Npe , \cs_gset:Npx , +% \cs_gset_protected_nopar:Npn , \cs_gset_protected_nopar:Npe , \cs_gset_protected_nopar:Npx , +% \cs_gset_protected:Npn , \cs_gset_protected:Npe , \cs_gset_protected:Npx % } % Global versions of the above functions. % \begin{macrocode} \tex_let:D \cs_gset_nopar:Npn \tex_gdef:D +\tex_let:D \cs_gset_nopar:Npe \tex_xdef:D \tex_let:D \cs_gset_nopar:Npx \tex_xdef:D \cs_set_protected:Npn \cs_gset:Npn { \tex_long:D \tex_gdef:D } -\cs_set_protected:Npn \cs_gset:Npx +\cs_set_protected:Npn \cs_gset:Npe { \tex_long:D \tex_xdef:D } +\tex_let:D \cs_gset:Npx \cs_gset:Npe \cs_set_protected:Npn \cs_gset_protected_nopar:Npn { \tex_protected:D \tex_gdef:D } -\cs_set_protected:Npn \cs_gset_protected_nopar:Npx +\cs_set_protected:Npn \cs_gset_protected_nopar:Npe { \tex_protected:D \tex_xdef:D } +\tex_let:D \cs_gset_protected_nopar:Npx \cs_gset_protected_nopar:Npe \cs_set_protected:Npn \cs_gset_protected:Npn { \tex_protected:D \tex_long:D \tex_gdef:D } -\cs_set_protected:Npn \cs_gset_protected:Npx +\cs_set_protected:Npn \cs_gset_protected:Npe { \tex_protected:D \tex_long:D \tex_xdef:D } +\tex_let:D \cs_gset_protected:Npx \cs_gset_protected:Npe % \end{macrocode} % \end{macro} % @@ -1921,7 +1944,7 @@ { \@@_generate_conditional_parm:NNNpnn \cs_new_protected:Npn p } \cs_set_protected:Npn \@@_generate_conditional_parm:NNNpnn #1#2#3#4# { - \use:x + \use:e { \@@_generate_conditional:nnNNNnnn \cs_split_function:N #3 @@ -1973,7 +1996,7 @@ { \@@_generate_conditional_count:NNNnn \cs_new_protected:Npn p } \cs_set_protected:Npn \@@_generate_conditional_count:NNNnn #1#2#3 { - \use:x + \use:e { \@@_generate_conditional_count:nnNNNnn \cs_split_function:N #3 @@ -1986,7 +2009,7 @@ { \@@_generate_conditional:nnNNNnnn {#1} {#2} #3 #4 #5 } { \tl_count:n {#2} } { - \msg_error:nnxx { kernel } { bad-number-of-arguments } + \msg_error:nnee { kernel } { bad-number-of-arguments } { \token_to_str:c { #1 : #2 } } { \tl_count:n {#2} } \use_none:nn @@ -2024,11 +2047,11 @@ \cs_set_protected:Npn \@@_generate_conditional:nnNNNnnn #1#2#3#4#5#6#7#8 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \use_none:nn \fi: - \use:x + \use:e { \exp_not:N \@@_generate_conditional:NNnnnnNw \exp_not:n { #4 #5 {#1} {#2} {#6} } @@ -2064,7 +2087,7 @@ \use:c { @@_generate_ #8 _form:wNNnnnnN } \tl_if_empty:nF {#8} { - \msg_error:nnxx + \msg_error:nnee { kernel } { conditional-form-unknown } {#8} { \token_to_str:c { #3 : #4 } } } @@ -2118,7 +2141,7 @@ { #7 \@@_p_true:w \fi: \c_false_bool } } { - \msg_error:nnx { kernel } { protected-predicate } + \msg_error:nne { kernel } { protected-predicate } { \token_to_str:c { #4 _p: #5 } } } } @@ -2176,7 +2199,7 @@ { \@@_set_eq_conditional:NNNn \cs_new_eq:cc } \cs_set_protected:Npn \@@_set_eq_conditional:NNNn #1#2#3#4 { - \use:x + \use:e { \exp_not:N \@@_set_eq_conditional:nnNnnNNw \cs_split_function:N #2 @@ -2216,12 +2239,12 @@ \cs_set_protected:Npn \@@_set_eq_conditional:nnNnnNNw #1#2#3#4#5#6 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \@@_use_none_delimit_by_q_recursion_stop:w \fi: \if_meaning:w \c_false_bool #6 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#4} } \exp_after:wN \@@_use_none_delimit_by_q_recursion_stop:w \fi: @@ -2235,7 +2258,7 @@ \use:c { @@_set_eq_conditional_ #6 _form:wNnnnn } \tl_if_empty:nF {#6} { - \msg_error:nnxx + \msg_error:nnee { kernel } { conditional-form-unknown } {#6} { \token_to_str:c { #1 : #2 } } } @@ -2554,14 +2577,14 @@ % only temporary, they will be redefined later on. % % \begin{macro} -% {\msg_error:nnxx, \msg_error:nnx, \msg_error:nn} +% {\msg_error:nnee, \msg_error:nne, \msg_error:nn} % If an internal error occurs before \LaTeX3 has loaded \pkg{l3msg} then % the code should issue a usable if terse error message and halt. This % can only happen if a coding error is made by the team, so this is % a reasonable response. Setting the \tn{newlinechar} is needed, to % turn |^^J| into a proper line break in plain \TeX{}. % \begin{macrocode} -\cs_set_protected:Npn \msg_error:nnxx #1#2#3#4 +\cs_set_protected:Npn \msg_error:nnee #1#2#3#4 { \tex_newlinechar:D = `\^^J \scan_stop: \tex_errmessage:D @@ -2574,10 +2597,10 @@ } \tex_end:D } -\cs_set_protected:Npn \msg_error:nnx #1#2#3 - { \msg_error:nnxx {#1} {#2} {#3} { } } +\cs_set_protected:Npn \msg_error:nne #1#2#3 + { \msg_error:nnee {#1} {#2} {#3} { } } \cs_set_protected:Npn \msg_error:nn #1#2 - { \msg_error:nnxx {#1} {#2} { } { } } + { \msg_error:nnee {#1} {#2} { } { } } % \end{macrocode} % \end{macro} % @@ -2589,14 +2612,14 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[documented-as=\iow_log:n]{\iow_log:x, \iow_term:x} +% \begin{macro}[documented-as=\iow_log:n]{\iow_log:e, \iow_term:e} % We define a routine to write only to the log file. And a % similar one for writing to both the log file and the terminal. -% These will be redefined later by \pkg{l3io}. +% These will be redefined later by \pkg{l3file}. % \begin{macrocode} -\cs_set_protected:Npn \iow_log:x +\cs_set_protected:Npn \iow_log:e { \tex_immediate:D \tex_write:D -1 } -\cs_set_protected:Npn \iow_term:x +\cs_set_protected:Npn \iow_term:e { \tex_immediate:D \tex_write:D 16 } % \end{macrocode} % \end{macro} @@ -2614,7 +2637,7 @@ { \cs_if_free:NF #1 { - \msg_error:nnxx { kernel } { command-already-defined } + \msg_error:nnee { kernel } { command-already-defined } { \token_to_str:N #1 } { \token_to_meaning:N #1 } } } @@ -2631,10 +2654,10 @@ % % \begin{macro} % { -% \cs_new_nopar:Npn , \cs_new_nopar:Npx , -% \cs_new:Npn , \cs_new:Npx , -% \cs_new_protected_nopar:Npn , \cs_new_protected_nopar:Npx , -% \cs_new_protected:Npn , \cs_new_protected:Npx +% \cs_new_nopar:Npn , \cs_new_nopar:Npe , \cs_new_nopar:Npx , +% \cs_new:Npn , \cs_new:Npe , \cs_new:Npx , +% \cs_new_protected_nopar:Npn , \cs_new_protected_nopar:Npe , \cs_new_protected_nopar:Npx , +% \cs_new_protected:Npn , \cs_new_protected:Npe , \cs_new_protected:Npx % } % \begin{macro}{\@@_tmp:w} % Function which check that the control sequence is free before @@ -2649,12 +2672,16 @@ } } \@@_tmp:w \cs_new_nopar:Npn \cs_gset_nopar:Npn +\@@_tmp:w \cs_new_nopar:Npe \cs_gset_nopar:Npe \@@_tmp:w \cs_new_nopar:Npx \cs_gset_nopar:Npx \@@_tmp:w \cs_new:Npn \cs_gset:Npn +\@@_tmp:w \cs_new:Npe \cs_gset:Npe \@@_tmp:w \cs_new:Npx \cs_gset:Npx \@@_tmp:w \cs_new_protected_nopar:Npn \cs_gset_protected_nopar:Npn +\@@_tmp:w \cs_new_protected_nopar:Npe \cs_gset_protected_nopar:Npe \@@_tmp:w \cs_new_protected_nopar:Npx \cs_gset_protected_nopar:Npx \@@_tmp:w \cs_new_protected:Npn \cs_gset_protected:Npn +\@@_tmp:w \cs_new_protected:Npe \cs_gset_protected:Npe \@@_tmp:w \cs_new_protected:Npx \cs_gset_protected:Npx % \end{macrocode} % \end{macro} @@ -2662,9 +2689,9 @@ % % \begin{macro}[documented-as=\cs_set_nopar:Npn] % { -% \cs_set_nopar:cpn , \cs_set_nopar:cpx , -% \cs_gset_nopar:cpn , \cs_gset_nopar:cpx , -% \cs_new_nopar:cpn , \cs_new_nopar:cpx +% \cs_set_nopar:cpn , \cs_set_nopar:cpe , \cs_set_nopar:cpx , +% \cs_gset_nopar:cpn , \cs_gset_nopar:cpe , \cs_gset_nopar:cpx , +% \cs_new_nopar:cpn , \cs_new_nopar:cpe , \cs_new_nopar:cpx % } % Like \cs{cs_set_nopar:Npn} and \cs{cs_new_nopar:Npn}, except that the % first argument consists of the sequence of characters that should @@ -2680,64 +2707,76 @@ \cs_set:Npn \@@_tmp:w #1#2 { \cs_new_protected_nopar:Npn #1 { \exp_args:Nc #2 } } \@@_tmp:w \cs_set_nopar:cpn \cs_set_nopar:Npn +\@@_tmp:w \cs_set_nopar:cpe \cs_set_nopar:Npe \@@_tmp:w \cs_set_nopar:cpx \cs_set_nopar:Npx \@@_tmp:w \cs_gset_nopar:cpn \cs_gset_nopar:Npn +\@@_tmp:w \cs_gset_nopar:cpe \cs_gset_nopar:Npe \@@_tmp:w \cs_gset_nopar:cpx \cs_gset_nopar:Npx \@@_tmp:w \cs_new_nopar:cpn \cs_new_nopar:Npn +\@@_tmp:w \cs_new_nopar:cpe \cs_new_nopar:Npe \@@_tmp:w \cs_new_nopar:cpx \cs_new_nopar:Npx % \end{macrocode} % \end{macro} % % \begin{macro}[documented-as=\cs_set:Npn] % { -% \cs_set:cpn , \cs_set:cpx , -% \cs_gset:cpn , \cs_gset:cpx , -% \cs_new:cpn , \cs_new:cpx +% \cs_set:cpn , \cs_set:cpe , \cs_set:cpx , +% \cs_gset:cpn , \cs_gset:cpe , \cs_gset:cpx , +% \cs_new:cpn , \cs_new:cpe , \cs_new:cpx % } % Variants of the \cs{cs_set:Npn} versions which make a csname out % of the first arguments. We may also do this globally. % \begin{macrocode} \@@_tmp:w \cs_set:cpn \cs_set:Npn +\@@_tmp:w \cs_set:cpe \cs_set:Npe \@@_tmp:w \cs_set:cpx \cs_set:Npx \@@_tmp:w \cs_gset:cpn \cs_gset:Npn +\@@_tmp:w \cs_gset:cpe \cs_gset:Npe \@@_tmp:w \cs_gset:cpx \cs_gset:Npx \@@_tmp:w \cs_new:cpn \cs_new:Npn +\@@_tmp:w \cs_new:cpe \cs_new:Npe \@@_tmp:w \cs_new:cpx \cs_new:Npx % \end{macrocode} % \end{macro} % % \begin{macro}[documented-as=\cs_set_protected_nopar:Npn] % { -% \cs_set_protected_nopar:cpn , \cs_set_protected_nopar:cpx , -% \cs_gset_protected_nopar:cpn , \cs_gset_protected_nopar:cpx , -% \cs_new_protected_nopar:cpn , \cs_new_protected_nopar:cpx +% \cs_set_protected_nopar:cpn , \cs_set_protected_nopar:cpe , \cs_set_protected_nopar:cpx , +% \cs_gset_protected_nopar:cpn , \cs_gset_protected_nopar:cpe , \cs_gset_protected_nopar:cpx , +% \cs_new_protected_nopar:cpn , \cs_new_protected_nopar:cpe , \cs_new_protected_nopar:cpx % } % Variants of the \cs{cs_set_protected_nopar:Npn} versions which make % a csname out of the first arguments. We may also do this globally. % \begin{macrocode} \@@_tmp:w \cs_set_protected_nopar:cpn \cs_set_protected_nopar:Npn +\@@_tmp:w \cs_set_protected_nopar:cpe \cs_set_protected_nopar:Npe \@@_tmp:w \cs_set_protected_nopar:cpx \cs_set_protected_nopar:Npx \@@_tmp:w \cs_gset_protected_nopar:cpn \cs_gset_protected_nopar:Npn +\@@_tmp:w \cs_gset_protected_nopar:cpe \cs_gset_protected_nopar:Npe \@@_tmp:w \cs_gset_protected_nopar:cpx \cs_gset_protected_nopar:Npx \@@_tmp:w \cs_new_protected_nopar:cpn \cs_new_protected_nopar:Npn +\@@_tmp:w \cs_new_protected_nopar:cpe \cs_new_protected_nopar:Npe \@@_tmp:w \cs_new_protected_nopar:cpx \cs_new_protected_nopar:Npx % \end{macrocode} % \end{macro} % % \begin{macro}[documented-as=\cs_set_protected:Npn] % { -% \cs_set_protected:cpn , \cs_set_protected:cpx , -% \cs_gset_protected:cpn , \cs_gset_protected:cpx , -% \cs_new_protected:cpn , \cs_new_protected:cpx +% \cs_set_protected:cpn , \cs_set_protected:cpe , \cs_set_protected:cpx , +% \cs_gset_protected:cpn , \cs_gset_protected:cpe , \cs_gset_protected:cpx , +% \cs_new_protected:cpn , \cs_new_protected:cpe , \cs_new_protected:cpx % } % Variants of the \cs{cs_set_protected:Npn} versions which make a csname % out of the first arguments. We may also do this globally. % \begin{macrocode} \@@_tmp:w \cs_set_protected:cpn \cs_set_protected:Npn +\@@_tmp:w \cs_set_protected:cpe \cs_set_protected:Npe \@@_tmp:w \cs_set_protected:cpx \cs_set_protected:Npx \@@_tmp:w \cs_gset_protected:cpn \cs_gset_protected:Npn +\@@_tmp:w \cs_gset_protected:cpe \cs_gset_protected:Npe \@@_tmp:w \cs_gset_protected:cpx \cs_gset_protected:Npx \@@_tmp:w \cs_new_protected:cpn \cs_new_protected:Npn +\@@_tmp:w \cs_new_protected:cpe \cs_new_protected:Npe \@@_tmp:w \cs_new_protected:cpx \cs_new_protected:Npx % \end{macrocode} % \end{macro} @@ -2827,7 +2866,7 @@ % \begin{macrocode} \cs_set_protected:Npn \__kernel_cs_parm_from_arg_count:nnF #1#2 { - \exp_args:Nx \@@_parm_from_arg_count_test:nnF + \exp_args:Ne \@@_parm_from_arg_count_test:nnF { \exp_after:wN \exp_not:n \if_case:w \int_eval:n {#2} @@ -2914,7 +2953,7 @@ { \__kernel_cs_parm_from_arg_count:nnF { \use:nnn #2 #1 } {#3} { - \msg_error:nnxx { kernel } { bad-number-of-arguments } + \msg_error:nnee { kernel } { bad-number-of-arguments } { \token_to_str:N #1 } { \int_eval:n {#3} } \use_none:n } @@ -2944,18 +2983,18 @@ % % \begin{macro} % { -% \cs_set:Nn , \cs_set:Nx , -% \cs_set_nopar:Nn , \cs_set_nopar:Nx , -% \cs_set_protected:Nn , \cs_set_protected:Nx , -% \cs_set_protected_nopar:Nn , \cs_set_protected_nopar:Nx , -% \cs_gset:Nn , \cs_gset:Nx , -% \cs_gset_nopar:Nn , \cs_gset_nopar:Nx , -% \cs_gset_protected:Nn , \cs_gset_protected:Nx , -% \cs_gset_protected_nopar:Nn , \cs_gset_protected_nopar:Nx , -% \cs_new:Nn , \cs_new:Nx , -% \cs_new_nopar:Nn , \cs_new_nopar:Nx , -% \cs_new_protected:Nn , \cs_new_protected:Nx , -% \cs_new_protected_nopar:Nn , \cs_new_protected_nopar:Nx , +% \cs_set:Nn , \cs_set:Ne , \cs_set:Nx , +% \cs_set_nopar:Nn , \cs_set_nopar:Ne , \cs_set_nopar:Nx , +% \cs_set_protected:Nn , \cs_set_protected:Ne , \cs_set_protected:Nx , +% \cs_set_protected_nopar:Nn , \cs_set_protected_nopar:Ne , \cs_set_protected_nopar:Nx , +% \cs_gset:Nn , \cs_gset:Ne , \cs_gset:Nx , +% \cs_gset_nopar:Nn , \cs_gset_nopar:Ne , \cs_gset_nopar:Nx , +% \cs_gset_protected:Nn , \cs_gset_protected:Ne , \cs_gset_protected:Nx , +% \cs_gset_protected_nopar:Nn , \cs_gset_protected_nopar:Ne , \cs_gset_protected_nopar:Nx , +% \cs_new:Nn , \cs_new:Ne , \cs_new:Nx , +% \cs_new_nopar:Nn , \cs_new_nopar:Ne , \cs_new_nopar:Nx , +% \cs_new_protected:Nn , \cs_new_protected:Ne , \cs_new_protected:Nx , +% \cs_new_protected_nopar:Nn , \cs_new_protected_nopar:Ne , \cs_new_protected_nopar:Nx , % } % We want to define \cs{cs_set:Nn} as % \begin{verbatim} @@ -2980,7 +3019,7 @@ } \cs_new_protected:Npn \@@_generate_from_signature:NNn #1#2 { - \use:x + \use:e { \@@_generate_from_signature:nnNNNn \cs_split_function:N #2 @@ -2995,14 +3034,14 @@ { \tl_map_function:nN {#2} \@@_generate_from_signature:n } \tl_if_empty:oF \@@_tmp:w { - \msg_error:nnxxx { kernel } { non-base-function } + \msg_error:nneee { kernel } { non-base-function } { \token_to_str:N #5 } {#2} { \@@_tmp:w } } \cs_generate_from_arg_count:NNnn #5 #4 { \tl_count:n {#2} } {#6} } { - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:N #5 } } } @@ -3015,46 +3054,58 @@ % Then we define the 24 variants beginning with |N|. % \begin{macrocode} \@@_tmp:w { set } { Nn } { Npn } +\@@_tmp:w { set } { Ne } { Npe } \@@_tmp:w { set } { Nx } { Npx } \@@_tmp:w { set_nopar } { Nn } { Npn } +\@@_tmp:w { set_nopar } { Ne } { Npe } \@@_tmp:w { set_nopar } { Nx } { Npx } \@@_tmp:w { set_protected } { Nn } { Npn } +\@@_tmp:w { set_protected } { Ne } { Npe } \@@_tmp:w { set_protected } { Nx } { Npx } \@@_tmp:w { set_protected_nopar } { Nn } { Npn } +\@@_tmp:w { set_protected_nopar } { Ne } { Npe } \@@_tmp:w { set_protected_nopar } { Nx } { Npx } \@@_tmp:w { gset } { Nn } { Npn } +\@@_tmp:w { gset } { Ne } { Npe } \@@_tmp:w { gset } { Nx } { Npx } \@@_tmp:w { gset_nopar } { Nn } { Npn } +\@@_tmp:w { gset_nopar } { Ne } { Npe } \@@_tmp:w { gset_nopar } { Nx } { Npx } \@@_tmp:w { gset_protected } { Nn } { Npn } +\@@_tmp:w { gset_protected } { Ne } { Npe } \@@_tmp:w { gset_protected } { Nx } { Npx } \@@_tmp:w { gset_protected_nopar } { Nn } { Npn } +\@@_tmp:w { gset_protected_nopar } { Ne } { Npe } \@@_tmp:w { gset_protected_nopar } { Nx } { Npx } \@@_tmp:w { new } { Nn } { Npn } +\@@_tmp:w { new } { Ne } { Npe } \@@_tmp:w { new } { Nx } { Npx } \@@_tmp:w { new_nopar } { Nn } { Npn } +\@@_tmp:w { new_nopar } { Ne } { Npe } \@@_tmp:w { new_nopar } { Nx } { Npx } \@@_tmp:w { new_protected } { Nn } { Npn } +\@@_tmp:w { new_protected } { Ne } { Npe } \@@_tmp:w { new_protected } { Nx } { Npx } \@@_tmp:w { new_protected_nopar } { Nn } { Npn } +\@@_tmp:w { new_protected_nopar } { Ne } { Npe } \@@_tmp:w { new_protected_nopar } { Nx } { Npx } % \end{macrocode} % \end{macro} % % \begin{macro}[documented-as=\cs_set:Nn] % { -% \cs_set:cn , \cs_set:cx , -% \cs_set_nopar:cn , \cs_set_nopar:cx , -% \cs_set_protected:cn , \cs_set_protected:cx , -% \cs_set_protected_nopar:cn , \cs_set_protected_nopar:cx , -% \cs_gset:cn , \cs_gset:cx , -% \cs_gset_nopar:cn , \cs_gset_nopar:cx , -% \cs_gset_protected:cn , \cs_gset_protected:cx , -% \cs_gset_protected_nopar:cn , \cs_gset_protected_nopar:cx , -% \cs_new:cn , \cs_new:cx , -% \cs_new_nopar:cn , \cs_new_nopar:cx , -% \cs_new_protected:cn , \cs_new_protected:cx , -% \cs_new_protected_nopar:cn , \cs_new_protected_nopar:cx , +% \cs_set:cn , \cs_set:ce , \cs_set:cx , +% \cs_set_nopar:cn , \cs_set_nopar:ce , \cs_set_nopar:cx , +% \cs_set_protected:cn , \cs_set_protected:ce , \cs_set_protected:cx , +% \cs_set_protected_nopar:cn , \cs_set_protected_nopar:ce , \cs_set_protected_nopar:cx , +% \cs_gset:cn , \cs_gset:ce , \cs_gset:cx , +% \cs_gset_nopar:cn , \cs_gset_nopar:ce , \cs_gset_nopar:cx , +% \cs_gset_protected:cn , \cs_gset_protected:ce , \cs_gset_protected:cx , +% \cs_gset_protected_nopar:cn , \cs_gset_protected_nopar:ce , \cs_gset_protected_nopar:cx , +% \cs_new:cn , \cs_new:ce , \cs_new:cx , +% \cs_new_nopar:cn , \cs_new_nopar:ce , \cs_new_nopar:cx , +% \cs_new_protected:cn , \cs_new_protected:ce , \cs_new_protected:cx , +% \cs_new_protected_nopar:cn , \cs_new_protected_nopar:ce , \cs_new_protected_nopar:cx , % } % The 24 |c| variants simply use \cs{exp_args:Nc}. % \begin{macrocode} @@ -3067,28 +3118,40 @@ } } \@@_tmp:w { set } { n } +\@@_tmp:w { set } { e } \@@_tmp:w { set } { x } \@@_tmp:w { set_nopar } { n } +\@@_tmp:w { set_nopar } { e } \@@_tmp:w { set_nopar } { x } \@@_tmp:w { set_protected } { n } +\@@_tmp:w { set_protected } { e } \@@_tmp:w { set_protected } { x } \@@_tmp:w { set_protected_nopar } { n } +\@@_tmp:w { set_protected_nopar } { e } \@@_tmp:w { set_protected_nopar } { x } \@@_tmp:w { gset } { n } +\@@_tmp:w { gset } { e } \@@_tmp:w { gset } { x } \@@_tmp:w { gset_nopar } { n } +\@@_tmp:w { gset_nopar } { e } \@@_tmp:w { gset_nopar } { x } \@@_tmp:w { gset_protected } { n } +\@@_tmp:w { gset_protected } { e } \@@_tmp:w { gset_protected } { x } \@@_tmp:w { gset_protected_nopar } { n } +\@@_tmp:w { gset_protected_nopar } { e } \@@_tmp:w { gset_protected_nopar } { x } \@@_tmp:w { new } { n } +\@@_tmp:w { new } { e } \@@_tmp:w { new } { x } \@@_tmp:w { new_nopar } { n } +\@@_tmp:w { new_nopar } { e } \@@_tmp:w { new_nopar } { x } \@@_tmp:w { new_protected } { n } +\@@_tmp:w { new_protected } { e } \@@_tmp:w { new_protected } { x } \@@_tmp:w { new_protected_nopar } { n } +\@@_tmp:w { new_protected_nopar } { e } \@@_tmp:w { new_protected_nopar } { x } % \end{macrocode} % \end{macro} @@ -3133,7 +3196,7 @@ \cs_if_exist:NTF #1 {#2} { - \msg_error:nnx { kernel } { variable-not-defined } + \msg_error:nne { kernel } { variable-not-defined } { \token_to_str:N #1 } } } @@ -3196,7 +3259,7 @@ { \group_begin: \int_set:Nn \tex_escapechar:D { `\\ } - \exp_args:NNx + \exp_args:NNe \group_end: #1 { \token_to_str:N #2 = \cs_meaning:N #2 } } @@ -3214,7 +3277,7 @@ { \@@_group_show:NN \int_zero:N 0 } \cs_new_protected:Npn \@@_group_show:NN #1#2 { - \use:x + \use:e { #1 \tex_interactionmode:D \int_set:Nn \tex_tracingonline:D {#2} @@ -3247,7 +3310,7 @@ % catcode~$12$. If the token in question isn't a macro, the token % \cs{scan_stop:} is returned instead. % \begin{macrocode} -\use:x +\use:e { \exp_not:n { \cs_new:Npn \@@_prefix_arg_replacement:wN #1 } \tl_to_str:n { macro : } \exp_not:n { #2 -> #3 \s_@@_stop #4 } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index aaa4333858e..e300bccc67e 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -313,7 +313,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_if:NF \l_@@_expl_bool { - \cs_set_protected:Npx \ExplSyntaxOff + \cs_set_protected:Npe \ExplSyntaxOff { \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } } \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index 34b6ca44efd..dfa6b3c451e 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -1372,7 +1372,7 @@ \group_end: } { - \msg_error:nnx { kernel } { variable-not-defined } + \msg_error:nne { kernel } { variable-not-defined } { \token_to_str:N #2 } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index f3a50214254..6e455b099c8 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -129,10 +129,10 @@ % % \begin{function}[added = 2018-04-01] % { -% \tl_build_put_left:Nn, \tl_build_put_left:Nx, -% \tl_build_gput_left:Nn, \tl_build_gput_left:Nx, -% \tl_build_put_right:Nn, \tl_build_put_right:Nx, -% \tl_build_gput_right:Nn, \tl_build_gput_right:Nx, +% \tl_build_put_left:Nn, \tl_build_put_left:Ne, +% \tl_build_gput_left:Nn, \tl_build_gput_left:Ne, +% \tl_build_put_right:Nn, \tl_build_put_right:Ne, +% \tl_build_gput_right:Nn, \tl_build_gput_right:Ne % } % \begin{syntax} % \cs{tl_build_put_left:Nn} \meta{tl~var} \Arg{tokens} @@ -198,9 +198,9 @@ % hence in the \texttt{x}-expanding assignment. % \begin{macrocode} \cs_new_protected:Npn \seq_set_filter:NNn - { \@@_set_filter:NNNn \__kernel_tl_set:Nx } + { \@@_set_filter:NNNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gset_filter:NNn - { \@@_set_filter:NNNn \__kernel_tl_gset:Nx } + { \@@_set_filter:NNNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_set_filter:NNNn #1#2#3#4 { \@@_push_item_def:n { \bool_if:nT {#4} { \@@_wrap_item:n {##1} } } @@ -231,8 +231,8 @@ % name is that of \meta{tl~var} followed by~|'|. There are between $0$ % and $4$ \cs{exp_end:} to keep track of when \meta{left} and % \meta{right} should be put into the \meta{next~tl}. The -% \meta{assignment} is \cs{cs_set_nopar:Npx} if the variable is local, -% and \cs{cs_gset_nopar:Npx} if it is global. +% \meta{assignment} is \cs{cs_set_nopar:Npe} if the variable is local, +% and \cs{cs_gset_nopar:Npe} if it is global. % % \begin{macro}{\tl_build_begin:N, \tl_build_gbegin:N} % \begin{macro}{\@@_build_begin:NN, \@@_build_begin:NNN} @@ -241,7 +241,7 @@ % derived from |#1| without any external data such as a counter. % Empty that \meta{next~tl} and setup the structure. The local and % global versions only differ by a single function -% \cs[no-index]{cs_(g)set_nopar:Npx} used for all assignments: this is +% \cs[no-index]{cs_(g)set_nopar:Npe} used for all assignments: this is % important because only that function is stored in the \meta{tl~var} % and \meta{next~tl} for subsequent assignments. In principle % \cs{@@_build_begin:NNN} could use \cs[no-index]{tl_(g)clear_new:N} @@ -250,9 +250,9 @@ % clear it locally or globally as appropriate. % \begin{macrocode} \cs_new_protected:Npn \tl_build_begin:N #1 - { \@@_build_begin:NN \cs_set_nopar:Npx #1 } + { \@@_build_begin:NN \cs_set_nopar:Npe #1 } \cs_new_protected:Npn \tl_build_gbegin:N #1 - { \@@_build_begin:NN \cs_gset_nopar:Npx #1 } + { \@@_build_begin:NN \cs_gset_nopar:Npe #1 } \cs_new_protected:Npn \@@_build_begin:NN #1#2 { \exp_args:Nc \@@_build_begin:NNN { \cs_to_str:N #2 ' } #2 #1 } \cs_new_protected:Npn \@@_build_begin:NNN #1#2#3 @@ -283,8 +283,8 @@ % % \begin{macro} % { -% \tl_build_put_right:Nn, \tl_build_put_right:Nx, -% \tl_build_gput_right:Nn, \tl_build_gput_right:Nx, +% \tl_build_put_right:Nn, \tl_build_put_right:Ne, \tl_build_put_right:Nx, +% \tl_build_gput_right:Nn, \tl_build_gput_right:Ne, \tl_build_gput_right:Nx, % \@@_build_last:NNn, \@@_build_put:nn, \@@_build_put:nw % } % Similar to \cs{tl_put_right:Nn}, but apply \cs{exp:w} to |#1|. Most @@ -299,32 +299,24 @@ % place without ever becoming a macro argument). We use % \cs{exp_after:wN} rather than some \cs{exp_args:No} to avoid reading % arguments that are likely very long token lists. We use -% \cs[no-index]{cs_(g)set_nopar:Npx} rather than -% \cs[no-index]{tl_(g)set:Nx} partly for the same reason and partly +% \cs[no-index]{cs_(g)set_nopar:Npe} rather than +% \cs[no-index]{tl_(g)set:Ne} partly for the same reason and partly % because the assignments are interrupted by brace tricks, which % implies that the assignment does not simply set the token list to an % |x|-expansion of the second argument. % \begin{macrocode} \cs_new_protected:Npn \tl_build_put_right:Nn #1#2 { - \cs_set_nopar:Npx #1 + \cs_set_nopar:Npe #1 { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 #2 } } } -\cs_new_protected:Npn \tl_build_put_right:Nx #1#2 - { - \cs_set_nopar:Npx #1 - { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 } #2 } - } +\cs_generate_variant:Nn \tl_build_put_right:Nn { Ne , Nx } \cs_new_protected:Npn \tl_build_gput_right:Nn #1#2 { - \cs_gset_nopar:Npx #1 + \cs_gset_nopar:Npe #1 { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 #2 } } } -\cs_new_protected:Npn \tl_build_gput_right:Nx #1#2 - { - \cs_gset_nopar:Npx #1 - { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 } #2 } - } +\cs_generate_variant:Nn \tl_build_gput_right:Nn { Ne , Nx } \cs_new_protected:Npn \@@_build_last:NNn #1#2 { \if_false: { { \fi: @@ -350,8 +342,9 @@ % % \begin{macro} % { -% \tl_build_put_left:Nn, \tl_build_put_left:Nx, -% \tl_build_gput_left:Nn, \tl_build_gput_left:Nx, \@@_build_put_left:NNn +% \tl_build_put_left:Nn, \tl_build_put_left:Ne, \tl_build_put_left:Nx, +% \tl_build_gput_left:Nn, \tl_build_gput_left:Ne, \tl_build_gput_left:Nx, +% \@@_build_put_left:NNn % } % See \cs{tl_build_put_right:Nn} for all the machinery. We could % easily provide \cs[no-index]{tl_build_put_left_right:Nnn}, by just @@ -359,11 +352,11 @@ % |x|-expanding assignment. % \begin{macrocode} \cs_new_protected:Npn \tl_build_put_left:Nn #1 - { \@@_build_put_left:NNn \cs_set_nopar:Npx #1 } -\cs_generate_variant:Nn \tl_build_put_left:Nn { Nx } + { \@@_build_put_left:NNn \cs_set_nopar:Npe #1 } +\cs_generate_variant:Nn \tl_build_put_left:Nn { Ne , Nx } \cs_new_protected:Npn \tl_build_gput_left:Nn #1 - { \@@_build_put_left:NNn \cs_gset_nopar:Npx #1 } -\cs_generate_variant:Nn \tl_build_gput_left:Nn { Nx } + { \@@_build_put_left:NNn \cs_gset_nopar:Npe #1 } +\cs_generate_variant:Nn \tl_build_gput_left:Nn { Ne , Nx } \cs_new_protected:Npn \@@_build_put_left:NNn #1#2#3 { #1 #2 @@ -389,7 +382,7 @@ % trick to wrap all the \meta{right} parts together. % \begin{macrocode} \cs_new_protected:Npn \tl_build_get:NN - { \@@_build_get:NNN \__kernel_tl_set:Nx } + { \@@_build_get:NNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \@@_build_get:NNN #1#2#3 { #1 #3 { \if_false: { \fi: \exp_after:wN \@@_build_get:w #2 } } } \cs_new:Npn \@@_build_get:w #1 \@@_build_last:NNn #2#3#4 @@ -410,16 +403,16 @@ % Get the data then clear the \meta{next~tl} recursively until finding % an empty one. It is perhaps wasteful to repeatedly use % \cs{cs_to_str:N}. The local/global scope is checked by -% \cs{tl_set:Nx} or \cs{tl_gset:Nx}. +% \cs{tl_set:Ne} or \cs{tl_gset:Ne}. % \begin{macrocode} \cs_new_protected:Npn \tl_build_end:N #1 { - \@@_build_get:NNN \__kernel_tl_set:Nx #1 #1 + \@@_build_get:NNN \__kernel_tl_set:Ne #1 #1 \exp_args:Nc \@@_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_clear:N } \cs_new_protected:Npn \tl_build_gend:N #1 { - \@@_build_get:NNN \__kernel_tl_gset:Nx #1 #1 + \@@_build_get:NNN \__kernel_tl_gset:Ne #1 #1 \exp_args:Nc \@@_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_gclear:N } \cs_new_protected:Npn \@@_build_end_loop:NN #1#2 diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx index fc9cdd9e927..4192ec029a3 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -543,7 +543,7 @@ { \seq_gpop:NNF \g_@@_unused_seq \l_@@_internal_a_tl { \@@_begin_aux: } - \exp_args:Nx \@@_chk_group_begin:n + \@@_chk_group_begin:e { \@@_nesting_number:N \l_@@_internal_a_tl } \seq_gpush:NV \g_@@_stack_seq \l_@@_internal_a_tl \exp_args:NV \@@_gset:n \l_@@_internal_a_tl @@ -566,7 +566,7 @@ \seq_gpop:NNTF \g_@@_stack_seq \l_@@_internal_a_tl { \seq_gpush:NV \g_@@_unused_seq \l_@@_internal_a_tl - \exp_args:Nx \@@_chk_group_end:n + \exp_args:Ne \@@_chk_group_end:n { \@@_nesting_number:N \l_@@_internal_a_tl } \@@_select:N \l_@@_internal_a_tl } @@ -575,7 +575,8 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\@@_chk_group_begin:n,\@@_chk_group_end:n} +% \begin{macro} +% {\@@_chk_group_begin:n,\@@_chk_group_begin:e, \@@_chk_group_end:n} % Catcode tables are not allowed to be intermixed with groups, so here % we check that they are properly nested regarding \TeX{} groups. % \cs{@@_chk_group_begin:n} stores the current group level in a stack, @@ -636,10 +637,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_chk_group_begin:n #1 { - \seq_gpush:Nx \g_@@_group_seq + \seq_gpush:Ne \g_@@_group_seq { \int_use:N \tex_currentgrouplevel:D } \cs_set_eq:cN { @@_group_ #1 _chk: } \prg_do_nothing: } +\cs_generate_variant:Nn \@@_chk_group_begin:n { e } \cs_new_protected:Npn \@@_chk_group_end:n #1 { \seq_gpop:NN \g_@@_group_seq \l_@@_internal_b_tl @@ -650,7 +652,7 @@ } { \cs_if_exist_p:c { @@_group_ #1 _chk: } } { - \msg_error:nnx { cctab } { group-mismatch } + \msg_error:nne { cctab } { group-mismatch } { \int_sign:n { \tex_currentgrouplevel:D - \l_@@_internal_b_tl } @@ -675,10 +677,10 @@ \exp_after:wN \exp_after:wN \exp_after:wN \@@_nesting_number:w \exp_after:wN \token_to_str:N #1 } - \use:x + \use:e { \cs_new:Npn \exp_not:N \@@_nesting_number:w - ##1 \tl_to_str:n { g_@@_ } ##2 \tl_to_str:n { _cctab } {##2} + #1 \tl_to_str:n { g_@@_ } #2 \tl_to_str:n { _cctab } {#2} } } % \end{macrocode} @@ -754,13 +756,13 @@ \@@_chk_if_valid_aux:NTF #1 { \prg_return_true: } { - \msg_error:nnx { cctab } { invalid-cctab } + \msg_error:nne { cctab } { invalid-cctab } { \token_to_str:N #1 } \prg_return_false: } } { - \msg_error:nnx { kernel } { command-not-defined } + \msg_error:nne { kernel } { command-not-defined } { \token_to_str:N #1 } \prg_return_false: } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 0eaac6a532c..8fc2f6870bd 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -123,8 +123,8 @@ % % \begin{function}[added = 2014-07-05] % { -% \clist_const:Nn, \clist_const:Nx, -% \clist_const:cn, \clist_const:cx +% \clist_const:Nn, \clist_const:Ne, +% \clist_const:cn, \clist_const:ce % } % \begin{syntax} % \cs{clist_const:Nn} \meta{clist~var} \Arg{comma list} @@ -216,14 +216,14 @@ % % \begin{function}[added = 2011-09-06] % { -% \clist_set:Nn, \clist_set:NV, -% \clist_set:No, \clist_set:Nx, -% \clist_set:cn, \clist_set:cV, -% \clist_set:co, \clist_set:cx, -% \clist_gset:Nn, \clist_gset:NV, -% \clist_gset:No, \clist_gset:Nx, -% \clist_gset:cn, \clist_gset:cV, -% \clist_gset:co, \clist_gset:cx +% \clist_set:Nn, \clist_set:NV, \clist_set:Ne, +% \clist_set:No, +% \clist_set:cn, \clist_set:cV, \clist_set:ce, +% \clist_set:co, +% \clist_gset:Nn, \clist_gset:NV, \clist_gset:Ne, +% \clist_gset:No, +% \clist_gset:cn, \clist_gset:cV, \clist_gset:ce, +% \clist_gset:co % } % \begin{syntax} % \cs{clist_set:Nn} \meta{clist~var} |{|\meta{item_1},\ldots{},\meta{item_n}|}| @@ -241,17 +241,17 @@ % \begin{function}[updated = 2011-09-05] % { % \clist_put_left:Nn, \clist_put_left:NV, -% \clist_put_left:Nv, -% \clist_put_left:No, \clist_put_left:Nx, +% \clist_put_left:Nv, \clist_put_left:Ne, +% \clist_put_left:No, % \clist_put_left:cn, \clist_put_left:cV, -% \clist_put_left:cv, -% \clist_put_left:co, \clist_put_left:cx, +% \clist_put_left:cv, \clist_put_left:ce, +% \clist_put_left:co, % \clist_gput_left:Nn, \clist_gput_left:NV, -% \clist_gput_left:Nv, -% \clist_gput_left:No, \clist_gput_left:Nx, +% \clist_gput_left:Nv, \clist_gput_left:Ne, +% \clist_gput_left:No, % \clist_gput_left:cn, \clist_gput_left:cV, -% \clist_gput_left:cv, -% \clist_gput_left:co, \clist_gput_left:cx +% \clist_gput_left:cv, \clist_gput_left:ce, +% \clist_gput_left:co % } % \begin{syntax} % \cs{clist_put_left:Nn} \meta{clist~var} |{|\meta{item_1},\ldots{},\meta{item_n}|}| @@ -268,17 +268,17 @@ % \begin{function}[updated = 2011-09-05] % { % \clist_put_right:Nn, \clist_put_right:NV, -% \clist_put_right:Nv, -% \clist_put_right:No, \clist_put_right:Nx, +% \clist_put_right:Nv, \clist_put_right:Ne, +% \clist_put_right:No, % \clist_put_right:cn, \clist_put_right:cV, -% \clist_put_right:cv, -% \clist_put_right:co, \clist_put_right:cx, +% \clist_put_right:cv, \clist_put_right:ce, +% \clist_put_right:co, % \clist_gput_right:Nn, \clist_gput_right:NV, -% \clist_gput_right:Nv, -% \clist_gput_right:No, \clist_gput_right:Nx, +% \clist_gput_right:Nv, \clist_gput_right:Ne, +% \clist_gput_right:No, % \clist_gput_right:cn, \clist_gput_right:cV, -% \clist_gput_right:cv, -% \clist_gput_right:co, \clist_gput_right:cx +% \clist_gput_right:cv, \clist_gput_right:ce, +% \clist_gput_right:co % } % \begin{syntax} % \cs{clist_put_right:Nn} \meta{clist~var} |{|\meta{item_1},\ldots{},\meta{item_n}|}| @@ -444,7 +444,7 @@ % \texttt{n}-type comma lists. % % \begin{function}[rEXP, updated = 2012-06-29] -% {\clist_map_function:NN, \clist_map_function:cN, \clist_map_function:nN} +% {\clist_map_function:NN, \clist_map_function:cN, \clist_map_function:nN, \clist_map_function:eN} % \begin{syntax} % \cs{clist_map_function:NN} \meta{clist~var} \meta{function} % \end{syntax} @@ -548,7 +548,7 @@ % \end{function} % % \begin{function}[EXP, added = 2012-07-13] -% {\clist_count:N, \clist_count:c, \clist_count:n} +% {\clist_count:N, \clist_count:c, \clist_count:n, \clist_count:e} % \begin{syntax} % \cs{clist_count:N} \meta{clist~var} % \end{syntax} @@ -706,10 +706,10 @@ % % \begin{function} % { -% \clist_push:Nn, \clist_push:NV, \clist_push:No, \clist_push:Nx, -% \clist_push:cn, \clist_push:cV, \clist_push:co, \clist_push:cx, -% \clist_gpush:Nn, \clist_gpush:NV, \clist_gpush:No, \clist_gpush:Nx, -% \clist_gpush:cn, \clist_gpush:cV, \clist_gpush:co, \clist_gpush:cx +% \clist_push:Nn, \clist_push:NV, \clist_push:No, +% \clist_push:cn, \clist_push:cV, \clist_push:co, +% \clist_gpush:Nn, \clist_gpush:NV, \clist_gpush:No, +% \clist_gpush:cn, \clist_gpush:cV, \clist_gpush:co, % } % \begin{syntax} % \cs{clist_push:Nn} \meta{clist~var} \Arg{items} @@ -722,7 +722,7 @@ % \section{Using a single item} % % \begin{function}[added = 2014-07-17, EXP] -% {\clist_item:Nn, \clist_item:cn, \clist_item:nn} +% {\clist_item:Nn, \clist_item:cn, \clist_item:nn, \clist_item:en} % \begin{syntax} % \cs{clist_item:Nn} \meta{clist~var} \Arg{int expr} % \end{syntax} @@ -984,15 +984,16 @@ % % \begin{macro} % { -% \clist_const:Nn, \clist_const:cn, -% \clist_const:Nx, \clist_const:cx +% \clist_const:Nn, \clist_const:Ne, \clist_const:Nx, +% \clist_const:cn, \clist_const:ce, \clist_const:cx % } % Creating and initializing a constant comma list is done by % sanitizing all items (stripping spaces and braces). % \begin{macrocode} \cs_new_protected:Npn \clist_const:Nn #1#2 - { \tl_const:Nx #1 { \@@_sanitize:n {#2} } } -\cs_generate_variant:Nn \clist_const:Nn { c , Nx , cx } + { \tl_const:Ne #1 { \@@_sanitize:n {#2} } } +\cs_generate_variant:Nn \clist_const:Nn { Ne , c , ce } +\cs_generate_variant:Nn \clist_const:Nn { Nx , cx } % \end{macrocode} % \end{macro} % @@ -1066,9 +1067,9 @@ % in the case of an empty comma-list. % \begin{macrocode} \cs_new_protected:Npn \clist_set_from_seq:NN - { \@@_set_from_seq:NNNN \clist_clear:N \__kernel_tl_set:Nx } + { \@@_set_from_seq:NNNN \clist_clear:N \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gset_from_seq:NN - { \@@_set_from_seq:NNNN \clist_gclear:N \__kernel_tl_gset:Nx } + { \@@_set_from_seq:NNNN \clist_gclear:N \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_set_from_seq:NNNN #1#2#3#4 { \seq_if_empty:NTF #4 @@ -1107,9 +1108,9 @@ % a little work to do. % \begin{macrocode} \cs_new_protected:Npn \clist_concat:NNN - { \@@_concat:NNNN \__kernel_tl_set:Nx } + { \@@_concat:NNNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gconcat:NNN - { \@@_concat:NNNN \__kernel_tl_gset:Nx } + { \@@_concat:NNNN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_concat:NNNN #1#2#3#4 { #1 #2 @@ -1140,47 +1141,49 @@ % % \begin{macro} % { -% \clist_set:Nn, \clist_set:NV, -% \clist_set:No, \clist_set:Nx, -% \clist_set:cn, \clist_set:cV, -% \clist_set:co, \clist_set:cx +% \clist_set:Nn, \clist_set:NV, \clist_set:Ne, +% \clist_set:No, \clist_set:Nx, +% \clist_set:cn, \clist_set:cV, \clist_set:ce, +% \clist_set:co, \clist_set:cx % } % \begin{macro} % { -% \clist_gset:Nn, \clist_gset:NV, +% \clist_gset:Nn, \clist_gset:NV, \clist_gset:Ne, % \clist_gset:No, \clist_gset:Nx, -% \clist_gset:cn, \clist_gset:cV, -% \clist_gset:co, \clist_gset:cx +% \clist_gset:cn, \clist_gset:cV, \clist_gset:ce, +% \clist_gset:co, \clist_gset:cx, % } % \begin{macrocode} \cs_new_protected:Npn \clist_set:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \@@_sanitize:n {#2} } } + { \__kernel_tl_set:Ne #1 { \@@_sanitize:n {#2} } } \cs_new_protected:Npn \clist_gset:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \@@_sanitize:n {#2} } } -\cs_generate_variant:Nn \clist_set:Nn { NV , No , Nx , c , cV , co , cx } -\cs_generate_variant:Nn \clist_gset:Nn { NV , No , Nx , c , cV , co , cx } + { \__kernel_tl_gset:Ne #1 { \@@_sanitize:n {#2} } } +\cs_generate_variant:Nn \clist_set:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \clist_set:Nn { No , Nx , co , cx } +\cs_generate_variant:Nn \clist_gset:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \clist_gset:Nn { No , Nx , co , cx } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro} % { -% \clist_put_left:Nn, \clist_put_left:NV, -% \clist_put_left:Nv, -% \clist_put_left:No, \clist_put_left:Nx, -% \clist_put_left:cn, \clist_put_left:cV, -% \clist_put_left:cv, -% \clist_put_left:co, \clist_put_left:cx +% \clist_put_left:Nn, \clist_put_left:NV, +% \clist_put_left:Nv, \clist_put_left:Ne, +% \clist_put_left:No, \clist_put_left:Nx, +% \clist_put_left:cn, \clist_put_left:cV, +% \clist_put_left:cv, \clist_put_left:ce, +% \clist_put_left:co, \clist_put_left:cx, % } % \UnitTested % \begin{macro} % { % \clist_gput_left:Nn, \clist_gput_left:NV, -% \clist_gput_left:Nv, +% \clist_gput_left:Nv, \clist_gput_left:Ne, % \clist_gput_left:No, \clist_gput_left:Nx, % \clist_gput_left:cn, \clist_gput_left:cV, -% \clist_gput_left:cv, -% \clist_gput_left:co, \clist_gput_left:cx +% \clist_gput_left:cv, \clist_gput_left:ce, +% \clist_gput_left:co, \clist_gput_left:cx, % } % \UnitTested % \begin{macro}{\@@_put_left:NNNn} @@ -1197,10 +1200,10 @@ #2 \l_@@_internal_clist {#4} #1 #3 \l_@@_internal_clist #3 } -\cs_generate_variant:Nn \clist_put_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_put_left:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \clist_gput_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_gput_left:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \clist_put_left:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_put_left:Nn { No , Nx , co , cx } +\cs_generate_variant:Nn \clist_gput_left:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_gput_left:Nn { No , Nx , co , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1209,21 +1212,21 @@ % \begin{macro} % { % \clist_put_right:Nn, \clist_put_right:NV, -% \clist_put_right:Nv, +% \clist_put_right:Nv, \clist_put_right:Ne, % \clist_put_right:No, \clist_put_right:Nx, % \clist_put_right:cn, \clist_put_right:cV, -% \clist_put_right:cv, +% \clist_put_right:cv, \clist_put_right:ce, % \clist_put_right:co, \clist_put_right:cx % } % \UnitTested % \begin{macro} % { % \clist_gput_right:Nn, \clist_gput_right:NV, -% \clist_gput_right:Nv, +% \clist_gput_right:Nv, \clist_gput_right:Ne, % \clist_gput_right:No, \clist_gput_right:Nx, % \clist_gput_right:cn, \clist_gput_right:cV, -% \clist_gput_right:cv, -% \clist_gput_right:co, \clist_gput_right:cx +% \clist_gput_right:cv, \clist_gput_right:ce, +% \clist_gput_right:cx, \clist_gput_right:co % } % \UnitTested % \begin{macro}{\@@_put_right:NNNn} @@ -1237,10 +1240,14 @@ #2 \l_@@_internal_clist {#4} #1 #3 #3 \l_@@_internal_clist } -\cs_generate_variant:Nn \clist_put_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_put_right:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \clist_gput_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_gput_right:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \clist_put_right:Nn + { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_put_right:Nn + { No , Nx , co , cx } +\cs_generate_variant:Nn \clist_gput_right:Nn + { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_gput_right:Nn + { No , Nx , co , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1288,9 +1295,9 @@ % result can safely be an empty comma list. % \begin{macrocode} \cs_new_protected:Npn \clist_pop:NN - { \@@_pop:NNN \__kernel_tl_set:Nx } + { \@@_pop:NNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gpop:NN - { \@@_pop:NNN \__kernel_tl_gset:Nx } + { \@@_pop:NNN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_pop:NNN #1#2#3 { \if_meaning:w #2 \c_empty_clist @@ -1335,9 +1342,9 @@ } \prg_generate_conditional_variant:Nnn \clist_get:NN { c } { T , F , TF } \prg_new_protected_conditional:Npnn \clist_pop:NN #1#2 { T , F , TF } - { \@@_pop_TF:NNN \__kernel_tl_set:Nx #1 #2 } + { \@@_pop_TF:NNN \__kernel_tl_set:Ne #1 #2 } \prg_new_protected_conditional:Npnn \clist_gpop:NN #1#2 { T , F , TF } - { \@@_pop_TF:NNN \__kernel_tl_gset:Nx #1 #2 } + { \@@_pop_TF:NNN \__kernel_tl_gset:Ne #1 #2 } \cs_new_protected:Npn \@@_pop_TF:NNN #1#2#3 { \if_meaning:w #2 \c_empty_clist @@ -1357,32 +1364,20 @@ % % \begin{macro}{ % \clist_push:Nn, \clist_push:NV, \clist_push:No, \clist_push:Nx, -% \clist_push:cn, \clist_push:cV, \clist_push:co, \clist_push:cx +% \clist_push:cn, \clist_push:cV, \clist_push:co, \clist_push:cx, % } % \UnitTested % \begin{macro}{ % \clist_gpush:Nn, \clist_gpush:NV, \clist_gpush:No, \clist_gpush:Nx, -% \clist_gpush:cn, \clist_gpush:cV, \clist_gpush:co, \clist_gpush:cx +% \clist_gpush:cn, \clist_gpush:cV, \clist_gpush:co, \clist_gpush:cx, % } % \UnitTested % Pushing to a comma list is the same as adding on the left. % \begin{macrocode} \cs_new_eq:NN \clist_push:Nn \clist_put_left:Nn -\cs_new_eq:NN \clist_push:NV \clist_put_left:NV -\cs_new_eq:NN \clist_push:No \clist_put_left:No -\cs_new_eq:NN \clist_push:Nx \clist_put_left:Nx -\cs_new_eq:NN \clist_push:cn \clist_put_left:cn -\cs_new_eq:NN \clist_push:cV \clist_put_left:cV -\cs_new_eq:NN \clist_push:co \clist_put_left:co -\cs_new_eq:NN \clist_push:cx \clist_put_left:cx +\cs_generate_variant:Nn \clist_push:Nn { NV , No , Nx , c , cV , co , cx } \cs_new_eq:NN \clist_gpush:Nn \clist_gput_left:Nn -\cs_new_eq:NN \clist_gpush:NV \clist_gput_left:NV -\cs_new_eq:NN \clist_gpush:No \clist_gput_left:No -\cs_new_eq:NN \clist_gpush:Nx \clist_gput_left:Nx -\cs_new_eq:NN \clist_gpush:cn \clist_gput_left:cn -\cs_new_eq:NN \clist_gpush:cV \clist_gput_left:cV -\cs_new_eq:NN \clist_gpush:co \clist_gput_left:co -\cs_new_eq:NN \clist_gpush:cx \clist_gput_left:cx +\cs_generate_variant:Nn \clist_gpush:Nn { NV , No , Nx , c , cV , co , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1415,7 +1410,7 @@ { \clist_if_in:NnF \l_@@_internal_remove_clist {##1} { - \tl_put_right:Nx \l_@@_internal_remove_clist + \tl_put_right:Ne \l_@@_internal_remove_clist { \clist_if_empty:NF \l_@@_internal_remove_clist { , } \@@_if_wrap:nTF {##1} { \exp_not:n { {##1} } } { \exp_not:n {##1} } @@ -1478,9 +1473,9 @@ % the second step removes it. % \begin{macrocode} \cs_new_protected:Npn \clist_remove_all:Nn - { \@@_remove_all:NNNn \clist_set_from_seq:NN \__kernel_tl_set:Nx } + { \@@_remove_all:NNNn \clist_set_from_seq:NN \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gremove_all:Nn - { \@@_remove_all:NNNn \clist_gset_from_seq:NN \__kernel_tl_gset:Nx } + { \@@_remove_all:NNNn \clist_gset_from_seq:NN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_remove_all:NNNn #1#2#3#4 { \@@_if_wrap:nTF {#4} @@ -1534,9 +1529,9 @@ % \texttt{N}-type comma lists, but the slow-down is not too bad. % \begin{macrocode} \cs_new_protected:Npn \clist_reverse:N #1 - { \__kernel_tl_set:Nx #1 { \exp_args:No \clist_reverse:n {#1} } } + { \__kernel_tl_set:Ne #1 { \exp_args:No \clist_reverse:n {#1} } } \cs_new_protected:Npn \clist_greverse:N #1 - { \__kernel_tl_gset:Nx #1 { \exp_args:No \clist_reverse:n {#1} } } + { \__kernel_tl_gset:Ne #1 { \exp_args:No \clist_reverse:n {#1} } } \cs_generate_variant:Nn \clist_reverse:N { c } \cs_generate_variant:Nn \clist_greverse:N { c } % \end{macrocode} @@ -1657,7 +1652,7 @@ { \@@_if_wrap:nTF {#2} { - \cs_set:Npx \@@_tmp:w ##1 + \cs_set:Npe \@@_tmp:w ##1 { \exp_not:N \tl_if_eq:nnT {##1} \exp_not:n @@ -1726,7 +1721,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\clist_map_function:nN} +% \begin{macro}{\clist_map_function:nN, \clist_map_function:eN} % \UnitTested % \begin{macro}{\@@_map_function_n:Nn} % \begin{macro}{\@@_map_unbrace:wn} @@ -1745,6 +1740,7 @@ \s_@@_stop \clist_map_break: , \prg_break_point:Nn \clist_map_break: { } } +\cs_generate_variant:Nn \clist_map_function:nN { e } \cs_new:Npn \@@_map_function_n:Nn #1 #2 { \@@_use_none_delimit_by_s_stop:w #2 \s_@@_stop @@ -1893,7 +1889,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\clist_count:N, \clist_count:c, \clist_count:n} +% \begin{macro}{\clist_count:N, \clist_count:c, \clist_count:n, \clist_count:e} % \begin{macro}{\@@_count:n} % \begin{macro}{\@@_count:w} % Counting the items in a comma list is done using the same approach as for @@ -1933,6 +1929,7 @@ } } \exp_args:No \@@_tmp:w \c_space_tl +\cs_generate_variant:Nn \clist_count:n { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -2110,7 +2107,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\clist_item:nn} +% \begin{macro}{\clist_item:nn, \clist_item:en} % \begin{macro}{ % \@@_item_n:nw, % \@@_item_n_loop:nw, @@ -2130,6 +2127,7 @@ {#1} \@@_item_n:nw } +\cs_generate_variant:Nn \clist_item:nn { e } \cs_new:Npn \@@_item_n:nw #1 { \@@_item_n_loop:nw {#1} \prg_do_nothing: } \cs_new:Npn \@@_item_n_loop:nw #1 #2, @@ -2188,9 +2186,9 @@ % |#2| serving as a dummy code to prevent a check performed by this % auxiliary. % \begin{macrocode} -\cs_new_protected:Npn \clist_show:N { \@@_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \clist_show:N { \@@_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \clist_show:N { c } -\cs_new_protected:Npn \clist_log:N { \@@_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \clist_log:N { \@@_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \clist_log:N { c } \cs_new_protected:Npn \@@_show:NN #1#2 { @@ -2205,7 +2203,7 @@ { } { } } { - \msg_error:nnxx { clist } { non-clist } + \msg_error:nnee { clist } { non-clist } { \token_to_str:N #2 } { \tl_to_str:N #2 } } } @@ -2217,8 +2215,8 @@ % A variant of the above: no existence check, empty first argument for % the message. % \begin{macrocode} -\cs_new_protected:Npn \clist_show:n { \@@_show:Nn \msg_show:nnxxxx } -\cs_new_protected:Npn \clist_log:n { \@@_show:Nn \msg_log:nnxxxx } +\cs_new_protected:Npn \clist_show:n { \@@_show:Nn \msg_show:nneeee } +\cs_new_protected:Npn \clist_log:n { \@@_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \@@_show:Nn #1#2 { #1 { clist } { show } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index 2269c6c6869..94824400de0 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -602,7 +602,7 @@ \coffin_if_exist:NTF #1 { #2 } { - \msg_error:nnx { coffin } { unknown } + \msg_error:nne { coffin } { unknown } { \token_to_str:N #1 } } } @@ -736,7 +736,7 @@ } #5 #1 \vbox_set_top:Nn \l_@@_internal_box { \vbox_unpack:N #1 } - \@@_set_pole:Nnx #1 { T } + \@@_set_pole:Nne #1 { T } { { 0pt } { @@ -749,7 +749,7 @@ \box_clear:N \l_@@_internal_box } } -\cs_new_protected:Npx \@@_set_vertical_aux: +\cs_new_protected:Npe \@@_set_vertical_aux: { \bool_lazy_and:nnT { \cs_if_exist_p:N \fmtname } @@ -834,7 +834,7 @@ #5 #6 #1 \vbox_set_top:Nn \l_@@_internal_box { \vbox_unpack:N #1 } - \@@_set_pole:Nnx #1 { T } + \@@_set_pole:Nne #1 { T } { { 0pt } { @@ -949,7 +949,7 @@ \prop_get:cnNF { coffin ~ \@@_to_value:N #1 ~ poles } {#2} #3 { - \msg_error:nnxx { coffin } { unknown-pole } + \msg_error:nnee { coffin } { unknown-pole } { \exp_not:n {#2} } { \token_to_str:N #1 } \tl_set:Nn #3 { { 0pt } { 0pt } { 0pt } { 0pt } } } @@ -989,17 +989,17 @@ % \coffin_gset_vertical_pole:Nnn, \coffin_gset_vertical_pole:cnn % } % \begin{macro}{\@@_set_vertical_pole:NnnN} -% \begin{macro}{\@@_set_pole:Nnn, \@@_set_pole:Nnx} +% \begin{macro}{\@@_set_pole:Nnn, \@@_set_pole:Nne} % Setting the pole of a coffin at the user/designer level requires a % bit more care. The idea here is to provide a reasonable interface to % the system, then to do the setting with full expansion. The % three-argument version is used internally to do a direct setting. % \begin{macrocode} \cs_new_protected:Npn \coffin_set_horizontal_pole:Nnn #1#2#3 - { \@@_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_put:cnx } + { \@@_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_put:cne } \cs_generate_variant:Nn \coffin_set_horizontal_pole:Nnn { c } \cs_new_protected:Npn \coffin_gset_horizontal_pole:Nnn #1#2#3 - { \@@_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_gput:cnx } + { \@@_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_gput:cne } \cs_generate_variant:Nn \coffin_gset_horizontal_pole:Nnn { c } \cs_new_protected:Npn \@@_set_horizontal_pole:NnnN #1#2#3#4 { @@ -1014,10 +1014,10 @@ } } \cs_new_protected:Npn \coffin_set_vertical_pole:Nnn #1#2#3 - { \@@_set_vertical_pole:NnnN #1 {#2} {#3} \prop_put:cnx } + { \@@_set_vertical_pole:NnnN #1 {#2} {#3} \prop_put:cne } \cs_generate_variant:Nn \coffin_set_vertical_pole:Nnn { c } \cs_new_protected:Npn \coffin_gset_vertical_pole:Nnn #1#2#3 - { \@@_set_vertical_pole:NnnN #1 {#2} {#3} \prop_gput:cnx } + { \@@_set_vertical_pole:NnnN #1 {#2} {#3} \prop_gput:cne } \cs_generate_variant:Nn \coffin_gset_vertical_pole:Nnn { c } \cs_new_protected:Npn \@@_set_vertical_pole:NnnN #1#2#3#4 { @@ -1036,7 +1036,7 @@ \prop_put:cnn { coffin ~ \@@_to_value:N #1 ~ poles } {#2} {#3} } -\cs_generate_variant:Nn \@@_set_pole:Nnn { Nnx } +\cs_generate_variant:Nn \@@_set_pole:Nnn { Nne } % \end{macrocode} % \end{macro} % \end{macro} @@ -1070,9 +1070,9 @@ % of the underlying \TeX{} box. % \begin{macrocode} \cs_new_protected:Npn \@@_update_corners:N #1 - { \@@_update_corners:NN #1 \prop_put:Nnx } + { \@@_update_corners:NN #1 \prop_put:Nne } \cs_new_protected:Npn \@@_gupdate_corners:N #1 - { \@@_update_corners:NN #1 \prop_gput:Nnx } + { \@@_update_corners:NN #1 \prop_gput:Nne } \cs_new_protected:Npn \@@_update_corners:NN #1#2 { \exp_args:Nc \@@_update_corners:NNN @@ -1115,9 +1115,9 @@ % coffins. % \begin{macrocode} \cs_new_protected:Npn \@@_update_poles:N #1 - { \@@_update_poles:NN #1 \prop_put:Nnx } + { \@@_update_poles:NN #1 \prop_put:Nne } \cs_new_protected:Npn \@@_gupdate_poles:N #1 - { \@@_update_poles:NN #1 \prop_gput:Nnx } + { \@@_update_poles:NN #1 \prop_gput:Nne } \cs_new_protected:Npn \@@_update_poles:NN #1#2 { \exp_args:Nc \@@_update_poles:NNN @@ -1277,7 +1277,7 @@ % more complexity, we now work out both slopes and pass to an auxiliary. % \begin{macrocode} { - \use:x + \use:e { \@@_calculate_intersection:nnnnnn { \dim_to_fp:n {#4} / \dim_to_fp:n {#3} } @@ -1494,17 +1494,17 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_set_bounding:N #1 { - \prop_put:Nnx \l_@@_bounding_prop { tl } + \prop_put:Nne \l_@@_bounding_prop { tl } { { 0pt } { \dim_eval:n { \box_ht:N #1 } } } - \prop_put:Nnx \l_@@_bounding_prop { tr } + \prop_put:Nne \l_@@_bounding_prop { tr } { { \dim_eval:n { \box_wd:N #1 } } { \dim_eval:n { \box_ht:N #1 } } } \dim_set:Nn \l_@@_internal_dim { -\box_dp:N #1 } - \prop_put:Nnx \l_@@_bounding_prop { bl } + \prop_put:Nne \l_@@_bounding_prop { bl } { { 0pt } { \dim_use:N \l_@@_internal_dim } } - \prop_put:Nnx \l_@@_bounding_prop { br } + \prop_put:Nne \l_@@_bounding_prop { br } { { \dim_eval:n { \box_wd:N #1 } } { \dim_use:N \l_@@_internal_dim } @@ -1523,13 +1523,13 @@ \cs_new_protected:Npn \@@_rotate_bounding:nnn #1#2#3 { \@@_rotate_vector:nnNN {#2} {#3} \l_@@_x_dim \l_@@_y_dim - \prop_put:Nnx \l_@@_bounding_prop {#1} + \prop_put:Nne \l_@@_bounding_prop {#1} { { \dim_use:N \l_@@_x_dim } { \dim_use:N \l_@@_y_dim } } } \cs_new_protected:Npn \@@_rotate_corner:Nnnn #1#2#3#4 { \@@_rotate_vector:nnNN {#3} {#4} \l_@@_x_dim \l_@@_y_dim - \prop_put:Nnx \l_@@_corners_prop {#2} + \prop_put:Nne \l_@@_corners_prop {#2} { { \dim_use:N \l_@@_x_dim } { \dim_use:N \l_@@_y_dim } } } % \end{macrocode} @@ -1546,7 +1546,7 @@ \@@_rotate_vector:nnNN {#3} {#4} \l_@@_x_dim \l_@@_y_dim \@@_rotate_vector:nnNN {#5} {#6} \l_@@_x_prime_dim \l_@@_y_prime_dim - \prop_put:Nnx \l_@@_poles_prop {#2} + \prop_put:Nne \l_@@_poles_prop {#2} { { \dim_use:N \l_@@_x_dim } { \dim_use:N \l_@@_y_dim } { \dim_use:N \l_@@_x_prime_dim } @@ -1647,7 +1647,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_shift_corner:Nnnn #1#2#3#4 { - \prop_put:Nnx \l_@@_corners_prop {#2} + \prop_put:Nne \l_@@_corners_prop {#2} { { \dim_eval:n { #3 - \l_@@_left_corner_dim } } { \dim_eval:n { #4 - \l_@@_bottom_corner_dim } } @@ -1655,7 +1655,7 @@ } \cs_new_protected:Npn \@@_shift_pole:Nnnnnn #1#2#3#4#5#6 { - \prop_put:Nnx \l_@@_poles_prop {#2} + \prop_put:Nne \l_@@_poles_prop {#2} { { \dim_eval:n { #3 - \l_@@_left_corner_dim } } { \dim_eval:n { #4 - \l_@@_bottom_corner_dim } } @@ -1821,13 +1821,13 @@ \cs_new_protected:Npn \@@_scale_corner:Nnnn #1#2#3#4 { \@@_scale_vector:nnNN {#3} {#4} \l_@@_x_dim \l_@@_y_dim - \prop_put:Nnx \l_@@_corners_prop {#2} + \prop_put:Nne \l_@@_corners_prop {#2} { { \dim_use:N \l_@@_x_dim } { \dim_use:N \l_@@_y_dim } } } \cs_new_protected:Npn \@@_scale_pole:Nnnnnn #1#2#3#4#5#6 { \@@_scale_vector:nnNN {#3} {#4} \l_@@_x_dim \l_@@_y_dim - \prop_put:Nnx \l_@@_poles_prop {#2} + \prop_put:Nne \l_@@_poles_prop {#2} { { \dim_use:N \l_@@_x_dim } { \dim_use:N \l_@@_y_dim } {#5} {#6} @@ -1844,14 +1844,14 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_x_shift_corner:Nnnn #1#2#3#4 { - \prop_put:Nnx \l_@@_corners_prop {#2} + \prop_put:Nne \l_@@_corners_prop {#2} { { \dim_eval:n { #3 + \box_wd:N #1 } } {#4} } } \cs_new_protected:Npn \@@_x_shift_pole:Nnnnnn #1#2#3#4#5#6 { - \prop_put:Nnx \l_@@_poles_prop {#2} + \prop_put:Nne \l_@@_poles_prop {#2} { { \dim_eval:n { #3 + \box_wd:N #1 } } {#4} {#5} {#6} @@ -2068,7 +2068,7 @@ \tl_if_in:nnTF {#2} { - } { \tl_set:Nn \l_@@_internal_tl { {#2} } } { \tl_set:Nn \l_@@_internal_tl { { #1 - #2 } } } - \exp_last_unbraced:NNo \@@_set_pole:Nnx \l_@@_aligned_coffin + \exp_last_unbraced:NNo \@@_set_pole:Nne \l_@@_aligned_coffin { \l_@@_internal_tl } { { \dim_use:N \l_@@_x_dim } { \dim_use:N \l_@@_y_dim } @@ -2092,7 +2092,7 @@ } \cs_new_protected:Npn \@@_offset_corner:Nnnnn #1#2#3#4#5#6 { - \prop_put:cnx + \prop_put:cne { coffin ~ \@@_to_value:N \l_@@_aligned_coffin \c_space_tl corners @@ -2130,11 +2130,11 @@ { \dim_compare:nNnTF {#2} < {#6} { - \@@_set_pole:Nnx #9 { T } + \@@_set_pole:Nne #9 { T } { { 0pt } {#6} { 1000pt } { 0pt } } } { - \@@_set_pole:Nnx #9 { T } + \@@_set_pole:Nne #9 { T } { { 0pt } {#2} { 1000pt } { 0pt } } } } @@ -2142,11 +2142,11 @@ { \dim_compare:nNnTF {#2} < {#6} { - \@@_set_pole:Nnx #9 { B } + \@@_set_pole:Nne #9 { B } { { 0pt } {#2} { 1000pt } { 0pt } } } { - \@@_set_pole:Nnx #9 { B } + \@@_set_pole:Nne #9 { B } { { 0pt } {#6} { 1000pt } { 0pt } } } } @@ -2490,10 +2490,10 @@ % structure then the code complains. % \begin{macrocode} \cs_new_protected:Npn \coffin_show_structure:N - { \@@_show_structure:NN \msg_show:nnxxxx } + { \@@_show_structure:NN \msg_show:nneeee } \cs_generate_variant:Nn \coffin_show_structure:N { c } \cs_new_protected:Npn \coffin_log_structure:N - { \@@_show_structure:NN \msg_log:nnxxxx } + { \@@_show_structure:NN \msg_log:nneeee } \cs_generate_variant:Nn \coffin_log_structure:N { c } \cs_new_protected:Npn \@@_show_structure:NN #1#2 { @@ -2525,8 +2525,8 @@ % } % Essentially a combination of \cs{coffin_show_structure:N} and % \cs{box_show:Nnn}, but we need to avoid having two prompts, so we -% use \cs{msg_term:nnxxxx} instead of -% \cs{msg_show:nnxxxx} in the |show| case. +% use \cs{msg_term:nneeee} instead of +% \cs{msg_show:nneeee} in the |show| case. % \begin{macrocode} \cs_new_protected:Npn \coffin_show:N #1 { \coffin_show:Nnn #1 \c_max_int \c_max_int } @@ -2535,10 +2535,10 @@ { \coffin_log:Nnn #1 \c_max_int \c_max_int } \cs_generate_variant:Nn \coffin_log:N { c } \cs_new_protected:Npn \coffin_show:Nnn - { \@@_show:NNNnn \msg_term:nnxxxx \box_show:Nnn } + { \@@_show:NNNnn \msg_term:nneeee \box_show:Nnn } \cs_generate_variant:Nn \coffin_show:Nnn { c } \cs_new_protected:Npn \coffin_log:Nnn - { \@@_show:NNNnn \msg_log:nnxxxx \box_show:Nnn } + { \@@_show:NNNnn \msg_log:nneeee \box_show:Nnn } \cs_generate_variant:Nn \coffin_log:Nnn { c } \cs_new_protected:Npn \@@_show:NNNnn #1#2#3#4#5 { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx index 1453001a2ae..3d225b2d223 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -720,7 +720,7 @@ \cs_generate_variant:Nn \exp_last_unbraced:Nf { c } \cs_new_protected:Npn \@@_convert:nnnN #1#2#3#4 { - \tl_set:Nx #4 + \tl_set:Ne #4 { \cs_if_exist_use:cTF { @@_convert_ #1 _ #2 :w } { #3 \s_@@_stop } @@ -850,11 +850,11 @@ % otherwise expands, then starts working through the expression itself. % At the end, we apply the payload. % \begin{macrocode} -\cs_new_protected:Npx \@@_parse:nN #1#2 +\cs_new_protected:Npe \@@_parse:nN #1#2 { - \tl_set:Nx \exp_not:c { l_@@_named_ . _tl } + \tl_set:Ne \exp_not:c { l_@@_named_ . _tl } { \exp_not:N \@@_model:N \exp_not:N \l_@@_current_tl } - \prop_put:NVx \exp_not:c { l_@@_named_ . _prop } + \prop_put:NVe \exp_not:c { l_@@_named_ . _prop } \exp_not:c { l_@@_named_ . _tl } { \exp_not:N \@@_values:N \exp_not:N \l_@@_current_tl } \exp_not:N \exp_args:Ne \exp_not:N \@@_parse_aux:nN @@ -889,14 +889,14 @@ \prop_get:cnNTF { l_@@_named_ #3 _prop } {#1} \l_@@_value_tl - { \tl_set:Nx #2 { {#1} { \l_@@_value_tl } } } + { \tl_set:Ne #2 { {#1} { \l_@@_value_tl } } } { \tl_set_eq:Nc \l_@@_model_tl { l_@@_named_ #3 _tl } \prop_get:cVN { l_@@_named_ #3 _prop } \l_@@_model_tl \l_@@_value_tl \@@_convert:nnN \l_@@_model_tl {#1} \l_@@_value_tl - \tl_set:Nx #2 + \tl_set:Ne #2 { {#1} { \l_@@_value_tl } @@ -926,7 +926,7 @@ \group_begin: \@@_extract:nNN {#2} \l_@@_model_tl \l_@@_value_tl \@@_parse_loop:w #3 ! ! ! ! \s_@@_stop - \tl_set:Nx \l_@@_internal_tl + \tl_set:Ne \l_@@_internal_tl { { \l_@@_model_tl } { \l_@@_value_tl } } \exp_args:NNNV \group_end: \tl_set:Nn #1 \l_@@_internal_tl @@ -951,7 +951,7 @@ { \fp_compare_p:nNn {#1} > { 0 } } { \fp_compare_p:nNn {#1} < { 100 } } { - \use:x + \use:e { \@@_parse_loop:nn {#1} { \tl_if_blank:nTF {#2} { white } {#2} } @@ -1004,7 +1004,7 @@ { \@@_parse_gray:n {#2} } { \@@_parse_std:n {#2} } } - \tl_set:Nx \l_@@_value_tl + \tl_set:Ne \l_@@_value_tl { \@@_parse_mix:NVVn \l_@@_model_tl \l_@@_value_tl \l_@@_next_value_tl {#1} @@ -1400,7 +1400,7 @@ \@@_convert:VVN \l_@@_model_tl \l_color_fixed_model_tl \l_@@_value_tl } - \tl_set:Nx #1 + \tl_set:Ne #1 { { \l_color_fixed_model_tl } { \l_@@_value_tl } } } } @@ -1419,12 +1419,12 @@ % will therefore always be available. The finalisation is separate from the % main function so it can also be applied to \emph{e.g.}~page color. % \begin{macrocode} -\cs_new_protected:Npx \@@_finalise_current: +\cs_new_protected:Npe \@@_finalise_current: { - \tl_set:Nx \exp_not:c { l_@@_named_ . _tl } + \tl_set:Ne \exp_not:c { l_@@_named_ . _tl } { \exp_not:N \@@_model:N \exp_not:N \l_@@_current_tl } \prop_clear:N \exp_not:c { l_@@_named_ . _prop } - \prop_put:NVx \exp_not:c { l_@@_named_ . _prop } + \prop_put:NVe \exp_not:c { l_@@_named_ . _prop } \exp_not:c { l_@@_named_ . _tl } { \exp_not:N \@@_values:N \exp_not:N \l_@@_current_tl } } @@ -1488,7 +1488,7 @@ { \cs_if_exist:cTF { @@_parse_model_ #1 :w } { - \tl_set:Nx #3 + \tl_set:Ne #3 { \use:c { @@_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s_@@_stop } } { \msg_error:nnn { color } { unknown-model } {#1} } @@ -1496,7 +1496,7 @@ \cs_new_protected:Npn \@@_select_swap:Nnn #1#2#3 { \@@_convert:nVnN {#2} \l_color_fixed_model_tl {#3} \l_@@_value_tl - \tl_set:Nx #1 + \tl_set:Ne #1 { { \l_color_fixed_model_tl } { \l_@@_value_tl } } } % \end{macrocode} @@ -1781,10 +1781,10 @@ { \@@_parse:nN {#2} \l_@@_named_tl \tl_clear_new:c { l_@@_named_ #1 _tl } - \tl_set:cx { l_@@_named_ #1 _tl } + \tl_set:ce { l_@@_named_ #1 _tl } { \@@_model:N \l_@@_named_tl } \prop_clear_new:c { l_@@_named_ #1 _prop } - \prop_put:cvx { l_@@_named_ #1 _prop } { l_@@_named_ #1 _tl } + \prop_put:cve { l_@@_named_ #1 _prop } { l_@@_named_ #1 _tl } { \@@_values:N \l_@@_named_tl } \@@_set:nnw {#1} {#2} #2 ! \s_@@_stop } @@ -1811,7 +1811,7 @@ \@@_parse:nN {#2} \l_@@_internal_tl \exp_args:NNNV \group_end: \tl_set:Nn \l_@@_internal_tl \l_@@_internal_tl - \prop_put:cxx { l_@@_named_ #1 _prop } + \prop_put:cee { l_@@_named_ #1 _prop } { \@@_model:N \l_@@_internal_tl } { \@@_values:N \l_@@_internal_tl } } @@ -1828,16 +1828,16 @@ {#1} {#3} } } -\cs_new_protected:Npx \@@_set_aux:nnn #1#2#3 +\cs_new_protected:Npe \@@_set_aux:nnn #1#2#3 { \exp_not:N \@@_set_colon:nnw {#2} {#3} #1 \c_colon_str \c_colon_str \exp_not:N \s_@@_stop } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \@@_set_colon:nnw - ##1##2 ##3 \c_colon_str ##4 \c_colon_str - ##5 \exp_not:N \s_@@_stop + #1#2 #3 \c_colon_str #4 \c_colon_str + #5 \exp_not:N \s_@@_stop } { \tl_if_blank:nTF {#4} @@ -1851,10 +1851,10 @@ \tl_if_blank:nF {#2} { \@@_select:nnN {#2} {#4} \l_@@_named_tl - \tl_set:Nx \l_@@_internal_tl { \@@_model:N \l_@@_named_tl } + \tl_set:Ne \l_@@_internal_tl { \@@_model:N \l_@@_named_tl } \tl_if_empty:cT { l_@@_named_ #1 _tl } { \tl_set_eq:cN { l_@@_named_ #1 _tl } \l_@@_internal_tl } - \prop_put:cVx { l_@@_named_ #1 _prop } \l_@@_internal_tl + \prop_put:cVe { l_@@_named_ #1 _prop } \l_@@_internal_tl { \@@_values:N \l_@@_named_tl } \@@_set_loop:nw {#1} #3 \s_@@_mark #5 \s_@@_stop } @@ -1867,9 +1867,9 @@ \prop_clear_new:c { l_@@_named_ #1 _prop } \str_if_eq:nnTF {#2} { . } { - \tl_set:cx { l_@@_named_ #1 _tl } + \tl_set:ce { l_@@_named_ #1 _tl } { \@@_model:N \l_@@_current_tl } - \prop_put:cvx { l_@@_named_ #1 _prop } { l_@@_named_ #1 _tl } + \prop_put:cve { l_@@_named_ #1 _prop } { l_@@_named_ #1 _tl } { \@@_values:N \l_@@_current_tl } } { @@ -1909,7 +1909,7 @@ % \begin{macrocode} \prop_new:c { l_@@_named_._prop } \tl_new:c { l_@@_named_._tl } -\tl_set:cx { l_@@_named_._tl } { \@@_model:N \l_@@_current_tl } +\tl_set:ce { l_@@_named_._tl } { \@@_model:N \l_@@_current_tl } % \end{macrocode} % \end{variable} % @@ -2005,7 +2005,7 @@ \group_begin: \cs_set_protected:Npn \@@_tmp:w #1#2 { - \cs_new_protected:cpx { @@_export_format_ #1 :nnN } ##1##2##3 + \cs_new_protected:cpe { @@_export_format_ #1 :nnN } ##1##2##3 { \exp_not:N \@@_export:nnnNN {#2} {##1} {##2} ##3 \exp_not:c { @@_export_ #1 :Nw } @@ -2042,10 +2042,10 @@ % required, then do some simple maths. % \begin{macrocode} \cs_new_protected:cpn { @@_export_comma-sep-rgb:Nw } #1#2 ~ #3 ~ #4 \s_@@_stop - { \tl_set:Nx #1 { #2 , #3 , #4 } } + { \tl_set:Ne #1 { #2 , #3 , #4 } } \cs_new_protected:Npn \@@_export_HTML:Nw #1#2 ~ #3 ~ #4 \s_@@_stop { - \tl_set:Nx #1 + \tl_set:Ne #1 { \@@_export_HTML:n {#2} \@@_export_HTML:n {#3} @@ -2195,7 +2195,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\@@_model_init:nnn, \@@_model_init:nnx} +% \begin{macro}{\@@_model_init:nnn, \@@_model_init:nne} % A shared auxiliary to do the basics of setting up a new model: reserve a % number, create a white-equivalent, set up links to the backend. % \begin{macrocode} @@ -2204,13 +2204,13 @@ \int_gincr:N \g_@@_model_int \clist_map_inline:nn { fill , stroke , select } { - \cs_new_protected:cpx { @@_backend_ ##1 _ #1 :n } ####1 + \cs_new_protected:cpe { @@_backend_ ##1 _ #1 :n } ####1 { \exp_not:c { @@_backend_ ##1 _ #2 :nn } { color \int_use:N \g_@@_model_int } {####1} } } - \cs_new_protected:cpx { @@_model_ #1 _white: } + \cs_new_protected:cpe { @@_model_ #1 _white: } { \prop_put:Nnn \exp_not:N \l_@@_named_white_prop {#1} { \exp_not:n {#3} } @@ -2219,7 +2219,7 @@ } \use:c { @@_model_ #1 _white: } } -\cs_generate_variant:Nn \@@_model_init:nnn { nnx } +\cs_generate_variant:Nn \@@_model_init:nnn { nne } % \end{macrocode} % \end{macro} % @@ -2309,7 +2309,7 @@ \use:c { @@_model_separation_ #8 :nnnnnn } {#6} {#7} {#1} {#2} {#3} {#4} \prop_gput:Nnn \g_@@_alternative_model_prop {#6} {#8} - \prop_gput:Nnx \g_@@_colorants_prop {#6} + \prop_gput:Nne \g_@@_colorants_prop {#6} { \str_convert_pdfname:n {#7} } } \cs_new_protected:Npn \@@_model_separation_cmyk:nnnnnn #1#2#3#4#5#6 @@ -2355,7 +2355,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_model_convert:nnn #1#2#3 { - \cs_new:cpx { @@_convert_ #1 _ #3 :w } ##1 \s_@@_stop + \cs_new:cpe { @@_convert_ #1 _ #3 :w } ##1 \s_@@_stop { \exp_not:N \exp_args:NNe \exp_not:N \use:nn \exp_not:c { @@_convert_ #2 _ #3 :w } @@ -2520,7 +2520,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_model_devicen:nnn #1#2#3 { - \exp_args:Nx \@@_model_devicen:nnnn + \exp_args:Ne \@@_model_devicen:nnnn { \clist_count:n {#2} } {#1} {#2} {#3} } % \end{macrocode} @@ -2531,7 +2531,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_model_devicen:nnnn #1#2#3#4 { - \@@_model_init:nnx {#4} { devicen } + \@@_model_init:nne {#4} { devicen } { 0 \prg_replicate:nn { #1 - 1 } { ~ 0 } } @@ -2539,7 +2539,7 @@ { \@@_model_devicen_parse_generic:nn } {#4} {#1} \@@_model_devicen_init:nnn {#1} {#2} {#3} - \@@_model_devicen_convert:nnnx {#4} {#2} {#3} + \@@_model_devicen_convert:nnne {#4} {#2} {#3} { 1 \prg_replicate:nn { #1 - 1 } { ~ 1 } } @@ -2602,7 +2602,7 @@ {#1} { \@@_model_devicen_parse:nw {#2} ##1 , ##2 , \q_nil , \s_@@_stop } } - \cs_new:cpx { @@_parse_mix_ #1 :nw } + \cs_new:cpe { @@_parse_mix_ #1 :nw } ##1 ##2 \s_@@_mark ##3 \s_@@_stop { \exp_not:N \@@_model_devicen_mix:nw {##1} @@ -2680,7 +2680,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_model_devicen_init:nnnn #1#2#3#4 { - \tl_set:Nx \l_@@_internal_tl + \tl_set:Ne \l_@@_internal_tl { \prg_replicate:nn {#1} { 1.0 ~ } } \int_zero:N \l_@@_internal_int \clist_map_inline:nn {#4} @@ -2691,7 +2691,7 @@ \exp_after:wN \@@_model_devicen_transform:w \l_@@_value_tl , 0 , 0 , 0 , \s_@@_stop {#1} {#2} } - \tl_put_right:Nx \l_@@_internal_tl + \tl_put_right:Ne \l_@@_internal_tl { \prg_replicate:nn {#1} { neg ~ 1.0 ~ add ~ #1 ~ -1 ~ roll ~ } @@ -2699,7 +2699,7 @@ \prg_replicate:nn {#2} { ~ pop } ~ #1 ~ 1 ~ roll } - \use:x + \use:e { \@@_backend_devicen_init:nnn { @@ -2737,7 +2737,7 @@ } \cs_new_protected:Npn \@@_model_devicen_transform:nnn #1#2#3 { - \tl_put_right:Nx \l_@@_internal_tl + \tl_put_right:Ne \l_@@_internal_tl { \fp_compare:nNnF {#3} = \c_zero_fp { @@ -2761,7 +2761,7 @@ { \use:c { @@_model_devicen_convert_ #2 :nnn } {#1} {#3} } -\cs_generate_variant:Nn \@@_model_devicen_convert:nnnn { nnnx } +\cs_generate_variant:Nn \@@_model_devicen_convert:nnnn { nnne } \cs_new_protected:Npn \@@_model_devicen_convert_cmyk:nnn #1#2 { \tl_const:cn { c_@@_fallback_ #1 _tl } { cmyk } @@ -2780,7 +2780,7 @@ \cs_new_protected:Npn \@@_model_devicen_convert:nnnnn #1#2#3#4#5 { \cs_new:cpn { @@_convert_ #2 _ #1 :w } ##1 \s_@@_stop {#5} - \cs_new:cpx { @@_convert_ #1 _ #2 :w } ##1 \s_@@_stop + \cs_new:cpe { @@_convert_ #1 _ #2 :w } ##1 \s_@@_stop { \exp_not:c { @@_convert_devicen_ #2 : \prg_replicate:nn {#3} { n } w } \prg_replicate:nn {#3} { { 1 } } @@ -2963,7 +2963,7 @@ } \cs_new_protected:Npn \@@_model_iccbased:nn #1#2 { - \exp_args:NNx \prop_get:NnNTF \c_@@_icc_colorspace_signatures_prop + \prop_get:NeNTF \c_@@_icc_colorspace_signatures_prop { \file_hex_dump:nnn { #1 } { 17 } { 20 } } \l_@@_internal_tl { \exp_last_unbraced:NV \@@_model_iccbased_aux:nnnnnn @@ -2986,7 +2986,7 @@ \cs_new:cpn { @@_convert_ #5 _gray:w } ##1 \s_@@_stop { 0 } \cs_new:cpn { @@_convert_gray_ #5 :w } ##1 \s_@@_stop { #2 } \use:c { @@_model_devicen_parse_ #1 :nn } {#5} {#1} - \exp_args:Nx \@@_backend_iccbased_init:nnn + \exp_args:Ne \@@_backend_iccbased_init:nnn { \file_full_name:n {#6} } {#1} {#4} } % \end{macrocode} @@ -3047,9 +3047,9 @@ % is similar to the keys module here. % \begin{macrocode} \cs_new_protected:Npn \color_show:n - { \@@_show:Nn \msg_show:nnxxxx } + { \@@_show:Nn \msg_show:nneeee } \cs_new_protected:Npn \color_log:n - { \@@_show:Nn \msg_log:nnxxxx } + { \@@_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \@@_show:Nn #1#2 { #1 { color } { show } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index d700a0f0217..8efdc986ccc 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -108,12 +108,12 @@ % \cs{flag_if_exist_p:n}, and if not raises a kernel-level error. % \end{function} % -% \begin{function}{\__kernel_debug_log:x} +% \begin{function}{\__kernel_debug_log:e} % \begin{syntax} -% \cs{__kernel_debug_log:x} \Arg{message text} +% \cs{__kernel_debug_log:e} \Arg{message text} % \end{syntax} % If the \texttt{log-functions} option is active, this function writes -% the \meta{message text} to the log file using \cs{iow_log:x}. +% the \meta{message text} to the log file using \cs{iow_log:e}. % Otherwise, the \meta{message text} is ignored using \cs{use_none:n}. % This function is only created if debugging is enabled. % \end{function} @@ -220,7 +220,7 @@ } \cs_set_protected:Npn \debug_resume: { - \__kernel_tl_set:Nx \l_@@_suspended_tl + \__kernel_tl_set:Ne \l_@@_suspended_tl { \tl_tail:N \l_@@_suspended_tl } \tl_if_empty:NT \l_@@_suspended_tl { @@ -269,7 +269,7 @@ \@@_suspended:T \use_none:nnn \cs_if_exist:NF ##1 { - \msg_error:nnx { debug } { non-declared-variable } + \msg_error:nne { debug } { non-declared-variable } { \token_to_str:N ##1 } } } @@ -278,7 +278,7 @@ \@@_suspended:T \use_none:nnn \cs_if_exist:NF ##1 { - \msg_error:nnx { kernel } { command-not-defined } + \msg_error:nne { kernel } { command-not-defined } { \token_to_str:N ##1 } } } @@ -362,7 +362,7 @@ \if:w #1 \scan_stop: \cs_gset_nopar:Npn #1 {#2} \else: - \msg_error:nnxxx { debug } { local-global } + \msg_error:nneee { debug } { local-global } {#1} {#2} { \iow_char:N \\ #3 } \fi: \fi: @@ -374,19 +374,19 @@ % \end{macro} % % \begin{macro}{\@@_log-functions_on:, \@@_log-functions_off:} -% \begin{macro}{\__kernel_debug_log:x} +% \begin{macro}{\__kernel_debug_log:e} % These two functions (corresponding to the \pkg{expl3} option -% \texttt{log-functions}) control whether \cs{__kernel_debug_log:x} +% \texttt{log-functions}) control whether \cs{__kernel_debug_log:e} % writes to the log file or not. By default, logging is off. % \begin{macrocode} \cs_new_protected:cpn { @@_log-functions_on: } { - \cs_set_protected:Npn \__kernel_debug_log:x - { \@@_suspended:T \use_none:nn \iow_log:x } + \cs_set_protected:Npn \__kernel_debug_log:e + { \@@_suspended:T \use_none:nn \iow_log:e } } \cs_new_protected:cpn { @@_log-functions_off: } - { \cs_set_protected:Npn \__kernel_debug_log:x { \use_none:n } } -\cs_new_protected:Npn \__kernel_debug_log:x { \use_none:n } + { \cs_set_protected:Npn \__kernel_debug_log:e { \use_none:n } } +\cs_new_protected:Npn \__kernel_debug_log:e { \use_none:n } % \end{macrocode} % \end{macro} % \end{macro} @@ -510,11 +510,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_generate_parameter_list:NNN #1#2#3 { - \__kernel_tl_set:Nx \l_@@_internal_tl + \__kernel_tl_set:Ne \l_@@_internal_tl { \exp_last_unbraced:Nf \use_ii:nnn \cs_split_function:N #1 } - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \exp_args:NV \@@_build_parm_text:n \l_@@_internal_tl } - \__kernel_tl_set:Nx #3 + \__kernel_tl_set:Ne #3 { \exp_args:NV \@@_build_arg_list:n \l_@@_internal_tl } } \cs_new:Npn \@@_build_parm_text:n #1 @@ -658,7 +658,7 @@ { \cs_gset_eq:cN { @@_ \cs_to_str:N #1 } #1 \@@_generate_parameter_list:NNN #1 \l_@@_tmpa_tl \l_@@_tmpb_tl - \exp_args:Nx \tex_scantokens:D + \exp_args:Ne \tex_scantokens:D { \tex_global:D \cs_prefix_spec:N #1 \tex_def:D \exp_not:N #1 @@ -673,23 +673,23 @@ } \cs_set_protected:Npn \@@_add_to_debug_code:Nnn #1#2#3 { - \use:x + \use:e { \cs_set:Npn \exp_not:N \@@_tmp:w - ####1 \tl_to_str:n { macro: } - ####2 \tl_to_str:n { -> } - ####3 \c_backslash_str \tl_to_str:n { @@_ } + ##1 \tl_to_str:n { macro: } + ##2 \tl_to_str:n { -> } + ##3 \c_backslash_str \tl_to_str:n { @@_ } \cs_to_str:N #1 - ####4 \s_@@_stop + ##4 \s_@@_stop { - \exp_not:N \exp_args:Nx \exp_not:N \tex_scantokens:D + \exp_not:N \exp_args:Ne \exp_not:N \tex_scantokens:D { - \tex_global:D ####1 - \tex_def:D \exp_not:N #1 ####2 + \tex_global:D ##1 + \tex_def:D \exp_not:N #1 ##2 { - ####3 \tl_to_str:n {#2} + ##3 \tl_to_str:n {#2} \c_backslash_str @@_ \cs_to_str:N #1 - ####4 \tl_to_str:n {#3} + ##4 \tl_to_str:n {#3} } } } @@ -721,7 +721,7 @@ } \cs_set_protected:Npn \@@_patch_weird:Nnn #1#2#3 { - \use:x + \use:e { \tex_endlinechar:D -1 \scan_stop: \exp_not:N \tex_scantokens:D @@ -790,8 +790,8 @@ % % % \begin{macrocode} -\cs_gset_protected:Npn \__kernel_tl_set:Nx { \cs_set_nopar:Npx } -\cs_gset_protected:Npn \__kernel_tl_gset:Nx { \cs_gset_nopar:Npx } +\cs_gset_protected:Npn \__kernel_tl_set:Ne { \cs_set_nopar:Npe } +\cs_gset_protected:Npn \__kernel_tl_gset:Ne { \cs_gset_nopar:Npe } % \end{macrocode} % % Patching where the first argument to a function needs scope-checking: @@ -838,20 +838,21 @@ \skip_set_eq:NN \skip_add:Nn \skip_sub:Nn - \__kernel_tl_set:Nx + \__kernel_tl_set:Ne \tl_clear:N \tl_set_eq:NN \tl_put_left:Nn \tl_put_left:NV + \tl_put_left:Nv + \tl_put_left:Ne \tl_put_left:No - \tl_put_left:Nx \tl_put_right:Nn \tl_put_right:NV + \tl_put_right:Nv + \tl_put_right:Ne \tl_put_right:No - \tl_put_right:Nx \tl_build_begin:N \tl_build_put_right:Nn - \tl_build_put_right:Nx \tl_build_put_left:Nn \vbox_set:Nn \vbox_set_top:Nn @@ -902,20 +903,21 @@ \skip_gset_eq:NN \skip_gadd:Nn \skip_gsub:Nn - \__kernel_tl_gset:Nx + \__kernel_tl_gset:Ne \tl_gclear:N \tl_gset_eq:NN \tl_gput_left:Nn \tl_gput_left:NV + \tl_gput_left:Nv + \tl_gput_left:Ne \tl_gput_left:No - \tl_gput_left:Nx \tl_gput_right:Nn \tl_gput_right:NV + \tl_gput_right:Nv + \tl_gput_right:Ne \tl_gput_right:No - \tl_gput_right:Nx \tl_build_gbegin:N \tl_build_gput_right:Nn - \tl_build_gput_right:Nx \tl_build_gput_left:Nn \vbox_gset:Nn \vbox_gset_top:Nn @@ -940,7 +942,6 @@ \muskip_const:Nn \skip_const:Nn \tl_const:Nn - \tl_const:Nx } % \end{macrocode} % @@ -991,7 +992,7 @@ \__kernel_patch:nnn { } { - \__kernel_debug_log:x + \__kernel_debug_log:e { Defining~\token_to_str:N #1~ \msg_line_context: } } { \__kernel_chk_if_free_cs:N } @@ -1000,7 +1001,7 @@ { \cs_if_free:NF #4 { - \__kernel_debug_log:x + \__kernel_debug_log:e { Variant~\token_to_str:N #4~% already~defined;~ not~ changing~ it~ \msg_line_context: @@ -1013,7 +1014,7 @@ \__kernel_patch:nnn { \cs_if_exist:cF { \c_@@_code_root_str #1 } - { \__kernel_debug_log:x { Defining~key~#1~\msg_line_context: } } + { \__kernel_debug_log:e { Defining~key~#1~\msg_line_context: } } } { } { \@@_cmd_set_direct:nn } @@ -1021,7 +1022,7 @@ \__kernel_patch:nnn { } { - \__kernel_debug_log:x + \__kernel_debug_log:e { Defining~message~ #1 / #2 ~\msg_line_context: } } { \@@_chk_free:nn } @@ -1059,7 +1060,7 @@ { \@@_trace_push:nnN { regex } { 1 } \@@_escape_use:nnnn \group_begin: - \__kernel_tl_set:Nx \l_@@_internal_a_tl + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \@@_trace_pop:nnN { regex } { 1 } \@@_escape_use:nnnn } \use_none:nnn } @@ -1081,7 +1082,7 @@ { \@@_build_for_cs:n } \__kernel_patch:nnn { - \@@_trace:nnx { regex } { 2 } + \@@_trace:nne { regex } { 2 } { regex~new~state~ L=\int_use:N \l_@@_left_state_int ~ -> ~ @@ -1103,24 +1104,24 @@ \__kernel_patch:nnn { \@@_trace_push:nnN { regex } { 1 } \@@_match:n - \@@_trace:nnx { regex } { 1 } { analyzing~query~token~list } + \@@_trace:nne { regex } { 1 } { analyzing~query~token~list } } { \@@_trace_pop:nnN { regex } { 1 } \@@_match:n } { \@@_match:n } \__kernel_patch:nnn { \@@_trace_push:nnN { regex } { 1 } \@@_match_cs:n - \@@_trace:nnx { regex } { 1 } { analyzing~query~token~list } + \@@_trace:nne { regex } { 1 } { analyzing~query~token~list } } { \@@_trace_pop:nnN { regex } { 1 } \@@_match_cs:n } { \@@_match_cs:n } \__kernel_patch:nnn - { \@@_trace:nnx { regex } { 1 } { initializing } } + { \@@_trace:nne { regex } { 1 } { initializing } } { } { \@@_match_init: } \__kernel_patch:nnn { - \@@_trace:nnx { regex } { 2 } + \@@_trace:nne { regex } { 2 } { state~\int_use:N \l_@@_curr_state_int } } { } @@ -1153,7 +1154,7 @@ { \char_set_catcode_parameter:N \# \tex_endlinechar:D -1 \scan_stop: - \exp_args:Nx \tex_scantokens:D + \exp_args:Ne \tex_scantokens:D { \tex_global:D \cs_prefix_spec:N #1 \tex_def:D \exp_not:N #1 \cs_parameter_spec:N #1 @@ -1172,7 +1173,7 @@ { \tl_map_inline:nn {#1} { - \exp_args:NNx \__kernel_patch:Nn ##1 + \exp_args:NNe \__kernel_patch:Nn ##1 { { \c_hash_str 1 } { @@ -1238,7 +1239,7 @@ { \tl_map_inline:nn {#1} { - \exp_args:NNx \__kernel_patch:Nn ##1 + \exp_args:NNe \__kernel_patch:Nn ##1 { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } @@ -1286,7 +1287,7 @@ { \tl_map_inline:nn {#1} { - \exp_args:NNx \__kernel_patch:Nn ##1 + \exp_args:NNe \__kernel_patch:Nn ##1 { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } @@ -1325,7 +1326,7 @@ { \clist_map_inline:nn { :nNnT , :nNnF , :nNnTF , _p:nNn } { - \exp_args:Ncx \__kernel_patch:Nn { #1 ##1 } + \exp_args:Nce \__kernel_patch:Nn { #1 ##1 } { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } @@ -1349,7 +1350,7 @@ { \clist_map_inline:nn { :nT , :nF , :nTF , _p:n } { - \exp_args:Ncx \__kernel_patch:Nn { #1 ##1 } + \exp_args:Nce \__kernel_patch:Nn { #1 ##1 } { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index a60fe16ff48..c9564f4080a 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -145,11 +145,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_warn_once:nnNnn #1#2#3#4#5 { - \cs_gset_protected:Npx #3 + \cs_gset_protected:Npe #3 { \__kernel_if_debug:TF { - \exp_not:N \msg_warning:nnxxx + \exp_not:N \msg_warning:nneee { deprecation } { deprecated-command } {#1} { \token_to_str:N #3 } @@ -193,7 +193,7 @@ \exp_not:N \msg_expandable_error:nnnnn { deprecation } { deprecated-command } { \tl_to_str:n {#3} } { \token_to_str:N #1 } { \tl_to_str:n {#2} } - \exp_not:N \msg_error:nnxxx + \exp_not:N \msg_error:nneee { deprecation } { deprecated-command } { \tl_to_str:n {#3} } { \token_to_str:N #1 } { \tl_to_str:n {#2} } } @@ -682,25 +682,25 @@ { meaning } { meaning_remove } } { - \use:x + \use:e { \__kernel_patch_deprecation:nnNNpn { 2022-01-11 } { \peek_remove_spaces:n } - \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NTF } ####1####2####3 + \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NTF } ##1##2##3 { \peek_remove_spaces:n - { \exp_not:c { peek_ #1 :NTF } ####1 {####2} {####3} } + { \exp_not:c { peek_ #1 :NTF } ##1 {##2} {##3} } } \__kernel_patch_deprecation:nnNNpn { 2022-01-11 } { \peek_remove_spaces:n } - \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NT } ####1####2 + \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NT } ##1##2 { \peek_remove_spaces:n - { \exp_not:c { peek_ #1 :NT } ####1 {####2} } + { \exp_not:c { peek_ #1 :NT } ##1 {##2} } } \__kernel_patch_deprecation:nnNNpn { 2022-01-11 } { \peek_remove_spaces:n } - \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NF } ####1####2 + \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NF } ##1##2 { \peek_remove_spaces:n - { \exp_not:c { peek_ #1 :NF } ####1 {####2} } + { \exp_not:c { peek_ #1 :NF } ##1 {##2} } } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index b1744b9f7bb..ed675106ba1 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx @@ -85,7 +85,7 @@ and all files in that bundle must be distributed together. % require you to do updates, if the class changes.}} % % \author{\Team} -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % \maketitle % \tableofcontents % @@ -957,7 +957,7 @@ and all files in that bundle must be distributed together. % \seq_set_split:NoV, % \str_case:fn, % \tl_count:f, -% \tl_greplace_all:Nxn, +% \tl_greplace_all:Nen, % \tl_greplace_all:Nno, % \tl_if_head_eq_charcode:oNTF, % \tl_if_head_eq_charcode:oNT, @@ -968,17 +968,14 @@ and all files in that bundle must be distributed together. % \tl_if_in:NoTF, % \tl_if_in:NoT, % \tl_if_in:NoF, -% \tl_remove_all:Nx, -% \tl_replace_all:Nxn, -% \tl_replace_all:Nnx, +% \tl_remove_all:Ne, +% \tl_replace_all:Nen, +% \tl_replace_all:Nne, % \tl_replace_all:Non, % \tl_replace_all:Nno, % \tl_replace_once:Noo, % \tl_to_str:f, % \tl_to_str:o, -% \prop_get:NxNTF, -% \prop_put:Nxn, -% \prop_gput:NVx, % } % A few missing variants. % \begin{macrocode} @@ -1001,9 +998,6 @@ and all files in that bundle must be distributed together. \cs_generate_variant:Nn \tl_replace_once:Nnn { Noo } \cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV } \cs_generate_variant:Nn \tl_to_str:n { f , o } -\cs_generate_variant:Nn \prop_get:NnNTF { Nx } -\cs_generate_variant:Nn \prop_put:Nnn { Nx } -\cs_generate_variant:Nn \prop_gput:Nnn { NVx } % \end{macrocode} % \end{macro} % @@ -1033,7 +1027,7 @@ and all files in that bundle must be distributed together. \cs_new_protected:Npn \@@_trim_right:Nn #1#2 { \cs_set:Npn \@@_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} } - \__kernel_tl_set:Nx #1 { \exp_after:wN \@@_tmp:w #1 #2 \q_stop } + \__kernel_tl_set:Ne #1 { \exp_after:wN \@@_tmp:w #1 #2 \q_stop } } \cs_generate_variant:Nn \@@_trim_right:Nn { No } % \end{macrocode} @@ -1076,7 +1070,7 @@ and all files in that bundle must be distributed together. #1 \g_@@_module_name_tl } } -\cs_new_protected:Npx \@@_replace_at_at_aux:Nn #1#2 +\cs_new_protected:Npe \@@_replace_at_at_aux:Nn #1#2 { \tl_replace_all:Nnn #1 { \token_to_str:N @ } { @ } \tl_replace_all:Nnn #1 { \token_to_str:N _ } { _ } @@ -1130,7 +1124,7 @@ and all files in that bundle must be distributed together. \@@_trim_right:Nn \l_@@_detect_internals_tl _ \@@_trim_right:Nn \l_@@_detect_internals_tl : \@@_trim_right:No \l_@@_detect_internals_tl { \token_to_str:N : } - \msg_warning:nnxxx { l3doc } { foreign-internal } + \msg_warning:nneee { l3doc } { foreign-internal } { \tl_to_str:N \l_@@_detect_internals_cs_tl } { \tl_to_str:N \l_@@_detect_internals_tl } { \tl_to_str:N \g_@@_module_name_tl } @@ -1253,14 +1247,14 @@ and all files in that bundle must be distributed together. \@@_if_almost_str:nTF {#1} { \@@_key_get_base_TF:nN {#1} \l_@@_tmpa_tl - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \@@_split_function_do:on \l_@@_tmpa_tl { \@@_base_form_aux:nnN } } } { \tl_set:Nn #2 {#1} } } -\cs_new:Npx \@@_key_get_base_TF:nN #1#2 +\cs_new:Npe \@@_key_get_base_TF:nN #1#2 { - \__kernel_tl_set:Nx #2 { \exp_not:N \tl_to_str:n {#1} } + \__kernel_tl_set:Ne #2 { \exp_not:N \tl_to_str:n {#1} } \tl_if_in:NoF #2 { \tl_to_str:n {:} } { \exp_not:N \prg_break: } \tl_if_in:onT { #2 z } { \tl_to_str:n {TF} z } @@ -1312,7 +1306,7 @@ and all files in that bundle must be distributed together. \tl_if_head_eq_charcode:nNTF {#4} : { #2 {#1} } { - \use:x + \use:e { \exp_not:n {#3} { \@@_base_form_aux:nnN {#4} {#5} #6 } @@ -1602,7 +1596,7 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \cs_set_protected:Npn \ifnot@excluded { - \exp_args:Nxx \expanded@notin + \exp_args:Nee \expanded@notin { \c_backslash_str \tl_to_str:N \macro@namepart , } { \exp_args:NV \tl_to_str:n \index@excludelist } } @@ -2016,7 +2010,7 @@ and all files in that bundle must be distributed together. \verbatim@font \@@_if_almost_str:VT \l_@@_cmd_tl { - \__kernel_tl_set:Nx \l_@@_cmd_tl { \tl_to_str:N \l_@@_cmd_tl } + \__kernel_tl_set:Ne \l_@@_cmd_tl { \tl_to_str:N \l_@@_cmd_tl } \bool_if:NT \g_@@_cs_break_bool { \regex_replace_all:nnN @@ -2038,13 +2032,13 @@ and all files in that bundle must be distributed together. { \quark_if_no_value:NF \l_@@_cmd_index_tl { - \__kernel_tl_set:Nx \l_@@_cmd_tl + \__kernel_tl_set:Ne \l_@@_cmd_tl { \c_backslash_str \exp_not:o { \l_@@_cmd_index_tl } } } \exp_args:No \@@_key_get:n { \l_@@_cmd_tl } \quark_if_no_value:NF \l_@@_cmd_module_tl { - \__kernel_tl_set:Nx \l_@@_index_module_tl + \__kernel_tl_set:Ne \l_@@_index_module_tl { \tl_to_str:N \l_@@_cmd_module_tl } } \@@_special_index_module:ooonN @@ -2153,19 +2147,19 @@ and all files in that bundle must be distributed together. % \end{macro} % % \begin{macro} -% {\@@_get_hyper_target:nN, \@@_get_hyper_target:oN, \@@_get_hyper_target:xN} +% {\@@_get_hyper_target:nN, \@@_get_hyper_target:oN, \@@_get_hyper_target:eN} % Create a \pkg{hyperref} anchor from a macro name~|#1| and stores it % in the token list variable~|#2|. For instance, |\prg_replicate:nn| % gives |doc/function//prg/replicate:nn|. % \begin{macrocode} \cs_new_protected:Npn \@@_get_hyper_target:nN #1#2 { - \__kernel_tl_set:Nx #2 { \tl_to_str:n {#1} } - \tl_replace_all:Nxn #2 { \c_underscore_str } { / } - \tl_remove_all:Nx #2 { \c_backslash_str } + \__kernel_tl_set:Ne #2 { \tl_to_str:n {#1} } + \tl_replace_all:Nen #2 { \c_underscore_str } { / } + \tl_remove_all:Ne #2 { \c_backslash_str } \tl_put_left:Nn #2 { doc/function// } } -\cs_generate_variant:Nn \@@_get_hyper_target:nN { o , x } +\cs_generate_variant:Nn \@@_get_hyper_target:nN { o , e } % \end{macrocode} % \end{macro} % @@ -2183,21 +2177,21 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \cs_new_protected:Npn \@@_names_get_seq:nN #1#2 { - \__kernel_tl_set:Nx \l_@@_tmpa_tl { \tl_to_str:n {#1} } + \__kernel_tl_set:Ne \l_@@_tmpa_tl { \tl_to_str:n {#1} } \bool_if:NTF \l_@@_names_verb_bool { \seq_clear:N #2 \seq_put_right:NV #2 \l_@@_tmpa_tl } { - \tl_remove_all:Nx \l_@@_tmpa_tl + \tl_remove_all:Ne \l_@@_tmpa_tl { \iow_char:N \^^M \c_percent_str } - \tl_remove_all:Nx \l_@@_tmpa_tl { \tl_to_str:n { ^ ^ A } } - \tl_remove_all:Nx \l_@@_tmpa_tl { \iow_char:N \^^I } - \tl_remove_all:Nx \l_@@_tmpa_tl { \iow_char:N \^^M } + \tl_remove_all:Ne \l_@@_tmpa_tl { \tl_to_str:n { ^ ^ A } } + \tl_remove_all:Ne \l_@@_tmpa_tl { \iow_char:N \^^I } + \tl_remove_all:Ne \l_@@_tmpa_tl { \iow_char:N \^^M } \@@_detect_internals:N \l_@@_tmpa_tl \@@_replace_at_at:N \l_@@_tmpa_tl - \exp_args:NNx \seq_set_from_clist:Nn #2 + \exp_args:NNe \seq_set_from_clist:Nn #2 { \tl_to_str:N \l_@@_tmpa_tl } } } @@ -2238,14 +2232,14 @@ and all files in that bundle must be distributed together. \tl_if_head_eq_charcode:nNTF {#2} : { \@@_names_parse_aux:nnn {#4} {#4} { \scan_stop: } } { - \exp_args:Nx \@@_names_parse_aux:nnn + \exp_args:Ne \@@_names_parse_aux:nnn { \@@_base_form_aux:nnN {#1} {#2} #3 } {#1} {#2} } } { \bool_if:NT \l_@@_macro_TF_bool - { \msg_error:nnx { l3doc } { no-signature-TF } {#4} } + { \msg_error:nne { l3doc } { no-signature-TF } {#4} } \@@_names_parse_aux:nnn {#4} {#4} { \scan_stop: } } } @@ -2294,12 +2288,12 @@ and all files in that bundle must be distributed together. \str_if_eq:VnTF \l_@@_tmpa_tl { \scan_stop: } { \seq_gclear:N \g_@@_variants_seq - \@@_names_typeset_auxii:x { \g_@@_base_name_tl } + \@@_names_typeset_auxii:e { \g_@@_base_name_tl } } { \seq_gset_eq:NN \g_@@_variants_seq #1 \seq_gpop:NN \g_@@_variants_seq \l_@@_tmpb_tl - \@@_names_typeset_auxii:x + \@@_names_typeset_auxii:e { \g_@@_base_name_tl : \l_@@_tmpb_tl } } } @@ -2308,7 +2302,7 @@ and all files in that bundle must be distributed together. % \end{macro} % % \begin{macro} -% {\@@_names_typeset_auxii:n, \@@_names_typeset_auxii:x} +% {\@@_names_typeset_auxii:n, \@@_names_typeset_auxii:e} % In case the option |pTF| was given, typeset predicates before the % |TF| functions. In case the option |noTF| was given, typeset the % non-|TF| function as well. Pass the relevant boolean in both cases @@ -2318,7 +2312,7 @@ and all files in that bundle must be distributed together. { \bool_if:NT \l_@@_macro_pTF_bool { - \@@_names_typeset_block:xN + \@@_names_typeset_block:eN { \@@_predicate_from_base:n {#1} } \c_false_bool } @@ -2326,11 +2320,11 @@ and all files in that bundle must be distributed together. { \@@_names_typeset_block:nN {#1} \c_false_bool } \@@_names_typeset_block:nN {#1} \l_@@_macro_TF_bool } -\cs_generate_variant:Nn \@@_names_typeset_auxii:n { x } +\cs_generate_variant:Nn \@@_names_typeset_auxii:n { e } % \end{macrocode} % \end{macro} % -% \begin{macro}{\@@_names_typeset_block:nN, \@@_names_typeset_block:xN} +% \begin{macro}{\@@_names_typeset_block:nN, \@@_names_typeset_block:eN} % Names in \env{function} and \env{macro} environments are typeset % differently. To distinguish the two note that % \cs{l_@@_nested_macro_int} is at least one when in an \env{macro} @@ -2343,7 +2337,7 @@ and all files in that bundle must be distributed together. { \@@_typeset_function_block:nN } { \@@_macro_typeset_block:nN } } -\cs_generate_variant:Nn \@@_names_typeset_block:nN { x } +\cs_generate_variant:Nn \@@_names_typeset_block:nN { e } % \end{macrocode} % \end{macro} % @@ -2391,7 +2385,7 @@ and all files in that bundle must be distributed together. \seq_set_eq:NN \l_@@_tmpa_seq ##1 \seq_pop:NN \l_@@_tmpa_seq \l_@@_tmpa_tl \seq_get:NN \l_@@_tmpa_seq \l_@@_tmpb_tl - \exp_args:NNx + \exp_args:NNe \group_end: #1 { @@ -2479,7 +2473,7 @@ and all files in that bundle must be distributed together. \exp_args:No \@@_date_compare:nNnT {#1} > { \c_sys_year_int - \c_sys_month_int - \c_sys_day_int } { - \msg_error:nnxx { l3doc } { future-date } + \msg_error:nnee { l3doc } { future-date } { \tl_to_str:N \l_@@_macro_argument_tl } {#1} } @@ -2707,15 +2701,15 @@ and all files in that bundle must be distributed together. % % ^^A TODO: collect all index targets from a given function environment in a box and stick it at the top. % \begin{macro} -% {\@@_typeset_function_block:nN, \@@_typeset_function_block:xN} -% \begin{macro}{\@@_function_index:n, \@@_function_index:x} +% {\@@_typeset_function_block:nN, \@@_typeset_function_block:eN} +% \begin{macro}{\@@_function_index:n, \@@_function_index:e} % |#1| is a csname, |#2| a boolean indicating whether to add |TF| or not. % \begin{macrocode} \cs_new_protected:Npn \@@_typeset_function_block:nN #1#2 { - \@@_function_index:x + \@@_function_index:e { #1 \bool_if:NT #2 { \tl_to_str:n {TF} } } - \@@_function_label:xN {#1} #2 + \@@_function_label:eN {#1} #2 #1 \bool_if:NT #2 { \@@_typeset_TF: } \@@_typeset_expandability: @@ -2723,13 +2717,13 @@ and all files in that bundle must be distributed together. { \@@_typeset_variant_list:nN {#1} #2 } \\ } -\cs_generate_variant:Nn \@@_typeset_function_block:nN { x } +\cs_generate_variant:Nn \@@_typeset_function_block:nN { e } \cs_new_protected:Npn \@@_function_index:n #1 { \seq_gput_right:Nn \g_doc_functions_seq {#1} \@@_special_index:nn {#1} { usage } } -\cs_generate_variant:Nn \@@_function_index:n { x } +\cs_generate_variant:Nn \@@_function_index:n { e } % \end{macrocode} % % \begin{macrocode} @@ -2796,7 +2790,7 @@ and all files in that bundle must be distributed together. { \bool_if:NF \l_@@_no_label_bool { - \@@_get_hyper_target:xN + \@@_get_hyper_target:eN { \exp_not:n {#1} \bool_if:NT #2 { \tl_to_str:n {TF} } @@ -2805,7 +2799,7 @@ and all files in that bundle must be distributed together. \exp_args:No \label { \l_@@_tmpa_tl } } } -\cs_generate_variant:Nn \@@_function_label:nN { x } +\cs_generate_variant:Nn \@@_function_label:nN { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -3064,7 +3058,7 @@ and all files in that bundle must be distributed together. \l_@@_macro_do_not_index_tl \exp_args:NNV \seq_set_from_clist:Nn \l_@@_tmpa_seq \l_@@_macro_do_not_index_tl - \__kernel_tl_set:Nx \l_@@_macro_do_not_index_tl + \__kernel_tl_set:Ne \l_@@_macro_do_not_index_tl { \seq_use:Nn \l_@@_tmpa_seq { , } } \exp_args:NV \DoNotIndex \l_@@_macro_do_not_index_tl } @@ -3105,7 +3099,7 @@ and all files in that bundle must be distributed together. \@@_macro_single:nNN {#1} \c_true_bool #2 \seq_if_empty:NF \g_@@_variants_seq { - \@@_macro_typeset_variant_list:xN + \@@_macro_typeset_variant_list:eN { \@@_get_function_name:n {#1} } #2 } } @@ -3115,7 +3109,7 @@ and all files in that bundle must be distributed together. \seq_map_inline:Nn \g_@@_variants_seq { \@@_macro_single:nNN { #1 : ##1 } \c_false_bool #2 } } -\cs_generate_variant:Nn \@@_macro_typeset_variant_list:nN { x } +\cs_generate_variant:Nn \@@_macro_typeset_variant_list:nN { e } % \end{macrocode} % \end{macro} % @@ -3137,7 +3131,7 @@ and all files in that bundle must be distributed together. \tl_set:Nn \saved@macroname {#1} \@@_macro_typeset_one:nN {#1} #3 \bool_if:NT #3 { \DoNotIndex {#1} } - \exp_args:Nx \@@_macro_index:nN + \exp_args:Ne \@@_macro_index:nN { #1 \bool_if:NT #3 { \tl_to_str:n { TF } } } #2 } @@ -3191,7 +3185,7 @@ and all files in that bundle must be distributed together. \cs_new_protected:Npn \@@_print_macroname:nN #1#2 { \strut - \@@_get_hyper_target:xN + \@@_get_hyper_target:eN { \exp_not:n {#1} \bool_if:NT #2 { \tl_to_str:n {TF} } @@ -3295,7 +3289,7 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \cs_new_protected:Npn \@@_test_missing:n #1 { - \@@_test_missing_aux:Nxn + \@@_test_missing_aux:Nen \g_@@_missing_tests_prop { \seq_use:Nn \l_@@_names_seq { , } } { { \g_file_curr_name_str \c_space_tl (#1) } } @@ -3307,7 +3301,7 @@ and all files in that bundle must be distributed together. { \tl_set:Nn \l_@@_tmpa_tl {#3} } \prop_put:Nno #1 {#2} \l_@@_tmpa_tl } -\cs_generate_variant:Nn \@@_test_missing_aux:Nnn { Nx } +\cs_generate_variant:Nn \@@_test_missing_aux:Nnn { Ne } % \end{macrocode} % \end{macro} % @@ -3345,7 +3339,7 @@ and all files in that bundle must be distributed together. { \seq_set_filter:NNn \l_@@_tmpa_seq \l_@@_names_seq { ! \@@_if_macro_internal_p:n {##1} } - \seq_gput_right:Nx \g_@@_not_tested_seq + \seq_gput_right:Ne \g_@@_not_tested_seq { \seq_use:Nn \l_@@_tmpa_seq { , } \bool_if:NTF \l_@@_macro_pTF_bool {~(pTF)} @@ -3415,10 +3409,10 @@ and all files in that bundle must be distributed together. \bool_if:NTF \l_@@_macro_var_bool {variable} {function} \int_compare:nNnTF \l_@@_tmpa_int = 1 {~is~} {s~are~} documented~on~page~ - \@@_get_hyper_target:xN + \@@_get_hyper_target:eN { \seq_item:Nn \g_@@_nested_names_seq { 1 } } \l_@@_tmpa_tl - \exp_args:Nx \pageref { \l_@@_tmpa_tl } . + \exp_args:Ne \pageref { \l_@@_tmpa_tl } . } \seq_gclear:N \g_@@_nested_names_seq } @@ -3540,6 +3534,39 @@ and all files in that bundle must be distributed together. % \end{macrocode} % \end{environment} % +% \subsection{Footnote support} +% The environments \env{function} and \env{variable} are boxes +% and so looses footnotes. The following implements support. +% It relies currently on an internal from hyperref to get the correct targets. +% +% \begin{macrocode} +\providecommand\Hy@footnote@currentHref{} +\prop_new:N\g_@@_fnmark_prop +\cs_new_protected:Npn \@@_fn_store: + { + \prop_gput:Nee\g_@@_fnmark_prop + {fn\int_use:N\c@footnote}{{\Hy@footnote@currentHref}{\int_use:N\c@footnote}} + } +\cs_new_protected:Npn \@@_fn_restore:n #1 + { + \prop_get:NnN \g_@@_fnmark_prop {fn#1}\l_@@_tmpa_tl + \tl_gset:Ne\Hy@footnote@currentHref + {\exp_last_unbraced:NV\use_i:nn \l_@@_tmpa_tl } + \setcounter{footnote}{\exp_last_unbraced:NV\use_ii:nn \l_@@_tmpa_tl} + } + +\cs_generate_variant:Nn \hook_gput_next_code:nn {ne} +\cs_new_protected:Npn \@@_fn_footnote:nn #1 #2 + { + \footnotemark + \@@_fn_store: + \hook_gput_next_code:ne {env/#1/after} + {\exp_not:N\@@_fn_restore:n{\int_use:N\c@footnote}{\exp_not:n{\footnotetext{#2}}}}} + +\AddToHook{env/function/begin}{\def\footnote{\@@_fn_footnote:nn{function}}} +\AddToHook{env/variable/begin}{\def\footnote{\@@_fn_footnote:nn{variable}}} +% \end{macrocode} +% % \subsection{Documenting templates} % % \begin{macrocode} @@ -3713,7 +3740,7 @@ and all files in that bundle must be distributed together. \@tempswatrue \if@partsw \@tempswafalse - \cs_set:Npx \@tempb {#1} + \cs_set:Npe \@tempb {#1} \clist_map_inline:Nn \@partlist { \if_meaning:w \@tempa \@tempb @@ -3734,7 +3761,7 @@ and all files in that bundle must be distributed together. \part{\currentfile} { \cs_set_eq:NN \ttfamily\relax - \cs_gset:Npx \filekey + \cs_gset:Npe \filekey { \filekey,~ \thepart = { \ttfamily \currentfile } } } \DocInput{\currentfile} @@ -3920,6 +3947,8 @@ and all files in that bundle must be distributed together. \tl_new:N \l_@@_doc_def_tl \tl_new:N \l_@@_doc_undef_tl \tl_new:N \l_@@_undoc_def_tl +\tl_const:Nn \c_@@_iow_separator_tl { ---- } +\tl_const:Nn \c_@@_iow_midrule_tl { -- } % \end{macrocode} % % \begin{macrocode} @@ -3928,7 +3957,7 @@ and all files in that bundle must be distributed together. \bool_lazy_and:nnT { \g_@@_typeset_implementation_bool } { \g_@@_checkfunc_bool } { - \iow_term:x { \c_@@_iow_separator_tl \iow_newline: } + \iow_term:e { \c_@@_iow_separator_tl \iow_newline: } \iow_open:Nn \g_@@_func_iow { \c_sys_jobname_str .cmds } \tl_clear:N \l_@@_doc_def_tl @@ -3938,12 +3967,12 @@ and all files in that bundle must be distributed together. { \seq_if_in:NnTF \g_doc_macros_seq {##1} { - \tl_put_right:Nx \l_@@_doc_def_tl + \tl_put_right:Ne \l_@@_doc_def_tl { ##1 \iow_newline: } \iow_now:Nn \g_@@_func_iow { > ~ ##1 } } { - \tl_put_right:Nx \l_@@_doc_undef_tl + \tl_put_right:Ne \l_@@_doc_undef_tl { ##1 \iow_newline: } \iow_now:Nn \g_@@_func_iow { ! ~ ##1 } } @@ -3952,7 +3981,7 @@ and all files in that bundle must be distributed together. { \seq_if_in:NnF \g_doc_functions_seq {##1} { - \tl_put_right:Nx \l_@@_undoc_def_tl + \tl_put_right:Ne \l_@@_undoc_def_tl { ##1 \iow_newline: } \iow_now:Nn \g_@@_func_iow { ? ~ ##1 } } @@ -3971,13 +4000,13 @@ and all files in that bundle must be distributed together. \l_@@_undoc_def_tl \iow_close:N \g_@@_func_iow - \iow_term:x { \c_@@_iow_separator_tl } + \iow_term:e { \c_@@_iow_separator_tl } } } \AtEndDocument { \@@_show_functions_defined: } % \end{macrocode} % -% TODO: use \cs{iow_term:x}. +% TODO: use \cs{iow_term:e}. % \begin{macrocode} \cs_new_protected:Npn \@@_functions_typeout:nN #1#2 { @@ -4014,7 +4043,7 @@ and all files in that bundle must be distributed together. \iow_newline: \space\space\space\space\space\space * ~ ##1 } - \tl_put_right:Nx \l_@@_tmpa_tl + \tl_put_right:Ne \l_@@_tmpa_tl { \iow_newline: \iow_newline: The~ following~ macro(s)~ have~ incomplete~ tests: @@ -4032,7 +4061,7 @@ and all files in that bundle must be distributed together. \iow_newline: \space\space\space\space ##1 } - \tl_put_right:Nx \l_@@_tmpa_tl + \tl_put_right:Ne \l_@@_tmpa_tl { \iow_newline: \iow_newline: @@ -4073,7 +4102,7 @@ and all files in that bundle must be distributed together. % \end{macrocode} % Force targets on every code line. % \begin{macrocode} -\cs_set_nopar:Npx \theCodelineNo +\cs_set_nopar:Npe \theCodelineNo { \group_begin: \exp_not:N \HD@savedestfalse @@ -4091,7 +4120,7 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \bool_new:N \l_@@_allow_indexing_bool \bool_set_true:N \l_@@_allow_indexing_bool -\use:x +\use:e { \exp_not:n { \cs_set_nopar:Npn \@starttoc #1 } { @@ -4162,7 +4191,7 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \cs_gset_protected:Npn \it@is@a #1 { - \use:x + \use:e { \@@_special_index_module:nnnnN {#1} @@ -4223,7 +4252,7 @@ and all files in that bundle must be distributed together. % \end{arguments} % \begin{macrocode} { - \use:x + \use:e { \exp_not:n { \@@_special_index_aux:nnnnnn {#1} {#2} } \tl_if_empty:nTF {#3} @@ -4297,7 +4326,7 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \group_begin: \char_set_active_eq:NN - \scan_stop: -\tl_const:Nx \c_@@_active_minus_tl { \char_generate:nn { `- } { 13 } } +\tl_const:Ne \c_@@_active_minus_tl { \char_generate:nn { `- } { 13 } } \group_end: \cs_new_eq:NN \@@_old_hdpindex:nn \hdpindex \cs_new_eq:NN \@@_old_hdclindex:nnn \hdclindex @@ -4308,7 +4337,7 @@ and all files in that bundle must be distributed together. \cs_new_protected:Npn \@@_hdindex:nn #1#2 { \tl_set:Nn \l_@@_tmpa_tl {#2} - \tl_replace_all:Nxn \l_@@_tmpa_tl + \tl_replace_all:Nen \l_@@_tmpa_tl { \exp_not:V \c_@@_active_minus_tl \exp_not:V \c_@@_active_minus_tl } { -- } \seq_set_split:NnV \l_@@_tmpa_seq { -- } \l_@@_tmpa_tl @@ -4322,11 +4351,11 @@ and all files in that bundle must be distributed together. \tl_replace_all:Nnn \l_@@_tmpa_tl { MMMM } { \use_none:nn } \tl_if_in:NnT \l_@@_tmpa_tl { MMMD } { - \tl_replace_all:Nxn \l_@@_tmpa_tl + \tl_replace_all:Nen \l_@@_tmpa_tl { \exp_not:V \c_@@_active_minus_tl MMMD } { - MMMD } \tl_replace_all:Nnn \l_@@_tmpa_tl { - MMMD } { \@@_hdindex_aux:w } } - \use:x { \exp_not:n {#1} { \exp_not:V \l_@@_tmpa_tl } } + \use:e { \exp_not:n {#1} { \exp_not:V \l_@@_tmpa_tl } } } \cs_new_protected:Npn \@@_hdindex_aux:w #1 M { } % \end{macrocode} @@ -4335,7 +4364,7 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \cs_new_protected:Npn \@@_special_index_set:Nn #1#2 { - \__kernel_tl_set:Nx #1 { \tl_to_str:n {#2} } + \__kernel_tl_set:Ne #1 { \tl_to_str:n {#2} } \@@_if_almost_str:nTF {#2} { \tl_replace_all:Non #1 { \tl_to_str:n { __ } } @@ -4344,7 +4373,7 @@ and all files in that bundle must be distributed together. \token_to_str:N \_ \token_to_str:N \_ \token_to_str:N \verb * \verbatimchar } - \exp_args:Nx \tl_map_inline:nn + \exp_args:Ne \tl_map_inline:nn { \tl_to_str:N \verbatimchar \token_to_str:N _ } { \tl_replace_all:Nnn #1 {##1} @@ -4353,7 +4382,7 @@ and all files in that bundle must be distributed together. \token_to_str:N \verb * \verbatimchar } } - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \token_to_str:N \verb * \verbatimchar #1 \verbatimchar @@ -4377,7 +4406,7 @@ and all files in that bundle must be distributed together. { \tl_map_inline:nn { \quotechar \actualchar \encapchar \levelchar \bslash } { - \tl_replace_all:Nxn #1 + \tl_replace_all:Nen #1 { \tl_to_str:N ##1 } { \quotechar \tl_to_str:N ##1 } } } @@ -4404,7 +4433,7 @@ and all files in that bundle must be distributed together. \cs_new_protected:Npn \@@_key_get:n #1 { \@@_key_get_base:nN {#1} \l_@@_index_macro_tl - \__kernel_tl_set:Nx \l_@@_index_key_tl + \__kernel_tl_set:Ne \l_@@_index_key_tl { \tl_to_str:N \l_@@_index_macro_tl } \tl_clear:N \l_@@_index_module_tl \tl_if_in:NoTF \l_@@_index_key_tl { \tl_to_str:n { __ } } @@ -4427,7 +4456,7 @@ and all files in that bundle must be distributed together. } \cs_new_protected:Npn \@@_key_pop: { - \__kernel_tl_set:Nx \l_@@_index_key_tl + \__kernel_tl_set:Ne \l_@@_index_key_tl { \tl_tail:N \l_@@_index_key_tl } } % \end{macrocode} @@ -4442,7 +4471,7 @@ and all files in that bundle must be distributed together. { \cs_set:Npn \@@_tmpa:w ##1 #1 ##2 \q_stop { \exp_not:n {##1} } - \__kernel_tl_set:Nx \l_@@_index_module_tl + \__kernel_tl_set:Ne \l_@@_index_module_tl { \exp_after:wN \@@_tmpa:w \l_@@_index_module_tl #1 \q_stop } } \cs_new_protected:Npn \@@_key_drop_underscores: @@ -4495,7 +4524,7 @@ and all files in that bundle must be distributed together. % \begin{macrocode} \cs_new_protected:Npn \@@_key_var: { - \exp_args:Nx \tl_if_head_eq_charcode:nNTF + \exp_args:Ne \tl_if_head_eq_charcode:nNTF { \exp_args:No \str_tail:n \l_@@_index_key_tl } _ { \str_case:fn { \str_head:N \l_@@_index_key_tl } @@ -4535,7 +4564,7 @@ and all files in that bundle must be distributed together. % sorted differently in an index. % \begin{macrocode} \clist_new:N \g_@@_non_modules_clist -\clist_gset:Nx \g_@@_non_modules_clist +\clist_gset:Ne \g_@@_non_modules_clist { \tl_to_str:n { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index 2b40c56fc50..df2b7c63abe 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index 0d7e3e877a9..d4fe6b3a30a 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -501,6 +501,7 @@ % \exp_args:NNNo, % \exp_args:NNNV, % \exp_args:NNNv, +% \exp_args:NNNe, % \exp_args:Nccc, % \exp_args:NcNc, % \exp_args:NcNo, @@ -664,8 +665,8 @@ % This is the \TeX{} \tn{noexpand} primitive. It only prevents % expansion. At the beginning of an |f|-type argument, a space % \meta{token} is removed even if it appears as \cs{exp_not:N} -% \cs{c_space_token}. In an |x|-expanding definition -% (\cs{cs_new:Npx}), a macro parameter introduces an argument even +% \cs{c_space_token}. In an |e|-expanding definition +% (\cs{cs_new:Npe}), a macro parameter introduces an argument even % if it appears as \cs{exp_not:N} |#| |1|. This differs from % \cs{exp_not:n}. % \end{texnote} @@ -692,7 +693,7 @@ % \emph{must} be surrounded by braces. % \begin{texnote} % This is the \eTeX{} \tn{unexpanded} primitive. In an -% |x|-expanding definition (\cs{cs_new:Npx}), \cs{exp_not:n}~|{#1}| +% |x|-expanding definition (\cs{cs_new:Npe}), \cs{exp_not:n}~|{#1}| % is equivalent to |##1| rather than to~|#1|, namely it inserts the % two characters |#| and~|1|. In an |e|-type argument % \cs{exp_not:n}~|{#}| is equivalent to |#|, namely it inserts the @@ -947,7 +948,7 @@ % In this section a general mechanism for defining functions that handle % arguments is defined. These general expansion functions are % expandable unless |x| is used. (Any version of |x| is going to have -% to use one of the \LaTeX3 names for \cs{cs_set:Npx} at some +% to use one of the \LaTeX3 names for \cs{cs_set:Npe} at some % point, and so is never going to be expandable.) % % The definition of expansion functions with this technique happens @@ -1080,7 +1081,7 @@ % \begin{macrocode} \cs_new_protected:Npn \::x #1 \::: #2#3 { - \cs_set_nopar:Npx \l_@@_internal_tl + \cs_set_nopar:Npe \l_@@_internal_tl { \exp_not:n { #1 \::: } { \exp_not:n {#2} {#3} } } \l_@@_internal_tl } @@ -1325,7 +1326,7 @@ % % \begin{macro}[EXP] % { -% \exp_args:NNNV, \exp_args:NNNv, +% \exp_args:NNNV, \exp_args:NNNv, \exp_args:NNNe, % \exp_args:NcNc, \exp_args:NcNo, % \exp_args:Ncco, % } @@ -1345,6 +1346,13 @@ \exp_after:wN #3 \exp_after:wN { \exp:w \@@_eval_register:c {#4} } } +\cs_new:Npn \exp_args:NNNe #1#2#3#4 + { + \exp_after:wN #1 + \exp_after:wN #2 + \exp_after:wN #3 + \tex_expanded:D { {#4} } + } \cs_new:Npn \exp_args:NcNc #1#2#3#4 { \exp_after:wN #1 @@ -1410,7 +1418,7 @@ } \cs_new_protected:Npn \::x_unbraced \::: #1#2 { - \cs_set_nopar:Npx \l_@@_internal_tl { \exp_not:n {#1} #2 } + \cs_set_nopar:Npe \l_@@_internal_tl { \exp_not:n {#1} #2 } \l_@@_internal_tl } % \end{macrocode} @@ -1682,7 +1690,7 @@ % \end{arguments} % After making sure that the base form exists, test whether it is % protected or not and define \cs{@@_tmp:w} as either -% \cs{cs_new:Npx} or \cs{cs_new_protected:Npx}, which is +% \cs{cs_new:Npe} or \cs{cs_new_protected:Npe}, which is % then used to define all the variants (except those involving % \texttt{x}-expansion, always protected). Split up the original base % function only once, to grab its name and signature. Then we wish to @@ -1692,7 +1700,7 @@ \cs_new_protected:Npn \cs_generate_variant:Nn #1#2 { \@@_generate_variant:N #1 - \use:x + \use:e { \@@_generate_variant:nnNN \cs_split_function:N #1 @@ -1728,21 +1736,21 @@ % |\bot|, |\splittop|, or |\splitbot|, with |\| replaced by the % appropriate escape character. If |pr| appears in the part before % |ma|, the first \cs{s_@@_mark} is taken as an argument of the |wwNw| -% auxiliary, and |#3| is \cs{cs_new_protected:Npx}, otherwise it -% is \cs{cs_new:Npx}. +% auxiliary, and |#3| is \cs{cs_new_protected:Npe}, otherwise it +% is \cs{cs_new:Npe}. % \begin{macrocode} -\cs_new_protected:Npx \@@_generate_variant:N #1 +\cs_new_protected:Npe \@@_generate_variant:N #1 { \exp_not:N \exp_after:wN \exp_not:N \if_meaning:w \exp_not:N \exp_not:N #1 #1 - \cs_set_eq:NN \exp_not:N \@@_tmp:w \cs_new_protected:Npx + \cs_set_eq:NN \exp_not:N \@@_tmp:w \cs_new_protected:Npe \exp_not:N \else: \exp_not:N \exp_after:wN \exp_not:N \@@_generate_variant:ww \exp_not:N \token_to_meaning:N #1 \tl_to_str:n { ma } \s_@@_mark - \s_@@_mark \cs_new_protected:Npx + \s_@@_mark \cs_new_protected:Npe \tl_to_str:n { pr } - \s_@@_mark \cs_new:Npx + \s_@@_mark \cs_new:Npe \s_@@_stop \exp_not:N \fi: } @@ -1773,7 +1781,7 @@ \cs_new_protected:Npn \@@_generate_variant:nnNN #1#2#3#4 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \@@_use_none_delimit_by_q_recursion_stop:w \fi: @@ -1837,7 +1845,7 @@ \if_meaning:w \scan_stop: #4 \exp_after:wN \@@_use_none_delimit_by_q_recursion_stop:w \fi: - \use:x + \use:e { \exp_not:N \@@_generate_variant:wwNN \@@_generate_variant_loop:nNwN { } @@ -1976,7 +1984,7 @@ \exp_not:n { \s_@@_mark - \msg_error:nnxx { kernel } { variant-too-long } + \msg_error:nnee { kernel } { variant-too-long } {#5} { \token_to_str:N #3 } \use_none:nnn \s_@@_stop @@ -1991,7 +1999,7 @@ \exp_not:n { \s_@@_mark - \msg_error:nnxxxx { kernel } { invalid-variant } + \msg_error:nneeee { kernel } { invalid-variant } {#7} { \token_to_str:N #5 } {#1} {#2} \use_none:nnn \s_@@_stop @@ -2005,7 +2013,7 @@ #3 \s_@@_stop #4 #5 {#6} {#7} \exp_not:n { - \msg_error:nnxxxx + \msg_error:nneeee { kernel } { deprecated-variant } {#7} { \token_to_str:N #5 } {#1} {#2} } @@ -2039,7 +2047,7 @@ % (provided \texttt{log-functions} is active). % Otherwise, make sure that the |\exp_args:N #3| form is defined, and % if it contains |x|, change \cs{@@_tmp:w} locally to -% \cs{cs_new_protected:Npx}. Then define the variant by +% \cs{cs_new_protected:Npe}. Then define the variant by % combining the |\exp_args:N #3| variant and the base function. % \begin{macrocode} \cs_new_protected:Npn \@@_generate_variant:wwNN @@ -2074,11 +2082,11 @@ % the \cs[no-index]{exp_args:N\dots} function as a macro taking up to % $9$~arguments and expanding them using \cs{use:x} or \cs{tex_expanded:D}. % \begin{macrocode} -\cs_new_protected:Npx \@@_generate_internal_variant:n #1 +\cs_new_protected:Npe \@@_generate_internal_variant:n #1 { \exp_not:N \@@_generate_internal_variant:wwnNwn #1 \s_@@_mark - { \cs_set_eq:NN \exp_not:N \@@_tmp:w \cs_new_protected:Npx } + { \cs_set_eq:NN \exp_not:N \@@_tmp:w \cs_new_protected:Npe } \cs_new_protected:cpn \use:x \token_to_str:N x \s_@@_mark @@ -2111,7 +2119,7 @@ ##3 \s_@@_mark { - \use:x + \use:e { ##1 { exp_args:N ##3 } { \@@_generate_internal_variant_loop:n ##3 { : \use_i:nn } } @@ -2206,7 +2214,7 @@ % \begin{macrocode} \cs_new_protected:Npn \prg_generate_conditional_variant:Nnn #1 { - \use:x + \use:e { \@@_generate_variant:nnNnn \cs_split_function:N #1 @@ -2215,7 +2223,7 @@ \cs_new_protected:Npn \@@_generate_variant:nnNnn #1#2#3#4#5 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \@@_use_i_delimit_by_s_stop:nw \fi: @@ -2235,7 +2243,7 @@ \cs_if_exist_use:cTF { @@_generate_variant_#1_form:nnn } { {#3} {#4} {#5} } { - \msg_error:nnxx + \msg_error:nnee { kernel } { conditional-form-unknown } {#1} { \token_to_str:c { #3 : #4 } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index 1c1401e3929..2d2ae6a183f 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -448,7 +448,10 @@ % \subsection{Writing to files} % % \begin{function}[updated = 2012-06-05] -% {\iow_now:Nn, \iow_now:NV, \iow_now:Nx, \iow_now:cn, \iow_now:cV, \iow_now:cx} +% { +% \iow_now:Nn, \iow_now:NV, \iow_now:Ne, +% \iow_now:cn, \iow_now:cV, \iow_now:ce +% } % \begin{syntax} % \cs{iow_now:Nn} \meta{stream} \Arg{tokens} % \end{syntax} @@ -457,7 +460,7 @@ % on expansion of \cs{iow_now:Nn}). % \end{function} % -% \begin{function}{\iow_log:n, \iow_log:x} +% \begin{function}{\iow_log:n, \iow_log:e} % \begin{syntax} % \cs{iow_log:n} \Arg{tokens} % \end{syntax} @@ -465,7 +468,7 @@ % file immediately: it is a dedicated version of \cs{iow_now:Nn}. % \end{function} % -% \begin{function}{\iow_term:n, \iow_term:x} +% \begin{function}{\iow_term:n, \iow_term:e} % \begin{syntax} % \cs{iow_term:n} \Arg{tokens} % \end{syntax} @@ -475,8 +478,8 @@ % % \begin{function} % { -% \iow_shipout:Nn, \iow_shipout:Nx, -% \iow_shipout:cn, \iow_shipout:cx +% \iow_shipout:Nn, \iow_shipout:Ne, +% \iow_shipout:cn, \iow_shipout:ce % } % \begin{syntax} % \cs{iow_shipout:Nn} \meta{stream} \Arg{tokens} @@ -486,7 +489,7 @@ % shipout). The \texttt{x}-type variants expand the \meta{tokens} % at the point where the function is used but \emph{not} when the % resulting tokens are written to the \meta{stream} -% (\emph{cf.}~\cs{iow_shipout_x:Nn}). +% (\emph{cf.}~\cs{iow_shipout_e:Nn}). % \begin{texnote} % When using \pkg{expl3} with a format other than \LaTeX{}, new line % characters inserted using \cs{iow_newline:} or using the @@ -496,13 +499,13 @@ % \end{texnote} % \end{function} % -% \begin{function}[updated = 2012-09-08] +% \begin{function}[updated = 2023-09-17] % { -% \iow_shipout_x:Nn, \iow_shipout_x:Nx, -% \iow_shipout_x:cn, \iow_shipout_x:cx +% \iow_shipout_e:Nn, \iow_shipout_e:Ne, +% \iow_shipout_e:cn, \iow_shipout_e:ce % } % \begin{syntax} -% \cs{iow_shipout_x:Nn} \meta{stream} \Arg{tokens} +% \cs{iow_shipout_e:Nn} \meta{stream} \Arg{tokens} % \end{syntax} % This function writes \meta{tokens} to the specified % \meta{stream} when the current page is finalised (\emph{i.e.}~at @@ -528,7 +531,7 @@ % write difficult characters such as |%|, |{|, |}|, % \emph{etc.}~in messages, for example: % \begin{verbatim} -% \iow_now:Nx \g_my_iow { \iow_char:N \{ text \iow_char:N \} } +% \iow_now:Ne \g_my_iow { \iow_char:N \{ text \iow_char:N \} } % \end{verbatim} % The function has no effect if writing is taking place without % expansion (\emph{e.g.}~in the second argument of \cs{iow_now:Nn}). @@ -546,14 +549,14 @@ % character inserted by \cs{iow_newline:} is not recognized by % \TeX{}, which may lead to the insertion of additional unwanted % line-breaks. This issue only affects \cs{iow_shipout:Nn}, -% \cs{iow_shipout_x:Nn} and direct uses of primitive operations. +% \cs{iow_shipout_e:Nn} and direct uses of primitive operations. % \end{texnote} % \end{function} % % \subsection{Wrapping lines in output} % % \begin{function}[added = 2012-06-28, updated = 2017-12-04] -% {\iow_wrap:nnnN, \iow_wrap:nxnN} +% {\iow_wrap:nnnN, \iow_wrap:nenN} % \begin{syntax} % \cs{iow_wrap:nnnN} \Arg{text} \Arg{run-on text} \Arg{set up} \meta{function} % \end{syntax} @@ -705,8 +708,10 @@ % \end{texnote} % \end{variable} % -% \begin{function}[TF, updated = 2012-02-10]{\file_if_exist:n, \file_if_exist:V} +% \begin{function}[EXP, pTF, updated = 2023-09-18] +% {\file_if_exist:n, \file_if_exist:V} % \begin{syntax} +% \cs{file_if_exist_p:n} \Arg{file name} % \cs{file_if_exist:nTF} \Arg{file name} \Arg{true code} \Arg{false code} % \end{syntax} % Searches for \meta{file name} using the current \TeX{} search @@ -714,7 +719,8 @@ % \cs{l_file_search_path_seq}. % \end{function} % -% \begin{function}[noTF, added = 2019-01-16, updated = 2019-02-16]{\file_get:nnN} +% \begin{function}[noTF, added = 2019-01-16, updated = 2019-02-16] +% {\file_get:nnN, \file_get:VnN} % \begin{syntax} % \cs{file_get:nnN} \Arg{filename} \Arg{setup} \meta{tl} % \cs{file_get:nnNTF} \Arg{filename} \Arg{setup} \meta{tl} \Arg{true code} \Arg{false code} @@ -782,7 +788,8 @@ % Quotes (|"|) are invalid in file names and are discarded from the input. % \end{function} % -% \begin{function}[EXP, added = 2020-06-24]{\file_parse_full_name:n} +% \begin{function}[EXP, added = 2020-06-24] +% {\file_parse_full_name:n, \file_parse_full_name:V} % \begin{syntax} % \cs{file_parse_full_name:n} \Arg{full name} % \end{syntax} @@ -791,7 +798,8 @@ % each inside a pair of braces. % \end{function} % -% \begin{function}[EXP, added = 2020-06-24]{\file_parse_full_name_apply:nN} +% \begin{function}[EXP, added = 2020-06-24] +% {\file_parse_full_name_apply:nN, \file_parse_full_name_apply:VN} % \begin{syntax} % \cs{file_parse_full_name_apply:nN} \Arg{full name} \meta{function} % \end{syntax} @@ -801,7 +809,10 @@ % \end{function} % % \begin{function}[rEXP, added = 2019-11-19] -% {\file_hex_dump:n, \file_hex_dump:nnn} +% { +% \file_hex_dump:n, \file_hex_dump:V, +% \file_hex_dump:nnn, \file_hex_dump:Vnn +% } % \begin{syntax} % \cs{file_hex_dump:n} \Arg{file name} % \cs{file_hex_dump:nnn} \Arg{file name} \Arg{start index} \Arg{end index} @@ -819,7 +830,10 @@ % \end{function} % % \begin{function}[noTF, added = 2019-11-19] -% {\file_get_hex_dump:nN, \file_get_hex_dump:nnnN} +% { +% \file_get_hex_dump:nN, \file_get_hex_dump:VN, +% \file_get_hex_dump:nnnN, \file_get_hex_dump:VnnN +% } % \begin{syntax} % \cs{file_get_hex_dump:nN} \Arg{file name} \meta{tl var} % \cs{file_get_hex_dump:nnnN} \Arg{file name} \Arg{start index} \Arg{end index} \meta{tl var} @@ -829,7 +843,8 @@ % If the file is not found, the \meta{tl var} will be set to \cs{q_no_value}. % \end{function} % -% \begin{function}[rEXP, added = 2019-09-03]{\file_mdfive_hash:n} +% \begin{function}[rEXP, added = 2019-09-03] +% {\file_mdfive_hash:n, \file_mdfive_hash:V} % \begin{syntax} % \cs{file_mdfive_hash:n} \Arg{file name} % \end{syntax} @@ -845,7 +860,7 @@ % \end{function} % % \begin{function}[noTF, added = 2017-07-11, updated = 2019-02-16] -% {\file_get_mdfive_hash:nN} +% {\file_get_mdfive_hash:nN, \file_get_mdfive_hash:VN} % \begin{syntax} % \cs{file_get_mdfive_hash:nN} \Arg{file name} \meta{tl var} % \end{syntax} @@ -854,7 +869,7 @@ % the \meta{tl var} will be set to \cs{q_no_value}. % \end{function} % -% \begin{function}[rEXP, added = 2019-09-03]{\file_size:n} +% \begin{function}[rEXP, added = 2019-09-03]{\file_size:n, \file_size:V} % \begin{syntax} % \cs{file_size:n} \Arg{file name} % \end{syntax} @@ -865,7 +880,7 @@ % \end{function} % % \begin{function}[noTF, added = 2017-07-09, updated = 2019-02-16] -% {\file_get_size:nN} +% {\file_get_size:nN, \file_get_size:VN} % \begin{syntax} % \cs{file_get_size:nN} \Arg{file name} \meta{tl var} % \end{syntax} @@ -875,7 +890,8 @@ % This is not available in older versions of \XeTeX{}. % \end{function} % -% \begin{function}[rEXP, added = 2019-09-03]{\file_timestamp:n} +% \begin{function}[rEXP, added = 2019-09-03] +% {\file_timestamp:n, \file_timestamp:V} % \begin{syntax} % \cs{file_timestamp:n} \Arg{file name} % \end{syntax} @@ -891,7 +907,7 @@ % \end{function} % % \begin{function}[noTF, added = 2017-07-09, updated = 2019-02-16] -% {\file_get_timestamp:nN} +% {\file_get_timestamp:nN, \file_get_timestamp:VN} % \begin{syntax} % \cs{file_get_timestamp:nN} \Arg{file name} \meta{tl var} % \end{syntax} @@ -902,7 +918,12 @@ % \end{function} % % \begin{function}[added = 2019-05-13, updated = 2019-09-20, pTF, EXP] -% {\file_compare_timestamp:nNn} +% { +% \file_compare_timestamp:nNn, +% \file_compare_timestamp:nNV, +% \file_compare_timestamp:VNn, +% \file_compare_timestamp:VNV +% } % \begin{syntax} % \cs{file_compare_timestamp_p:nNn} \Arg{file-1} \meta{comparator} \Arg{file-2} % \cs{file_compare_timestamp:nNnTF} \Arg{file-1} \meta{comparator} \Arg{file-2} \Arg{true code} \Arg{false code} @@ -935,7 +956,8 @@ % function. An error is raised if the file is not found. % \end{function} % -% \begin{function}[added = 2023-05-18, EXP]{\file_input_raw:n} +% \begin{function}[added = 2023-05-18, EXP] +% {\file_input_raw:n, \file_input_raw:V} % \begin{syntax} % \cs{file_input_raw:n} \Arg{file name} % \end{syntax} @@ -950,7 +972,13 @@ % \end{texnote} % \end{function} % -% \begin{function}[added = 2014-07-02]{\file_if_exist_input:n, \file_if_exist_input:nF} +% \begin{function}[added = 2014-07-02] +% { +% \file_if_exist_input:n, +% \file_if_exist_input:V, +% \file_if_exist_input:nF, +% \file_if_exist_input:VF +% } % \begin{syntax} % \cs{file_if_exist_input:n} \Arg{file name} % \cs{file_if_exist_input:nF} \Arg{file name} \Arg{false code} @@ -1169,7 +1197,7 @@ { \@@_open_stream:Nn #1 {#2} } { \@@_new:N #1 - \__kernel_tl_set:Nx \l_@@_stream_tl { \int_eval:n {#1} } + \__kernel_tl_set:Ne \l_@@_stream_tl { \int_eval:n {#1} } \@@_open_stream:Nn #1 {#2} } } @@ -1178,7 +1206,7 @@ % Here, we act defensively in case \LuaTeX{} is in use with an % extensionless file name. % \begin{macrocode} -\cs_new_protected:Npx \@@_open_stream:Nn #1#2 +\cs_new_protected:Npe \@@_open_stream:Nn #1#2 { \tex_global:D \tex_chardef:D #1 = \exp_not:N \l_@@_stream_tl \scan_stop: \prop_gput:NVn \exp_not:N \g_@@_streams_prop #1 {#2} @@ -1192,7 +1220,7 @@ % \end{macro} % % \begin{macro}{\ior_shell_open:Nn} -% \begin{macro}{\@@_shell_open:nN} +% \begin{macro}{\@@_shell_open:nN, \@@_shell_open:oN} % Actually much easier than either the standard open or input versions! % When calling \cs{__kernel_ior_open:Nn} the file the pipe is added to % signal a shell command, but the quotes are not added yet---they are @@ -1201,18 +1229,19 @@ \cs_new_protected:Npn \ior_shell_open:Nn #1#2 { \sys_if_shell:TF - { \exp_args:No \@@_shell_open:nN { \tl_to_str:n {#2} } #1 } + { \@@_shell_open:oN { \tl_to_str:n {#2} } #1 } { \msg_error:nn { kernel } { pipe-failed } } } \cs_new_protected:Npn \@@_shell_open:nN #1#2 { \tl_if_in:nnTF {#1} { " } { - \msg_error:nnx + \msg_error:nne { kernel } { quote-in-shell } {#1} } { \__kernel_ior_open:Nn #2 { |#1 } } } +\cs_generate_variant:Nn \@@_shell_open:nN { o } \msg_new:nnnn { kernel } { pipe-failed } { Cannot~run~piped~system~commands. } { @@ -1259,10 +1288,10 @@ { \prop_get:NVNTF \g_@@_streams_prop #2 \l_@@_internal_tl { - \exp_args:Nx #1 + \exp_args:Ne #1 { \token_to_str:N #2 ~ open: ~ \l_@@_internal_tl } } - { \exp_args:Nx #1 { \token_to_str:N #2 ~ closed } } + { \exp_args:Ne #1 { \token_to_str:N #2 ~ closed } } } } % \end{macrocode} @@ -1278,8 +1307,8 @@ % \texttt{show-streams} takes care of translating |ior|/|iow| to % English. % \begin{macrocode} -\cs_new_protected:Npn \ior_show_list: { \@@_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \ior_log_list: { \@@_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \ior_show_list: { \@@_list:N \msg_show:nneeee } +\cs_new_protected:Npn \ior_log_list: { \@@_list:N \msg_log:nneeee } \cs_new_protected:Npn \@@_list:N #1 { #1 { kernel } { show-streams } @@ -1643,14 +1672,14 @@ % \begin{macrocode} \cs_new_protected:Npn \iow_open:Nn #1#2 { - \__kernel_tl_set:Nx \l_@@_file_name_tl + \__kernel_tl_set:Ne \l_@@_file_name_tl { \__kernel_file_name_sanitize:n {#2} } \iow_close:N #1 \seq_gpop:NNTF \g_@@_streams_seq \l_@@_stream_tl { \@@_open_stream:NV #1 \l_@@_file_name_tl } { \@@_new:N #1 - \__kernel_tl_set:Nx \l_@@_stream_tl { \int_eval:n {#1} } + \__kernel_tl_set:Ne \l_@@_stream_tl { \int_eval:n {#1} } \@@_open_stream:NV #1 \l_@@_file_name_tl } } @@ -1668,24 +1697,25 @@ % \end{macro} % % \begin{macro}{\iow_shell_open:Nn} -% \begin{macro}{\@@_shell_open:nN} +% \begin{macro}{\@@_shell_open:nN, \@@_shell_open:oN} % Very similar to the \texttt{ior} version % \begin{macrocode} \cs_new_protected:Npn \iow_shell_open:Nn #1#2 { \sys_if_shell:TF - { \exp_args:No \@@_shell_open:nN { \tl_to_str:n {#2} } #1 } + { \@@_shell_open:oN { \tl_to_str:n {#2} } #1 } { \msg_error:nn { kernel } { pipe-failed } } } \cs_new_protected:Npn \@@_shell_open:nN #1#2 { \tl_if_in:nnTF {#1} { " } { - \msg_error:nnx + \msg_error:nne { kernel } { quote-in-shell } {#1} } { \__kernel_iow_open:Nn #2 { |#1 } } } +\cs_generate_variant:Nn \@@_shell_open:nN { o } % \end{macrocode} % \end{macro} % \end{macro} @@ -1725,10 +1755,10 @@ { \prop_get:NVNTF \g_@@_streams_prop #2 \l_@@_internal_tl { - \exp_args:Nx #1 + \exp_args:Ne #1 { \token_to_str:N #2 ~ open: ~ \l_@@_internal_tl } } - { \exp_args:Nx #1 { \token_to_str:N #2 ~ closed } } + { \exp_args:Ne #1 { \token_to_str:N #2 ~ closed } } } } % \end{macrocode} @@ -1738,8 +1768,8 @@ % \begin{macro}{\@@_list:N} % Done as for input, but with a copy of the auxiliary so the name is correct. % \begin{macrocode} -\cs_new_protected:Npn \iow_show_list: { \@@_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \iow_log_list: { \@@_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \iow_show_list: { \@@_list:N \msg_show:nneeee } +\cs_new_protected:Npn \iow_log_list: { \@@_list:N \msg_log:nneeee } \cs_new_protected:Npn \@@_list:N #1 { #1 { kernel } { show-streams } @@ -1756,29 +1786,40 @@ % % \subsubsection{Deferred writing} % -% \begin{macro}{\iow_shipout_x:Nn, \iow_shipout_x:Nx, \iow_shipout_x:cn, \iow_shipout_x:cx} +% \begin{macro} +% { +% \iow_shipout_e:Nn, \iow_shipout_e:Ne, +% \iow_shipout_e:cn, \iow_shipout_e:ce +% } % First the easy part, this is the primitive, which expects its % argument to be braced. % \begin{macrocode} -\cs_new_protected:Npn \iow_shipout_x:Nn #1#2 +\cs_new_protected:Npn \iow_shipout_e:Nn #1#2 { \tex_write:D #1 {#2} } -\cs_generate_variant:Nn \iow_shipout_x:Nn { c, Nx, cx } +\cs_generate_variant:Nn \iow_shipout_e:Nn { Ne , c, ce } % \end{macrocode} % \end{macro} % -% \begin{macro}{\iow_shipout:Nn, \iow_shipout:Nx, \iow_shipout:cn, \iow_shipout:cx} +% \begin{macro} +% { +% \iow_shipout:Nn, \iow_shipout:Ne, +% \iow_shipout:Nx, +% \iow_shipout:cn, \iow_shipout:ce, +% \iow_shipout:cx +% } % With \eTeX{} available deferred writing without expansion is easy. % \begin{macrocode} \cs_new_protected:Npn \iow_shipout:Nn #1#2 { \tex_write:D #1 { \exp_not:n {#2} } } -\cs_generate_variant:Nn \iow_shipout:Nn { c, Nx, cx } +\cs_generate_variant:Nn \iow_shipout:Nn { Ne , c, ce } +\cs_generate_variant:Nn \iow_shipout:Nn { Nx , cx } % \end{macrocode} % \end{macro} % % \subsubsection{Immediate writing} % % \begin{macro}{\__kernel_iow_with:Nnn} -% \begin{macro}{\@@_with:nNnn} +% \begin{macro}{\@@_with:nNnn, \@@_with:oNnn} % If the integer~|#1| is equal to~|#2|, just leave~|#3| in the input % stream. Otherwise, pass the old value to an auxiliary, which sets % the integer to the new value, runs the code, and restores the @@ -1788,7 +1829,7 @@ { \int_compare:nNnTF {#1} = {#2} { \use:n } - { \exp_args:No \@@_with:nNnn { \int_use:N #1 } #1 {#2} } + { \@@_with:oNnn { \int_use:N #1 } #1 {#2} } } \cs_new_protected:Npn \@@_with:nNnn #1#2#3#4 { @@ -1796,14 +1837,17 @@ #4 \int_set:Nn #2 {#1} } +\cs_generate_variant:Nn \@@_with:nNnn { o } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro} % { -% \iow_now:Nn, \iow_now:NV, \iow_now:Nx, -% \iow_now:cn, \iow_now:cV, \iow_now:cx +% \iow_now:Nn, \iow_now:NV, \iow_now:Ne, +% \iow_now:Nx, +% \iow_now:cn, \iow_now:cV, \iow_now:ce, +% \iow_now:cx % } % This routine writes the second argument onto the output stream without % expansion. If this stream isn't open, the output goes to the terminal @@ -1822,18 +1866,23 @@ \__kernel_iow_with:Nnn \tex_newlinechar:D { `\^^J } { \tex_immediate:D \tex_write:D #1 { \exp_not:n {#2} } } } -\cs_generate_variant:Nn \iow_now:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \iow_now:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \iow_now:Nn { Nx , cx } % \end{macrocode} % \end{macro} % -% \begin{macro}{\iow_log:n, \iow_log:x} -% \begin{macro}{\iow_term:n, \iow_term:x} -% Writing to the log and the terminal directly are relatively easy. +% \begin{macro}{\iow_log:n, \iow_log:e, \iow_log:x} +% \begin{macro}{\iow_term:n, \iow_term:e, \iow_term:x} +% Writing to the log and the terminal directly are relatively easy; +% as we need the two \texttt{e}-type variants for bootstrapping, +% they are redefinitions here. % \begin{macrocode} -\cs_set_protected:Npn \iow_log:x { \iow_now:Nx \c_log_iow } \cs_new_protected:Npn \iow_log:n { \iow_now:Nn \c_log_iow } -\cs_set_protected:Npn \iow_term:x { \iow_now:Nx \c_term_iow } +\cs_set_protected:Npn \iow_log:e { \iow_now:Ne \c_log_iow } +\cs_generate_variant:Nn \iow_log:n { x } \cs_new_protected:Npn \iow_term:n { \iow_now:Nn \c_term_iow } +\cs_set_protected:Npn \iow_term:e { \iow_now:Ne \c_term_iow } +\cs_generate_variant:Nn \iow_term:n { x } % \end{macrocode} % \end{macro} % \end{macro} @@ -1902,14 +1951,14 @@ \cs_new:Npn \@@_unindent:w { } \cs_new_protected:Npn \@@_set_indent:n #1 { - \__kernel_tl_set:Nx \l_@@_one_indent_tl + \__kernel_tl_set:Ne \l_@@_one_indent_tl { \exp_args:No \__kernel_str_to_other_fast:n { \tl_to_str:n {#1} } } \int_set:Nn \l_@@_one_indent_int { \str_count:N \l_@@_one_indent_tl } \exp_last_unbraced:NNo \cs_set:Npn \@@_unindent:w \l_@@_one_indent_tl { } } -\exp_args:Nx \@@_set_indent:n { \prg_replicate:nn { 4 } { ~ } } +\exp_args:Ne \@@_set_indent:n { \prg_replicate:nn { 4 } { ~ } } % \end{macrocode} % \end{variable} % \end{macro} @@ -1968,13 +2017,13 @@ % \begin{macrocode} \group_begin: \int_set:Nn \tex_escapechar:D { -1 } - \tl_const:Nx \c_@@_wrap_marker_tl + \tl_const:Ne \c_@@_wrap_marker_tl { \tl_to_str:n { \^^I \^^O \^^W \^^_ \^^W \^^R \^^A \^^P } } \group_end: \tl_map_inline:nn { { end } { newline } { allow_break } { indent } { unindent } } { - \tl_const:cx { c_@@_wrap_ #1 _marker_tl } + \tl_const:ce { c_@@_wrap_ #1 _marker_tl } { \c_@@_wrap_marker_tl #1 @@ -1998,7 +2047,7 @@ \msg_error:nnnn { kernel } { iow-indent } { \iow_wrap:nnnN } { \iow_wrap_allow_break: } } -\cs_new:Npx \@@_wrap_allow_break: { \c_@@_wrap_allow_break_marker_tl } +\cs_new:Npe \@@_wrap_allow_break: { \c_@@_wrap_allow_break_marker_tl } \cs_new:Npn \@@_wrap_allow_break_error: { \msg_expandable_error:nnnn { kernel } { iow-indent } @@ -2026,7 +2075,7 @@ { \iow_wrap:nnnN } { \iow_indent:n } {#1} #1 } -\cs_new:Npx \@@_indent:n #1 +\cs_new:Npe \@@_indent:n #1 { \c_@@_wrap_indent_marker_tl #1 @@ -2043,7 +2092,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\iow_wrap:nnnN, \iow_wrap:nxnN} +% \begin{macro}{\iow_wrap:nnnN, \iow_wrap:nenN} % The main wrapping function works as follows. First give |\\|, % \verb*|\ | and other formatting commands the correct definition for % messages and perform the given setup~|#3|. The definition of @@ -2059,11 +2108,11 @@ \group_begin: \cs_if_exist_use:N \conditionally@traceoff \int_set:Nn \tex_escapechar:D { -1 } - \cs_set:Npx \{ { \token_to_str:N \{ } - \cs_set:Npx \# { \token_to_str:N \# } - \cs_set:Npx \} { \token_to_str:N \} } - \cs_set:Npx \% { \token_to_str:N \% } - \cs_set:Npx \~ { \token_to_str:N \~ } + \cs_set:Npe \{ { \token_to_str:N \{ } + \cs_set:Npe \# { \token_to_str:N \# } + \cs_set:Npe \} { \token_to_str:N \} } + \cs_set:Npe \% { \token_to_str:N \% } + \cs_set:Npe \~ { \token_to_str:N \~ } \int_set:Nn \tex_escapechar:D { 92 } \cs_set_eq:NN \\ \iow_newline: \cs_set_eq:NN \ \c_catcode_other_space_tl @@ -2079,7 +2128,7 @@ % \cs{iow_wrap:nnnN}. % \begin{macrocode} \cs_set_eq:NN \protect \token_to_str:N - \__kernel_tl_set:Nx \l_@@_wrap_tl {#1} + \__kernel_tl_set:Ne \l_@@_wrap_tl {#1} \cs_set_eq:NN \iow_wrap_allow_break: \@@_wrap_allow_break_error: \cs_set_eq:NN \iow_indent:n \@@_indent_error:n % \end{macrocode} @@ -2087,8 +2136,8 @@ % then convert to a string) and initialize the target count for lines % (the first line has target count \cs{l_iow_line_count_int} instead). % \begin{macrocode} - \__kernel_tl_set:Nx \l_@@_newline_tl { \iow_newline: #2 } - \__kernel_tl_set:Nx \l_@@_newline_tl { \tl_to_str:N \l_@@_newline_tl } + \__kernel_tl_set:Ne \l_@@_newline_tl { \iow_newline: #2 } + \__kernel_tl_set:Ne \l_@@_newline_tl { \tl_to_str:N \l_@@_newline_tl } \int_set:Nn \l_@@_line_target_int { \l_iow_line_count_int - \str_count:N \l_@@_newline_tl + 1 } % \end{macrocode} @@ -2112,7 +2161,7 @@ \exp_args:NNf \group_end: #4 { \tl_to_str:N \l_@@_wrap_tl } } -\cs_generate_variant:Nn \iow_wrap:nnnN { nx } +\cs_generate_variant:Nn \iow_wrap:nnnN { ne } % \end{macrocode} % \end{macro} % @@ -2128,12 +2177,12 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_wrap_do: { - \__kernel_tl_set:Nx \l_@@_wrap_tl + \__kernel_tl_set:Ne \l_@@_wrap_tl { \exp_args:No \__kernel_str_to_other_fast:n \l_@@_wrap_tl \c_@@_wrap_end_marker_tl } - \__kernel_tl_set:Nx \l_@@_wrap_tl + \__kernel_tl_set:Ne \l_@@_wrap_tl { \exp_after:wN \@@_wrap_fix_newline:w \l_@@_wrap_tl ^^J \q_@@_nil ^^J \s_@@_stop @@ -2397,7 +2446,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_wrap_allow_break:n #1 { - \__kernel_tl_set:Nx \l_@@_line_tl + \__kernel_tl_set:Ne \l_@@_line_tl { \l_@@_line_tl \@@_wrap_trim:N \l_@@_line_part_tl } \bool_set_false:N \l_@@_line_break_bool \tl_if_empty:NTF \l_@@_line_part_tl @@ -2417,7 +2466,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_wrap_indent:n #1 { - \tl_put_right:Nx \l_@@_line_tl { \l_@@_line_part_tl } + \tl_put_right:Ne \l_@@_line_tl { \l_@@_line_part_tl } \bool_set_false:N \l_@@_line_break_bool \int_add:Nn \l_@@_indent_int { \l_@@_one_indent_int } \tl_put_right:No \l_@@_indent_tl { \l_@@_one_indent_tl } @@ -2425,10 +2474,10 @@ } \cs_new_protected:Npn \@@_wrap_unindent:n #1 { - \tl_put_right:Nx \l_@@_line_tl { \l_@@_line_part_tl } + \tl_put_right:Ne \l_@@_line_tl { \l_@@_line_part_tl } \bool_set_false:N \l_@@_line_break_bool \int_sub:Nn \l_@@_indent_int { \l_@@_one_indent_int } - \__kernel_tl_set:Nx \l_@@_indent_tl + \__kernel_tl_set:Ne \l_@@_indent_tl { \exp_after:wN \@@_unindent:w \l_@@_indent_tl } \@@_wrap_chunk:nw {#1} } @@ -2467,9 +2516,9 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_wrap_store_do:n #1 { - \__kernel_tl_set:Nx \l_@@_line_tl + \__kernel_tl_set:Ne \l_@@_line_tl { \l_@@_line_tl \l_@@_line_part_tl } - \__kernel_tl_set:Nx \l_@@_wrap_tl + \__kernel_tl_set:Ne \l_@@_wrap_tl { \l_@@_wrap_tl \l_@@_newline_tl @@ -2495,6 +2544,21 @@ % \end{macrocode} % \end{macro} % +% \subsection{Deprecated functions} +% +% \begin{macro} +% { +% \iow_shipout_x:Nn, \iow_shipout_x:Nx, +% \iow_shipout_x:cn, \iow_shipout_x:cx +% } +% Previously described as \texttt{x}-type, but the hash behaviour is really +% \texttt{e}-type. +% \begin{macrocode} +\cs_new_eq:NN \iow_shipout_x:Nn \iow_shipout_e:Nn +\cs_generate_variant:Nn \iow_shipout_x:Nn { Nx , c, cx } +% \end{macrocode} +% \end{macro} +% % \begin{macrocode} %<@@=file> % \end{macrocode} @@ -2539,7 +2603,7 @@ { \cs_set:Npn \@@_tmp:w ##1 " ##2 " ##3 \s_@@_stop { { } {##2} { } } - \seq_gput_right:Nx \g_@@_stack_seq + \seq_gput_right:Ne \g_@@_stack_seq { \exp_after:wN \@@_tmp:w \tex_jobname:D " \tex_jobname:D " \s_@@_stop @@ -2811,11 +2875,11 @@ % The same idea as the marker for rescanning token lists: this pair of % tokens cannot appear in a file that is being input. % \begin{macrocode} -\tl_const:Nx \c_@@_marker_tl { : \token_to_str:N : } +\tl_const:Ne \c_@@_marker_tl { : \token_to_str:N : } % \end{macrocode} % \end{variable} % -% \begin{macro}[TF]{\file_get:nnN} +% \begin{macro}[TF]{\file_get:nnN, \file_get:VnN} % \begin{macro}{\file_get:nnN,\@@_get_aux:nnN,\@@_get_do:Nw} % The approach here is similar to that for \cs{tl_set_rescan:Nnn}. % The file contents are grabbed as an argument delimited by @@ -2830,6 +2894,7 @@ \file_get:nnNF {#1} {#2} #3 { \tl_set:Nn #3 { \q_no_value } } } +\cs_generate_variant:Nn \file_get:nnN { V } \prg_new_protected_conditional:Npnn \file_get:nnN #1#2#3 { T , F , TF } { \file_get_full_name:nNTF {#1} \l_@@_full_name_tl @@ -2841,7 +2906,8 @@ } { \prg_return_false: } } -\cs_new_protected:Npx \@@_get_aux:nnN #1#2#3 +\prg_generate_conditional_variant:Nnn \file_get:nnN { V } { T , F , TF } +\cs_new_protected:Npe \@@_get_aux:nnN #1#2#3 { \exp_not:N \if_false: { \exp_not:N \fi: \group_begin: @@ -2901,6 +2967,7 @@ \exp_args:Ne \@@_full_name:n { \__kernel_file_name_sanitize:n {#1} } } +\cs_generate_variant:Nn \file_full_name:n { V } % \end{macrocode} % First, we check of the file is just here: no mapping so we do not % need the break part of the broader auxiliary. We are using the fact @@ -3011,7 +3078,7 @@ } { \@@_ext_check:nnw {#1} { #2 #3 / } #4 / #5 \s_@@_stop } } -\cs_new:Npx \@@_ext_check:nnnw #1#2#3#4 . #5 . #6 \s_@@_stop +\cs_new:Npe \@@_ext_check:nnnw #1#2#3#4 . #5 . #6 \s_@@_stop { \exp_not:N \@@_quark_if_nil:nTF {#5} { @@ -3065,15 +3132,14 @@ \cs_generate_variant:Nn \file_get_full_name:nN { V } \prg_new_protected_conditional:Npnn \file_get_full_name:nN #1#2 { T , F , TF } { - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \file_full_name:n {#1} } \tl_if_empty:NTF #2 { \prg_return_false: } { \prg_return_true: } } -\cs_generate_variant:Nn \file_get_full_name:nNT { V } -\cs_generate_variant:Nn \file_get_full_name:nNF { V } -\cs_generate_variant:Nn \file_get_full_name:nNTF { V } +\prg_generate_conditional_variant:Nnn \file_get_full_name:nN + { V } { T , F , TF } % \end{macrocode} % \end{macro} % \end{macro} @@ -3086,7 +3152,12 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}[rEXP]{\file_mdfive_hash:n, \file_size:n, \file_timestamp:n} +% \begin{macro}[rEXP] +% { +% \file_mdfive_hash:n, \file_mdfive_hash:V, +% \file_size:n, \file_size:V, +% \file_timestamp:n, \file_timestamp:V +% } % \begin{macro}[rEXP]{\@@_details:nn, \@@_details_aux:nn} % \begin{macro}[rEXP]{\@@_mdfive_hash:n} % Getting file details by expansion is relatively easy if a bit repetitive. @@ -3095,8 +3166,10 @@ % \begin{macrocode} \cs_new:Npn \file_size:n #1 { \@@_details:nn {#1} { size } } +\cs_generate_variant:Nn \file_size:n { V } \cs_new:Npn \file_timestamp:n #1 { \@@_details:nn {#1} { moddate } } +\cs_generate_variant:Nn \file_timestamp:n { V } \cs_new:Npn \@@_details:nn #1#2 { \exp_args:Ne \@@_details_aux:nn @@ -3109,6 +3182,7 @@ } \cs_new:Npn \file_mdfive_hash:n #1 { \exp_args:Ne \@@_mdfive_hash:n { \file_full_name:n {#1} } } +\cs_generate_variant:Nn \file_mdfive_hash:n { V } \cs_new:Npn \@@_mdfive_hash:n #1 { \tex_mdfivesum:D file {#1} } % \end{macrocode} @@ -3116,10 +3190,10 @@ % \end{macro} % \end{macro} % -% \begin{macro}[rEXP]{\file_hex_dump:nnn, \@@_hex_dump_auxi:nnn} +% \begin{macro}[rEXP]{\file_hex_dump:nnn, \file_hex_dump:Vnn, \@@_hex_dump_auxi:nnn} % \begin{macro}[rEXP]{\@@_hex_dump_auxii:nnnn, \@@_hex_dump_auxiii:nnnn} % \begin{macro}[rEXP]{\@@_hex_dump_auxiiv:nnn} -% \begin{macro}[rEXP]{\file_hex_dump:n, \@@_hex_dump:n} +% \begin{macro}[rEXP]{\file_hex_dump:n, \file_hex_dump:V, \@@_hex_dump:n} % These are separate as they need multiple arguments \emph{or} the % file size. For \LuaTeX{}, the emulation does not need the file % size so we save a little on expansion. @@ -3131,6 +3205,7 @@ { \int_eval:n {#2} } { \int_eval:n {#3} } } +\cs_generate_variant:Nn \file_hex_dump:nnn { V } \cs_new:Npn \@@_hex_dump_auxi:nnn #1#2#3 { \bool_lazy_any:nF @@ -3174,6 +3249,7 @@ } \cs_new:Npn \file_hex_dump:n #1 { \exp_args:Ne \@@_hex_dump:n { \file_full_name:n {#1} } } +\cs_generate_variant:Nn \file_hex_dump:n { V } \sys_if_engine_luatex:TF { \cs_new:Npn \@@_hex_dump:n #1 @@ -3197,10 +3273,10 @@ % % \begin{macro}[noTF] % { -% \file_get_hex_dump:nN, -% \file_get_mdfive_hash:nN -% \file_get_size:nN, -% \file_get_timestamp:nN +% \file_get_hex_dump:nN, \file_get_hex_dump:VN, +% \file_get_mdfive_hash:nN, \file_get_mdfive_hash:VN, +% \file_get_size:nN, \file_get_size:VN, +% \file_get_timestamp:nN, \file_get_timestamp:VN % } % \begin{macro}{\@@_get_details:nnN} % Non-expandable wrappers around the above in the case where appropriate @@ -3208,23 +3284,35 @@ % \begin{macrocode} \cs_new_protected:Npn \file_get_hex_dump:nN #1#2 { \file_get_hex_dump:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_hex_dump:nN { V } \cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2 { \file_get_mdfive_hash:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_mdfive_hash:nN { V } \cs_new_protected:Npn \file_get_size:nN #1#2 { \file_get_size:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_size:nN { V } \cs_new_protected:Npn \file_get_timestamp:nN #1#2 { \file_get_timestamp:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_timestamp:nN { V } \prg_new_protected_conditional:Npnn \file_get_hex_dump:nN #1#2 { T , F , TF } { \@@_get_details:nnN {#1} { hex_dump } #2 } +\prg_generate_conditional_variant:Nnn \file_get_hex_dump:nN + { V } { T , F , TF } \prg_new_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2 { T , F , TF } { \@@_get_details:nnN {#1} { mdfive_hash } #2 } +\prg_generate_conditional_variant:Nnn \file_get_mdfive_hash:nN + { V } { T , F , TF } \prg_new_protected_conditional:Npnn \file_get_size:nN #1#2 { T , F , TF } { \@@_get_details:nnN {#1} { size } #2 } +\prg_generate_conditional_variant:Nnn \file_get_size:nN + { V } { T , F , TF } \prg_new_protected_conditional:Npnn \file_get_timestamp:nN #1#2 { T , F , TF } { \@@_get_details:nnN {#1} { timestamp } #2 } +\prg_generate_conditional_variant:Nnn \file_get_timestamp:nN + { V } { T , F , TF } \cs_new_protected:Npn \@@_get_details:nnN #1#2#3 { - \__kernel_tl_set:Nx #3 + \__kernel_tl_set:Ne #3 { \use:c { file_ #2 :n } {#1} } \tl_if_empty:NTF #3 { \prg_return_false: } @@ -3234,7 +3322,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}[noTF]{\file_get_hex_dump:nnnN} +% \begin{macro}[noTF]{\file_get_hex_dump:nnnN, \file_get_hex_dump:VnnN} % Custom code due to the additional arguments. % \begin{macrocode} \cs_new_protected:Npn \file_get_hex_dump:nnnN #1#2#3#4 @@ -3242,15 +3330,18 @@ \file_get_hex_dump:nnnNF {#1} {#2} {#3} #4 { \tl_set:Nn #4 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_hex_dump:nnnN { V } \prg_new_protected_conditional:Npnn \file_get_hex_dump:nnnN #1#2#3#4 { T , F , TF } { - \__kernel_tl_set:Nx #4 + \__kernel_tl_set:Ne #4 { \file_hex_dump:nnn {#1} {#2} {#3} } \tl_if_empty:NTF #4 { \prg_return_false: } { \prg_return_true: } } +\prg_generate_conditional_variant:Nnn \file_get_hex_dump:nnnN + { V } { T , F , TF } % \end{macrocode} % \end{macro} % @@ -3262,7 +3353,13 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP, pTF]{\file_compare_timestamp:nNn} +% \begin{macro}[EXP, pTF] +% { +% \file_compare_timestamp:nNn, +% \file_compare_timestamp:nNV, +% \file_compare_timestamp:VNn +% \file_compare_timestamp:VNV +% } % \begin{macro}[EXP]{\@@_compare_timestamp:nnN} % \begin{macro}[EXP]{\@@_timestamp:n} % Comparison of file date can be done by using the low-level nature of the @@ -3276,6 +3373,8 @@ { \file_full_name:n {#3} } #2 } +\prg_generate_conditional_variant:Nnn \file_compare_timestamp:nNn + { nNV , V , VNV } { p , T , F , TF } \cs_new:Npn \@@_compare_timestamp:nnN #1#2#3 { \tl_if_blank:nTF {#1} @@ -3320,17 +3419,23 @@ % something, whereas if the file was not located then the return value % is empty. % \begin{macrocode} -\prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF } +\prg_new_conditional:Npnn \file_if_exist:n #1 { p , T , F , TF } { - \file_get_full_name:nNTF {#1} \l_@@_full_name_tl - { \prg_return_true: } + \tl_if_blank:eTF { \file_full_name:n {#1} } { \prg_return_false: } + { \prg_return_true: } } -\prg_generate_conditional_variant:Nnn \file_if_exist:n { V } { T , F , TF } +\prg_generate_conditional_variant:Nnn \file_if_exist:n { V } { p , T , F , TF } % \end{macrocode} % \end{macro} % -% \begin{macro}{\file_if_exist_input:n, \file_if_exist_input:nF} +% \begin{macro} +% { +% \file_if_exist_input:n, +% \file_if_exist_input:V, +% \file_if_exist_input:nF, +% \file_if_exist_input:VF +% } % Input of a file with a test for existence. We do not define the |T| % or |TF| variants because the most useful place to place the % \meta{true code} would be inconsistent with other conditionals. @@ -3340,12 +3445,14 @@ \file_get_full_name:nNT {#1} \l_@@_full_name_tl { \@@_input:V \l_@@_full_name_tl } } +\cs_generate_variant:Nn \file_if_exist_input:n { V } \cs_new_protected:Npn \file_if_exist_input:nF #1#2 { \file_get_full_name:nNTF {#1} \l_@@_full_name_tl { \@@_input:V \l_@@_full_name_tl } {#2} } +\cs_generate_variant:Nn \file_if_exist_input:nF { V } % \end{macrocode} % \end{macro} % @@ -3361,7 +3468,7 @@ % \begin{macrocode} \cs_new_protected:Npn \__kernel_file_missing:n #1 { - \msg_error:nnx { kernel } { file-not-found } + \msg_error:nne { kernel } { file-not-found } { \__kernel_file_name_sanitize:n {#1} } } % \end{macrocode} @@ -3384,7 +3491,7 @@ { \__kernel_file_missing:n {#1} } } \cs_generate_variant:Nn \file_input:n { V } -\cs_new_protected:Npx \@@_input:n #1 +\cs_new_protected:Npe \@@_input:n #1 { \exp_not:N \clist_if_exist:NTF \exp_not:N \@filelist { \exp_not:N \@addtofilelist {#1} } @@ -3403,7 +3510,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_input_push:n #1 { - \seq_gpush:Nx \g_@@_stack_seq + \seq_gpush:Ne \g_@@_stack_seq { { \g_file_curr_dir_str } { \g_file_curr_name_str } @@ -3435,12 +3542,13 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\file_input_raw:n, \@@_input_raw:nn} +% \begin{macro}{\file_input_raw:n, \file_input_raw:V, \@@_input_raw:nn} % No error checking, no tracking. % \begin{macrocode} \cs_new:Npn \file_input_raw:n #1 { \exp_args:Ne \@@_input_raw:nn { \file_full_name:n {#1} } {#1} } -\cs_new:Npx \@@_input_raw:nn #1#2 +\cs_generate_variant:Nn \file_input_raw:n { V } +\cs_new:Npe \@@_input_raw:nn #1#2 { \exp_not:N \tl_if_blank:nTF {#1} { @@ -3459,7 +3567,8 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\file_parse_full_name:n, \file_parse_full_name_apply:nN} +% \begin{macro}{\file_parse_full_name:n, \file_parse_full_name:nV} +% \begin{macro}{\file_parse_full_name_apply:nN \file_parse_full_name_apply:VN} % The main parsing macro \cs{file_parse_full_name_apply:nN} passes the % file name |#1| through \cs{__kernel_file_name_sanitize:n} so that we % have a single normalised way to treat files internally. @@ -3472,11 +3581,13 @@ \file_parse_full_name_apply:nN {#1} \prg_do_nothing: } +\cs_generate_variant:Nn \file_parse_full_name:n { V } \cs_new:Npn \file_parse_full_name_apply:nN #1 { \exp_args:Ne \@@_parse_full_name_auxi:nN { \__kernel_file_name_sanitize:n {#1} } } +\cs_generate_variant:Nn \file_parse_full_name_apply:nN { V } % \end{macrocode} % % \begin{macro}{\@@_parse_full_name_auxi:nN} @@ -3549,6 +3660,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\file_parse_full_name:nNNN, \file_parse_full_name:VNNN} % \begin{macrocode} @@ -3575,14 +3687,14 @@ % \cs{AtBeginDocument} into \cs{g_@@_record_seq}), turning it to a % string (this does not affect the commas of this comma list). % \begin{macrocode} -\cs_new_protected:Npn \file_show_list: { \@@_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \file_log_list: { \@@_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \file_show_list: { \@@_list:N \msg_show:nneeee } +\cs_new_protected:Npn \file_log_list: { \@@_list:N \msg_log:nneeee } \cs_new_protected:Npn \@@_list:N #1 { \seq_clear:N \l_@@_tmp_seq \clist_if_exist:NT \@filelist { - \exp_args:NNx \seq_set_from_clist:Nn \l_@@_tmp_seq + \exp_args:NNe \seq_set_from_clist:Nn \l_@@_tmp_seq { \tl_to_str:N \@filelist } } \seq_concat:NNN \l_@@_tmp_seq \l_@@_tmp_seq \g_@@_record_seq @@ -3605,7 +3717,7 @@ { \AtBeginDocument { - \exp_args:NNx \seq_set_from_clist:Nn \l_@@_tmp_seq + \exp_args:NNe \seq_set_from_clist:Nn \l_@@_tmp_seq { \tl_to_str:N \@filelist } \seq_gconcat:NNN \g_@@_record_seq @@ -3738,7 +3850,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_mismatched_dependency_error:nn #1 #2 { - \exp_args:NNx \ior_shell_open:Nn \g_@@_internal_ior + \exp_args:NNe \ior_shell_open:Nn \g_@@_internal_ior { kpsewhich ~ --all ~ --engine = \c_sys_engine_exec_str @@ -3869,7 +3981,7 @@ % \begin{macrocode} \sys_if_engine_luatex:TF { - \str_const:Nx \c_sys_platform_str + \str_const:Ne \c_sys_platform_str { \tex_directlua:D { tex.print(os.type) } } } { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 3fb39305353..637da52ee78 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -243,7 +243,7 @@ { \exp_args:Nc \__kernel_chk_defined:NT { flag~#2 } { - \exp_args:Nx #1 + \exp_args:Ne #1 { \tl_to_str:n { flag~#2~height } = \flag_height:n {#2} } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index ecdd6ea31cd..da05eafa395 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 2023-08-29} +% \date{Released 2023-10-10} % \maketitle % % \begin{documentation} @@ -80,11 +80,11 @@ % assignments. % \begin{macrocode} \cs_new_protected:Npn \fp_set:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \exp_not:f { \@@_parse:n {#2} } } } + { \__kernel_tl_set:Ne #1 { \exp_not:f { \@@_parse:n {#2} } } } \cs_new_protected:Npn \fp_gset:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \exp_not:f { \@@_parse:n {#2} } } } + { \__kernel_tl_gset:Ne #1 { \exp_not:f { \@@_parse:n {#2} } } } \cs_new_protected:Npn \fp_const:Nn #1#2 - { \tl_const:Nx #1 { \exp_not:f { \@@_parse:n {#2} } } } + { \tl_const:Ne #1 { \exp_not:f { \@@_parse:n {#2} } } } \cs_generate_variant:Nn \fp_set:Nn {c} \cs_generate_variant:Nn \fp_gset:Nn {c} \cs_generate_variant:Nn \fp_const:Nn {c} @@ -183,7 +183,7 @@ \s_@@ \@@_chk:w ??? ; \s_@@_stop } } - { \exp_args:Nx #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } } + { \exp_args:Ne #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } } } \cs_new:Npn \@@_show_validate:w #1 \s_@@ \@@_chk:w #2#3#4#5 ; #6 \s_@@_stop diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx index 1f6b3337610..3db65c9d29f 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -226,7 +226,7 @@ % stream and its contents reach \TeX{}'s stomach. % \begin{macrocode} \cs_new_protected:Npn \@@_misused:n #1 - { \msg_error:nnx { fp } { misused } { \fp_to_tl:n {#1} } } + { \msg_error:nne { fp } { misused } { \fp_to_tl:n {#1} } } % \end{macrocode} % \end{macro} % @@ -338,7 +338,7 @@ % point numbers. This replaces infinities when converting to formats % that do not support infinities. % \begin{macrocode} -\tl_const:Nx \c_@@_overflowing_fp +\tl_const:Ne \c_@@_overflowing_fp { \s_@@ \@@_chk:w 1 0 { \int_eval:n { \c_@@_max_exponent_int + 1 } } @@ -596,7 +596,7 @@ \s_@@ { \@@_type_from_scan_other:N #1 } \s_@@_stop } -\cs_new:Npx \@@_type_from_scan_other:N #1 +\cs_new:Npe \@@_type_from_scan_other:N #1 { \exp_not:N \exp_after:wN \exp_not:N \@@_type_from_scan:w \exp_not:N \token_to_str:N #1 \s_@@_mark diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index 6a8d6376fbc..3c5ad9195bf 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -129,7 +129,7 @@ % that \cs{@@_+_o:ww} can still perform the sanity check that it was % followed by \cs{s_@@}. % \begin{macrocode} -\cs_new:cpx { @@_-_o:ww } \s_@@ +\cs_new:cpe { @@_-_o:ww } \s_@@ { \exp_not:c { @@_+_o:ww } \exp_not:n { \s_@@ \@@_neg_sign:N } @@ -1429,11 +1429,11 @@ { + 5 * #1 \exp_after:wN \@@_div_significand_vi:Nw - \int_value:w \@@_int_eval:w -20 + 2*#2#3 - #1*#6#7 + + \int_value:w \@@_int_eval:w -50 + 2*#2#3 - #1*#6#7 + \exp_after:wN \@@_div_significand_v:NN - \int_value:w \@@_int_eval:w 199980 + 2*#4 - #1*#8 + + \int_value:w \@@_int_eval:w 499950 + 2*#4 - #1*#8 + \exp_after:wN \@@_div_significand_v:NN - \int_value:w \@@_int_eval:w 200000 + 2*#5 - #1*#9 ; + \int_value:w \@@_int_eval:w 500000 + 2*#5 - #1*#9 ; } \cs_new:Npn \@@_div_significand_v:NN #1#2 { #1#2 \@@_int_eval_end: + } \cs_new:Npn \@@_div_significand_vi:Nw #1#2; diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index bce0ddc8fd0..835f9c43414 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index d9c8cf5685b..5ac216bf4c4 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index 0a5ac448aac..b83b37335bd 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index 9f11464f295..2f439c2925b 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -487,7 +487,7 @@ { \int_gincr:N \g__kernel_prg_map_int \exp_args:NNc \@@_step:NNnnnn - \cs_gset_protected:Npx + \cs_gset_protected:Npe { @@_map_ \int_use:N \g__kernel_prg_map_int :w } {#1} {#2} {#3} { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index 86e2366f2dc..418974d8263 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -864,7 +864,7 @@ \exp_after:wN \@@_parse_exponent:N \exp:w \@@_parse_expand:w } -\cs_new:Npx \@@_parse_one_register_aux:Nw #1 +\cs_new:Npe \@@_parse_one_register_aux:Nw #1 { \exp_not:n { @@ -1937,7 +1937,7 @@ \fi: \@@_parse_expand:w } -\cs_new:Npx \@@_parse_lparen_after:NwN #1#2 @ #3 +\cs_new:Npe \@@_parse_lparen_after:NwN #1#2 @ #3 { \exp_not:N \token_if_eq_meaning:NNTF #3 \exp_not:c { @@_parse_infix_):N } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index bb0e4b12f01..3e3b5cfdfc2 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index c0c656189ff..f0853f59995 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index 9b59b1759d5..674ecdfd2db 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 2023-08-29} +% \date{Released 2023-10-10} % \maketitle % % \begin{documentation} @@ -127,11 +127,11 @@ { invalid_operation , division_by_zero , overflow , underflow } {#1} { - \msg_error:nnxx { fp } + \msg_error:nnee { fp } { unknown-fpu-trap-type } {#1} {#2} } { - \msg_error:nnx + \msg_error:nne { fp } { unknown-fpu-exception } {#1} } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx index f4cc0513add..b7bc6c19cec 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -91,13 +91,13 @@ {cos} {cot} {csc} {sec} {sin} {tan} } { - \cs_new:cpx { @@_parse_word_#1:N } + \cs_new:cpe { @@_parse_word_#1:N } { \exp_not:N \@@_parse_unary_function:NNN \exp_not:c { @@_#1_o:w } \exp_not:N \use_i:nn } - \cs_new:cpx { @@_parse_word_#1d:N } + \cs_new:cpe { @@_parse_word_#1d:N } { \exp_not:N \@@_parse_unary_function:NNN \exp_not:c { @@_#1_o:w } @@ -1201,7 +1201,7 @@ { #1 { acot } { acotd } } { \@@_atan_default:w \@@_acotii_o:Nww #1 } } -\cs_new:Npx \@@_atan_default:w #1#2#3 @ { #1 #2 #3 \c_one_fp @ } +\cs_new:Npe \@@_atan_default:w #1#2#3 @ { #1 #2 #3 \c_one_fp @ } % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index 17193dd8aff..60a7b7534fd 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index e3693f0a41e..9929135baa5 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -250,7 +250,7 @@ \cs_generate_variant:Nn \fparray_gset:Nnn { c } \cs_new_protected:Npn \@@_array_gset:NNNNww #1#2#3#4#5 ; #6 ; { - \@@_array_bounds:NNnTF \msg_error:nnxxx #4 {#5} + \@@_array_bounds:NNnTF \msg_error:nneee #4 {#5} { \exp_after:wN \@@_change_func_type:NNN \@@_use_i_until_s:nw #6 ; diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index 5bb880ead35..e012e191d21 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -1353,7 +1353,7 @@ % \end{macro} % % \begin{macro}{\int_const:Nn, \int_const:cn} -% \begin{macro}{\@@_const:nN} +% \begin{macro}{\@@_const:nN, \@@_const:eN} % \begin{macro}{\@@_constdef:Nw} % \begin{variable}{\c_@@_max_constdef_int} % \UnitTested @@ -1365,7 +1365,8 @@ % enabled) this runs some checks that constants would fail. % \begin{macrocode} \cs_new_protected:Npn \int_const:Nn #1#2 - { \exp_args:Nx \@@_const:nN { \int_eval:n {#2} } #1 } + { \@@_const:eN { \int_eval:n {#2} } #1 } +\cs_generate_variant:Nn \int_const:Nn { c } \cs_new_protected:Npn \@@_const:nN #1#2 { \int_compare:nNnTF {#1} < \c_zero_int @@ -1386,7 +1387,7 @@ } #2 = \@@_eval:w #1 \@@_eval_end: } -\cs_generate_variant:Nn \int_const:Nn { c } +\cs_generate_variant:Nn \@@_const:nN { e } \if_int_odd:w 0 \cs_if_exist:NT \tex_luatexversion:D { 1 } \cs_if_exist:NT \tex_omathchardef:D { 1 } @@ -2003,7 +2004,7 @@ { \int_gincr:N \g__kernel_prg_map_int \exp_args:NNc \@@_step:NNnnnn - \cs_gset_protected:Npx + \cs_gset_protected:Npe { @@_map_ \int_use:N \g__kernel_prg_map_int :w } {#1}{#2}{#3} { @@ -2035,7 +2036,7 @@ % % \begin{macro}{\int_to_symbols:nnn} % \UnitTested -% \begin{macro}{\@@_to_symbols:nnnn} +% \begin{macro}{\@@_to_symbols:nnnn, \@@_to_symbols:ennn} % For conversion of integers to arbitrary symbols the method is in % general as follows. The input number (|#1|) is compared to the total % number of symbols available at each place (|#2|). If the input is larger @@ -2050,7 +2051,7 @@ { \int_compare:nNnTF {#1} > {#2} { - \exp_args:NNo \exp_args:No \@@_to_symbols:nnnn + \@@_to_symbols:ennn { \int_case:nn { 1 + \int_mod:nn { #1 - 1 } {#2} } @@ -2066,6 +2067,7 @@ { \int_div_truncate:nn { #2 - 1 } {#3} } {#3} {#4} #1 } +\cs_generate_variant:Nn \@@_to_symbols:nnnn { e } % \end{macrocode} % \end{macro} % \end{macro} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index cdbf71784c6..10458ad602f 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -238,7 +238,7 @@ end, 'protected', 'global') { \__kernel_chk_if_free_cs:N #1 \int_gincr:N \g_@@_table_int - \cs_gset_nopar:Npx #1 { \@@:w \int_use:N \g_@@_table_int \c_space_tl } + \cs_gset_nopar:Npe #1 { \@@:w \int_use:N \g_@@_table_int \c_space_tl } } \cs_new_protected:Npn \intarray_new:Nn #1#2 { @@ -246,7 +246,7 @@ end, 'protected', 'global') \@@_gset_count:Nw #1 \int_eval:n {#2} \scan_stop: \int_compare:nNnT { \intarray_count:N #1 } < 0 { - \msg_error:nnx { kernel } { negative-array-size } + \msg_error:nne { kernel } { negative-array-size } { \intarray_count:N #1 } } } @@ -387,7 +387,7 @@ end, 'protected', 'global') { \@@_gset:wF \int_eval:n {#2} #1 \int_eval:n{#3} { - \msg_error:nnxxx { kernel } { out-of-bounds } + \msg_error:nneee { kernel } { out-of-bounds } { \token_to_str:N #1 } { \int_use:N \l_@@_bad_index_int } { \intarray_count:N #1 } } } @@ -640,7 +640,7 @@ luacmd('@@_gset_range:w', function() \@@_count:w #1 = \int_eval:n {#2} \scan_stop: \int_compare:nNnT { \intarray_count:N #1 } < 0 { - \msg_error:nnx { kernel } { negative-array-size } + \msg_error:nne { kernel } { negative-array-size } { \intarray_count:N #1 } } \int_compare:nNnT { \intarray_count:N #1 } > 0 @@ -716,7 +716,7 @@ luacmd('@@_gset_range:w', function() \cs_generate_variant:Nn \intarray_gset:Nnn { c } \cs_new_protected:Npn \@@_gset:Nww #1#2 ; #3 ; { - \@@_bounds:NNnTF \msg_error:nnxxx #1 {#2} + \@@_bounds:NNnTF \msg_error:nneee #1 {#2} { \@@_gset_overflow_test:nw {#3} \__kernel_intarray_gset:Nnn #1 {#2} {#3} @@ -742,7 +742,7 @@ luacmd('@@_gset_range:w', function() } \cs_new_protected:Npn \@@_gset_overflow:NNnn #1#2#3#4 { - \msg_error:nnxxxx { kernel } { overflow } + \msg_error:nneeee { kernel } { overflow } { \token_to_str:N #2 } {#3} {#4} { \@@_signed_max_dim:n {#4} } #1 #2 {#3} { \@@_signed_max_dim:n {#4} } } @@ -915,9 +915,9 @@ luacmd('@@_gset_range:w', function() % \begin{macro}{\intarray_show:N, \intarray_show:c, \intarray_log:N, \intarray_log:c} % Convert the list to a comma list (with spaces after each comma) % \begin{macrocode} -\cs_new_protected:Npn \intarray_show:N { \@@_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \intarray_show:N { \@@_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \intarray_show:N { c } -\cs_new_protected:Npn \intarray_log:N { \@@_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \intarray_log:N { \@@_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \intarray_log:N { c } \cs_new_protected:Npn \@@_show:NN #1#2 { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index c2d442f1832..d517f72a228 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -491,9 +491,9 @@ % only a single expansion. % \end{function} % -% \begin{function}{\__kernel_tl_set:Nx, \__kernel_tl_gset:Nx} +% \begin{function}{\__kernel_tl_set:Ne, \__kernel_tl_gset:Ne} % \begin{syntax} -% \cs{__kernel_tl_set:Nx} \meta{tl~var} \Arg{tokens} +% \cs{__kernel_tl_set:Ne} \meta{tl~var} \Arg{tokens} % \end{syntax} % Fully expands \meta{tokens} and assigns the result to \meta{tl~var}. % \meta{tokens} must be given in braces and there must be no token between @@ -545,7 +545,7 @@ % { % \__kernel_backend_literal:n, % \__kernel_backend_literal:e, -% \__kernel_backend_literal:x +% \__kernel_backend_literal:e % } % \begin{syntax} % \cs{__kernel_backend_literal:n} \Arg{content} @@ -558,7 +558,7 @@ % \begin{function} % { % \__kernel_backend_literal_postscript:n, -% \__kernel_backend_literal_postscript:x +% \__kernel_backend_literal_postscript:e % } % \begin{syntax} % \cs{__kernel_backend_literal_postscript:n} \Arg{PostScript} @@ -570,7 +570,7 @@ % \begin{function} % { % \__kernel_backend_literal_pdf:n, -% \__kernel_backend_literal_pdf:x +% \__kernel_backend_literal_pdf:e % } % \begin{syntax} % \cs{__kernel_backend_literal_pdf:n} \Arg{PDF instructions} @@ -582,7 +582,7 @@ % \begin{function} % { % \__kernel_backend_literal_svg:n, -% \__kernel_backend_literal_svg:x +% \__kernel_backend_literal_svg:e % } % \begin{syntax} % \cs{__kernel_backend_literal_svg:n} \Arg{SVG instructions} @@ -594,7 +594,7 @@ % \begin{function} % { % \__kernel_backend_postscript:n, -% \__kernel_backend_postscript:x +% \__kernel_backend_postscript:e % } % \begin{syntax} % \cs{__kernel_backend_postscript:n} \Arg{PostScript} @@ -626,7 +626,7 @@ % \begin{function} % { % \__kernel_backend_matrix:n, -% \__kernel_backend_matrix:x +% \__kernel_backend_matrix:e % } % \begin{syntax} % \cs{__kernel_backend_matrix:n} \Arg{matrix} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index 8a78f8cd7c2..95ddcd0a383 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -124,7 +124,8 @@ % % \section{Creating keys} % -% \begin{function}[updated = 2017-11-14]{\keys_define:nn} +% \begin{function}[updated = 2017-11-14] +% {\keys_define:nn, \keys_define:ne} % \begin{syntax} % \cs{keys_define:nn} \Arg{module} \Arg{keyval list} % \end{syntax} @@ -216,7 +217,7 @@ % \end{function} % % \begin{function}[added = 2011-08-21, updated = 2013-07-10] -% {.choices:nn, .choices:Vn, .choices:on, .choices:xn} +% {.choices:nn, .choices:Vn, .choices:en, .choices:on} % \begin{syntax} % \meta{key} .choices:nn = \Arg{choices} \Arg{code} % \end{syntax} @@ -263,7 +264,7 @@ % \end{function} % % \begin{function}[updated = 2013-07-09] -% {.default:n, .default:V, .default:o, .default:x} +% {.default:n, .default:V, .default:e, .default:o} % \begin{syntax} % \meta{key} .default:n = \Arg{default} % \end{syntax} @@ -355,7 +356,7 @@ % \end{function} % % \begin{function}[updated = 2013-07-09] -% {.initial:n, .initial:V, .initial:o, .initial:x} +% {.initial:n, .initial:V, .initial:e, .initial:o} % \begin{syntax} % \meta{key} .initial:n = \Arg{value} % \end{syntax} @@ -424,7 +425,7 @@ % \end{function} % % \begin{function}[added = 2011-08-21, updated = 2013-07-10] -% {.multichoices:nn, .multichoices:Vn, .multichoices:on, .multichoices:xn} +% {.multichoices:nn, .multichoices:Vn, .multichoices:en, .multichoices:on} % \begin{syntax} % \meta{key} .multichoices:nn \Arg{choices} \Arg{code} % \end{syntax} @@ -480,14 +481,14 @@ % at the point that the key is set up. % \end{function} % -% \begin{function}[added = 2021-10-30] -% {.str_set_x:N, .str_set_x:c, .str_gset_x:N, .str_gset_x:c} +% \begin{function}[added = 2023-09-18] +% {.str_set_e:N, .str_set_e:c, .str_gset_e:N, .str_gset_e:c} % \begin{syntax} -% \meta{key} .str_set_x:N = \meta{string variable} +% \meta{key} .str_set_e:N = \meta{string variable} % \end{syntax} % Defines \meta{key} to set \meta{string variable} to \meta{value}, -% which will be subjected to an \texttt{x}-type expansion -% (\emph{i.e.}~using \cs{str_set:Nx}). If the variable does not exist, +% which will be subjected to an \texttt{e}-type expansion +% (\emph{i.e.}~using \cs{str_set:Ne}). If the variable does not exist, % it is created globally at the point that the key is set up. % \end{function} % @@ -500,13 +501,14 @@ % at the point that the key is set up. % \end{function} % -% \begin{function}{.tl_set_x:N, .tl_set_x:c, .tl_gset_x:N, .tl_gset_x:c} +% \begin{function}[added = 2023-09-18] +% {.tl_set_e:N, .tl_set_e:c, .tl_gset_e:N, .tl_gset_e:c} % \begin{syntax} -% \meta{key} .tl_set_x:N = \meta{token list variable} +% \meta{key} .tl_set_e:N = \meta{token list variable} % \end{syntax} % Defines \meta{key} to set \meta{token list variable} to \meta{value}, -% which will be subjected to an \texttt{x}-type expansion -% (\emph{i.e.}~using \cs{tl_set:Nx}). If the variable does not exist, +% which will be subjected to an \texttt{e}-type expansion +% (\emph{i.e.}~using \cs{tl_set:Ne}). If the variable does not exist, % it is created globally at the point that the key is set up. % \end{function} % @@ -637,7 +639,7 @@ % key / choice-b .code:n = code-b, % key / choice-c .code:n = code-c, % key / unknown .code:n = -% \msg_error:nnxxx { mymodule } { unknown-choice } +% \msg_error:nneee { mymodule } { unknown-choice } % { key } % Name of choice key % { choice-a , choice-b , choice-c } % Valid choices % { \exp_not:n {#1} } % Invalid choice given @@ -724,7 +726,10 @@ % \section{Setting keys} % % \begin{function}[updated = 2017-11-14] -% {\keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:no, \keys_set:nx} +% { +% \keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:ne, +% \keys_set:no, +% } % \begin{syntax} % \cs{keys_set:nn} \Arg{module} \Arg{keyval list} % \end{syntax} @@ -782,11 +787,14 @@ % \begin{function}[added = 2011-08-23, updated = 2019-01-29] % { % \keys_set_known:nn, \keys_set_known:nV, -% \keys_set_known:nv, \keys_set_known:no, +% \keys_set_known:nv, \keys_set_known:ne, +% \keys_set_known:no % \keys_set_known:nnN, \keys_set_known:nVN, -% \keys_set_known:nvN, \keys_set_known:noN, +% \keys_set_known:nvN, \keys_set_known:neN, +% \keys_set_known:noN % \keys_set_known:nnnN, \keys_set_known:nVnN, -% \keys_set_known:nvnN, \keys_set_known:nonN +% \keys_set_known:nvnN, \keys_set_known:nenN, +% \keys_set_known:nonN % } % \begin{syntax} % \cs{keys_set_known:nn} \Arg{module} \Arg{keyval list} @@ -1730,7 +1738,7 @@ % % \subsection{The key defining mechanism} % -% \begin{macro}{\keys_define:nn} +% \begin{macro}{\keys_define:nn, \keys_define:ne, \keys_define:nx} % \begin{macro}{\@@_define:nnn, \@@_define:onn} % The public function for definitions is just a wrapper for the lower % level mechanism, more or less. The outer function is designed to @@ -1739,9 +1747,10 @@ % \begin{macrocode} \cs_new_protected:Npn \keys_define:nn { \@@_define:onn \l_@@_module_str } +\cs_generate_variant:Nn \keys_define:nn { ne , nx } \cs_new_protected:Npn \@@_define:nnn #1#2#3 { - \str_set:Nx \l_@@_module_str { \@@_trim_spaces:n {#2} } + \str_set:Ne \l_@@_module_str { \@@_trim_spaces:n {#2} } \keyval_parse:NNn \@@_define:n \@@_define:nn {#3} \str_set:Nn \l_@@_module_str {#1} } @@ -1776,7 +1785,7 @@ { \str_if_empty:NF \l_@@_property_str { - \msg_error:nnxx { keys } { property-unknown } + \msg_error:nnee { keys } { property-unknown } \l_@@_property_str \l_keys_path_str } } @@ -1798,12 +1807,12 @@ % and storing the text before and after it. Everything is turned into % strings, so there is no problem using an \texttt{x}-type expansion. Since % \cs{@@_trim_spaces:n} will turn its argument into a string anyway, this -% function uses \cs{cs_set_nopar:Npx} instead of \cs{tl_set:Nx} to gain some +% function uses \cs{cs_set_nopar:Npe} instead of \cs{tl_set:Ne} to gain some % speed. % \begin{macrocode} \cs_new_protected:Npn \@@_property_find:n #1 { - \cs_set_nopar:Npx \l_@@_property_str { \@@_trim_spaces:n { #1 } } + \cs_set_nopar:Npe \l_@@_property_str { \@@_trim_spaces:n { #1 } } \exp_after:wN \@@_property_find_auxi:w \l_@@_property_str \s_@@_nil \@@_property_find_auxii:w . \s_@@_nil \@@_property_find_err:w @@ -1816,22 +1825,22 @@ #1 \s_@@_mark #2 \s_@@_nil \@@_property_find_auxii:w . \s_@@_nil \@@_property_find_err:w { - \cs_set_nopar:Npx \l_keys_path_str + \cs_set_nopar:Npe \l_keys_path_str { \str_if_empty:NF \l_@@_module_str { \l_@@_module_str / } #1 } \@@_property_find_auxi:w #2 \s_@@_nil \@@_property_find_auxiii:w . \s_@@_nil \@@_property_find_auxiv:w } \cs_new_protected:Npn \@@_property_find_auxiii:w #1 \s_@@_mark { - \cs_set_nopar:Npx \l_keys_path_str { \l_keys_path_str . #1 } + \cs_set_nopar:Npe \l_keys_path_str { \l_keys_path_str . #1 } \@@_property_find_auxi:w } \cs_new_protected:Npn \@@_property_find_auxiv:w #1 \s_@@_nil \@@_property_find_auxiii:w \s_@@_mark \s_@@_nil \@@_property_find_auxiv:w { - \cs_set_nopar:Npx \l_@@_property_str { . #1 } - \cs_set_nopar:Npx \l_keys_path_str + \cs_set_nopar:Npe \l_@@_property_str { . #1 } + \cs_set_nopar:Npe \l_keys_path_str { \exp_after:wN \@@_trim_spaces:n \exp_after:wN { \l_keys_path_str } } \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str } @@ -1861,7 +1870,7 @@ \l_@@_property_str \s_@@_stop { \use:c { \c_@@_props_root_str \l_@@_property_str } } { - \msg_error:nnxx { keys } { property-requires-value } + \msg_error:nnee { keys } { property-requires-value } \l_@@_property_str \l_keys_path_str } } @@ -1896,13 +1905,13 @@ { \bool_if_exist:NF #1 { \bool_new:N #1 } \@@_choice_make: - \@@_cmd_set:nx { \l_keys_path_str / true } + \@@_cmd_set:ne { \l_keys_path_str / true } { \exp_not:c { bool_ #2 set_ #3 :N } \exp_not:N #1 } - \@@_cmd_set:nx { \l_keys_path_str / false } + \@@_cmd_set:ne { \l_keys_path_str / false } { \exp_not:c { bool_ #2 set_ #4 :N } \exp_not:N #1 } \@@_cmd_set_direct:nn { \l_keys_path_str / unknown } { - \msg_error:nnx { keys } { boolean-values-only } + \msg_error:nne { keys } { boolean-values-only } \l_keys_path_str } \@@_default_set:n { true } @@ -1932,7 +1941,7 @@ { \c_@@_type_root_str \@@_parent:o \l_keys_path_str } { choice } { - \msg_error:nnxx { keys } { nested-choice-key } + \msg_error:nnee { keys } { nested-choice-key } \l_keys_path_tl { \@@_parent:o \l_keys_path_str } } { \@@_choice_make_aux:N #1 } @@ -1946,7 +1955,7 @@ \@@_cmd_set_direct:nn \l_keys_path_str { #1 {##1} } \@@_cmd_set_direct:nn { \l_keys_path_str / unknown } { - \msg_error:nnxx { keys } { choice-unknown } + \msg_error:nnee { keys } { choice-unknown } \l_keys_path_str {##1} } } @@ -1971,7 +1980,7 @@ \clist_map_inline:nn {#2} { \int_incr:N \l_keys_choice_int - \@@_cmd_set:nx + \@@_cmd_set:ne { \l_keys_path_str / \@@_trim_spaces:n {##1} } { \tl_set:Nn \exp_not:N \l_keys_choice_tl {##1} @@ -1987,7 +1996,7 @@ % % \begin{macro} % { -% \@@_cmd_set:nn, \@@_cmd_set:nx, \@@_cmd_set:Vn, \@@_cmd_set:Vo, +% \@@_cmd_set:nn, \@@_cmd_set:Vn, \@@_cmd_set:ne, \@@_cmd_set:Vo, % \@@_cmd_set_direct:nn % } % Setting the code for a key first logs if appropriate that we are @@ -1995,7 +2004,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_cmd_set:nn #1#2 { \@@_cmd_set_direct:nn {#1} { \@@_precompile:n {#2} } } -\cs_generate_variant:Nn \@@_cmd_set:nn { nx , Vn , Vo } +\cs_generate_variant:Nn \@@_cmd_set:nn { ne , Vn , Vo } \cs_new_protected:Npn \@@_cmd_set_direct:nn #1#2 { \cs_set_protected:cpn { \c_@@_code_root_str #1 } ##1 {#2} } % \end{macrocode} @@ -2008,7 +2017,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_cs_set:NNpn #1#2#3# { - \cs_set_protected:cpx { \c_@@_code_root_str \l_keys_path_str } ##1 + \cs_set_protected:cpe { \c_@@_code_root_str \l_keys_path_str } ##1 { \@@_precompile:n { #1 \exp_not:N #2 \exp_not:n {#3} {##1} } @@ -2020,7 +2029,7 @@ % \end{macro} % % \begin{macro}{\@@_default_set:n} -% Setting a default value is easy. These are stored using \cs{cs_set_nopar:cpx} as this +% Setting a default value is easy. These are stored using \cs{cs_set_nopar:cpe} as this % avoids any worries about whether a token list exists. % \begin{macrocode} \cs_new_protected:Npn \@@_default_set:n #1 @@ -2032,7 +2041,7 @@ \tex_undefined:D } { - \cs_set_nopar:cpx + \cs_set_nopar:cpe { \c_@@_default_root_str \l_keys_path_str } { \exp_not:n {#1} } \@@_value_requirement:nn { required } { false } @@ -2114,13 +2123,13 @@ \cs_new_protected:Npn \@@_legacy_if_set:nnnn #1#2#3#4 { \@@_choice_make: - \@@_cmd_set:nx { \l_keys_path_str / true } + \@@_cmd_set:ne { \l_keys_path_str / true } { \exp_not:c { legacy_if_#2 set_ #3 :n } { \exp_not:n {#1} } } - \@@_cmd_set:nx { \l_keys_path_str / false } + \@@_cmd_set:ne { \l_keys_path_str / false } { \exp_not:c { legacy_if_#2 set_ #4 :n } { \exp_not:n {#1} } } \@@_cmd_set:nn { \l_keys_path_str / unknown } { - \msg_error:nnx { keys } { boolean-values-only } + \msg_error:nne { keys } { boolean-values-only } \l_keys_path_str } \@@_default_set:n { true } @@ -2165,7 +2174,7 @@ \prop_if_exist:NF #1 { \prop_new:N #1 } \exp_after:wN \@@_find_key_module:wNN \l_keys_path_str \s_@@_stop \l_@@_tmpa_tl \l_@@_tmpb_tl - \@@_cmd_set:nx \l_keys_path_str + \@@_cmd_set:ne \l_keys_path_str { \exp_not:c { prop_ #2 put:Nnn } \exp_not:N #1 @@ -2225,7 +2234,7 @@ } } { - \msg_error:nnx { keys } + \msg_error:nne { keys } { boolean-values-only } { .value_ #1 :n } } @@ -2234,7 +2243,7 @@ { \bool_if:NF \l_@@_no_value_bool { - \msg_error:nnxx { keys } { value-forbidden } + \msg_error:nnee { keys } { value-forbidden } \l_keys_path_str \l_keys_value_tl \use_none:nnn } @@ -2243,7 +2252,7 @@ { \bool_if:NT \l_@@_no_value_bool { - \msg_error:nnx { keys } { value-required } + \msg_error:nne { keys } { value-required } \l_keys_path_str \use_none:nnn } @@ -2294,7 +2303,7 @@ { \prop_get:NVNF #1 \l_@@_module_str \l_@@_tmpa_tl { \tl_clear:N \l_@@_tmpa_tl } - \tl_set:Nx \l_@@_tmpb_tl + \tl_set:Ne \l_@@_tmpb_tl { \exp_after:wN \@@_usage:w \l_keys_path_str \s_@@_stop } \bool_if:NTF #2 { \clist_put_right:NV \l_@@_tmpa_tl \l_@@_tmpb_tl } @@ -2316,7 +2325,7 @@ \cs_new_protected:Npn \@@_variable_set:NnnN #1#2#3#4 { \use:c { #2_if_exist:NF } #1 { \use:c { #2 _new:N } #1 } - \@@_cmd_set:nx \l_keys_path_str + \@@_cmd_set:ne \l_keys_path_str { \exp_not:c { #2 _ #3 set:N #4 } \exp_not:N #1 @@ -2386,8 +2395,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro} -% {.choices:nn, .choices:Vn, .choices:on, .choices:xn} +% \begin{macro}{.choices:nn, .choices:Vn, .choices:en, .choices:on, .choices:xn} % For auto-generation of a series of mutually-exclusive choices. % Here, |#1| consists of two separate % arguments, hence the slightly odd-looking implementation. @@ -2396,6 +2404,8 @@ { \@@_choices_make:nn #1 } \cs_new_protected:cpn { \c_@@_props_root_str .choices:Vn } #1 { \exp_args:NV \@@_choices_make:nn #1 } +\cs_new_protected:cpn { \c_@@_props_root_str .choices:en } #1 + { \exp_args:Ne \@@_choices_make:nn #1 } \cs_new_protected:cpn { \c_@@_props_root_str .choices:on } #1 { \exp_args:No \@@_choices_make:nn #1 } \cs_new_protected:cpn { \c_@@_props_root_str .choices:xn } #1 @@ -2452,13 +2462,15 @@ % \end{macro} % \end{macro} % -% \begin{macro}{.default:n, .default:V, .default:o, .default:x} +% \begin{macro}{.default:n, .default:V, .default:e, .default:o, .default:x} % Expansion is left to the internal functions. % \begin{macrocode} \cs_new_protected:cpn { \c_@@_props_root_str .default:n } #1 { \@@_default_set:n {#1} } \cs_new_protected:cpn { \c_@@_props_root_str .default:V } #1 { \exp_args:NV \@@_default_set:n #1 } +\cs_new_protected:cpn { \c_@@_props_root_str .default:e } #1 + { \exp_args:Ne \@@_default_set:n {#1} } \cs_new_protected:cpn { \c_@@_props_root_str .default:o } #1 { \exp_args:No \@@_default_set:n {#1} } \cs_new_protected:cpn { \c_@@_props_root_str .default:x } #1 @@ -2514,13 +2526,15 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{.initial:n, .initial:V, .initial:o, .initial:x} +% \begin{macro}{.initial:n, .initial:V, .initial:e, .initial:o, .initial:x} % The standard hand-off approach. % \begin{macrocode} \cs_new_protected:cpn { \c_@@_props_root_str .initial:n } #1 { \@@_initialise:n {#1} } \cs_new_protected:cpn { \c_@@_props_root_str .initial:V } #1 { \exp_args:NV \@@_initialise:n #1 } +\cs_new_protected:cpn { \c_@@_props_root_str .initial:e } #1 + { \exp_args:Ne \@@_initialise:n {#1} } \cs_new_protected:cpn { \c_@@_props_root_str .initial:o } #1 { \exp_args:No \@@_initialise:n {#1} } \cs_new_protected:cpn { \c_@@_props_root_str .initial:x } #1 @@ -2579,11 +2593,7 @@ % \end{macro} % % \begin{macro}{.multichoice:} -% \begin{macro} -% { -% .multichoices:nn, .multichoices:Vn, .multichoices:on, -% .multichoices:xn, -% } +% \begin{macro}{.multichoices:nn, .multichoices:Vn, .multichoices:en, .multichoices:on, .multichoices:xn} % The same idea as \texttt{.choice:} and \texttt{.choices:nn}, but % where more than one choice is allowed. % \begin{macrocode} @@ -2593,6 +2603,8 @@ { \@@_multichoices_make:nn #1 } \cs_new_protected:cpn { \c_@@_props_root_str .multichoices:Vn } #1 { \exp_args:NV \@@_multichoices_make:nn #1 } +\cs_new_protected:cpn { \c_@@_props_root_str .multichoices:en } #1 + { \exp_args:Ne \@@_multichoices_make:nn #1 } \cs_new_protected:cpn { \c_@@_props_root_str .multichoices:on } #1 { \exp_args:No \@@_multichoices_make:nn #1 } \cs_new_protected:cpn { \c_@@_props_root_str .multichoices:xn } #1 @@ -2647,26 +2659,26 @@ % % \begin{macro}{.str_set:N, .str_set:c} % \begin{macro}{.str_gset:N, .str_gset:c} -% \begin{macro}{.str_set_x:N, .str_set_x:c} -% \begin{macro}{.str_gset_x:N, .str_gset_x:c} +% \begin{macro}{.str_set_e:N, .str_set_e:c} +% \begin{macro}{.str_gset_e:N, .str_gset_e:c} % Setting a variable is very easy: just pass the data along. % \begin{macrocode} \cs_new_protected:cpn { \c_@@_props_root_str .str_set:N } #1 { \@@_variable_set:NnnN #1 { str } { } n } \cs_new_protected:cpn { \c_@@_props_root_str .str_set:c } #1 { \@@_variable_set:cnnN {#1} { str } { } n } -\cs_new_protected:cpn { \c_@@_props_root_str .str_set_x:N } #1 - { \@@_variable_set:NnnN #1 { str } { } x } -\cs_new_protected:cpn { \c_@@_props_root_str .str_set_x:c } #1 - { \@@_variable_set:cnnN {#1} { str } { } x } +\cs_new_protected:cpn { \c_@@_props_root_str .str_set_e:N } #1 + { \@@_variable_set:NnnN #1 { str } { } e } +\cs_new_protected:cpn { \c_@@_props_root_str .str_set_e:c } #1 + { \@@_variable_set:cnnN {#1} { str } { } e } \cs_new_protected:cpn { \c_@@_props_root_str .str_gset:N } #1 { \@@_variable_set:NnnN #1 { str } { g } n } \cs_new_protected:cpn { \c_@@_props_root_str .str_gset:c } #1 { \@@_variable_set:cnnN {#1} { str } { g } n } -\cs_new_protected:cpn { \c_@@_props_root_str .str_gset_x:N } #1 - { \@@_variable_set:NnnN #1 { str } { g } x } -\cs_new_protected:cpn { \c_@@_props_root_str .str_gset_x:c } #1 - { \@@_variable_set:cnnN {#1} { str } { g } x } +\cs_new_protected:cpn { \c_@@_props_root_str .str_gset_e:N } #1 + { \@@_variable_set:NnnN #1 { str } { g } e } +\cs_new_protected:cpn { \c_@@_props_root_str .str_gset_e:c } #1 + { \@@_variable_set:cnnN {#1} { str } { g } e } % \end{macrocode} % \end{macro} % \end{macro} @@ -2675,26 +2687,26 @@ % % \begin{macro}{.tl_set:N, .tl_set:c} % \begin{macro}{.tl_gset:N, .tl_gset:c} -% \begin{macro}{.tl_set_x:N, .tl_set_x:c} -% \begin{macro}{.tl_gset_x:N, .tl_gset_x:c} +% \begin{macro}{.tl_set_e:N, .tl_set_e:c} +% \begin{macro}{.tl_gset_e:N, .tl_gset_e:c} % Setting a variable is very easy: just pass the data along. % \begin{macrocode} \cs_new_protected:cpn { \c_@@_props_root_str .tl_set:N } #1 { \@@_variable_set:NnnN #1 { tl } { } n } \cs_new_protected:cpn { \c_@@_props_root_str .tl_set:c } #1 { \@@_variable_set:cnnN {#1} { tl } { } n } -\cs_new_protected:cpn { \c_@@_props_root_str .tl_set_x:N } #1 - { \@@_variable_set:NnnN #1 { tl } { } x } -\cs_new_protected:cpn { \c_@@_props_root_str .tl_set_x:c } #1 - { \@@_variable_set:cnnN {#1} { tl } { } x } +\cs_new_protected:cpn { \c_@@_props_root_str .tl_set_e:N } #1 + { \@@_variable_set:NnnN #1 { tl } { } e } +\cs_new_protected:cpn { \c_@@_props_root_str .tl_set_e:c } #1 + { \@@_variable_set:cnnN {#1} { tl } { } e } \cs_new_protected:cpn { \c_@@_props_root_str .tl_gset:N } #1 { \@@_variable_set:NnnN #1 { tl } { g } n } \cs_new_protected:cpn { \c_@@_props_root_str .tl_gset:c } #1 { \@@_variable_set:cnnN {#1} { tl } { g } n } -\cs_new_protected:cpn { \c_@@_props_root_str .tl_gset_x:N } #1 - { \@@_variable_set:NnnN #1 { tl } { g } x } -\cs_new_protected:cpn { \c_@@_props_root_str .tl_gset_x:c } #1 - { \@@_variable_set:cnnN {#1} { tl } { g } x } +\cs_new_protected:cpn { \c_@@_props_root_str .tl_gset_e:N } #1 + { \@@_variable_set:NnnN #1 { tl } { g } e } +\cs_new_protected:cpn { \c_@@_props_root_str .tl_gset_e:c } #1 + { \@@_variable_set:cnnN {#1} { tl } { g } e } % \end{macrocode} % \end{macro} % \end{macro} @@ -2732,7 +2744,8 @@ % % \begin{macro} % { -% \keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:no, \keys_set:nx, +% \keys_set:nn, \keys_set:nV, \keys_set:nv, \keys_set:ne, +% \keys_set:no, \keys_set:nx, % \@@_set:nn % } % \begin{macro}{\@@_set:nnn} @@ -2740,7 +2753,7 @@ % \begin{macrocode} \cs_new_protected:Npn \keys_set:nn #1#2 { - \use:x + \use:e { \bool_set_false:N \exp_not:N \l_@@_only_known_bool \bool_set_false:N \exp_not:N \l_@@_filtered_bool @@ -2758,12 +2771,12 @@ { \exp_not:o \l_@@_relative_tl } } } -\cs_generate_variant:Nn \keys_set:nn { nV , nv , no , nx } +\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx } \cs_new_protected:Npn \@@_set:nn #1#2 { \exp_args:No \@@_set:nnn \l_@@_module_str {#1} {#2} } \cs_new_protected:Npn \@@_set:nnn #1#2#3 { - \str_set:Nx \l_@@_module_str { \@@_trim_spaces:n {#2} } + \str_set:Ne \l_@@_module_str { \@@_trim_spaces:n {#2} } \keyval_parse:NNn \@@_set_keyval:n \@@_set_keyval:nn {#3} \str_set:Nn \l_@@_module_str {#1} } @@ -2774,18 +2787,21 @@ % \begin{macro} % { % \keys_set_known:nnN, \keys_set_known:nVN, -% \keys_set_known:nvN, \keys_set_known:noN +% \keys_set_known:nvN, \keys_set_known:neN, +% \keys_set_known:noN % } % \begin{macro} % { % \keys_set_known:nnnN, \keys_set_known:nVnN, -% \keys_set_known:nvnN, \keys_set_known:nonN +% \keys_set_known:nvnN, \keys_set_known:nenN, +% \keys_set_known:nonN % } % \begin{macro}{\@@_set_known:nnnnN} % \begin{macro} % { % \keys_set_known:nn, \keys_set_known:nV, -% \keys_set_known:nv, \keys_set_known:no +% \keys_set_known:nv, \keys_set_known:ne, +% \keys_set_known:no % } % \begin{macro}{\@@_set_known:nnn} % Setting known keys simply means setting the appropriate flag, then @@ -2799,26 +2815,26 @@ \exp_args:No \@@_set_known:nnnnN \l_@@_unused_clist \q_@@_no_value {#1} {#2} #3 } -\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , no } +\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no } \cs_new_protected:Npn \keys_set_known:nnnN #1#2#3#4 { \exp_args:No \@@_set_known:nnnnN \l_@@_unused_clist {#3} {#1} {#2} #4 } -\cs_generate_variant:Nn \keys_set_known:nnnN { nV , nv , no } +\cs_generate_variant:Nn \keys_set_known:nnnN { nV , nv , ne , no } \cs_new_protected:Npn \@@_set_known:nnnnN #1#2#3#4#5 { \clist_clear:N \l_@@_unused_clist \@@_set_known:nnn {#2} {#3} {#4} - \__kernel_tl_set:Nx #5 { \exp_not:o \l_@@_unused_clist } + \__kernel_tl_set:Ne #5 { \exp_not:o \l_@@_unused_clist } \tl_set:Nn \l_@@_unused_clist {#1} } \cs_new_protected:Npn \keys_set_known:nn #1#2 { \@@_set_known:nnn \q_@@_no_value {#1} {#2} } -\cs_generate_variant:Nn \keys_set_known:nn { nV , nv , no } +\cs_generate_variant:Nn \keys_set_known:nn { nV , nv , ne , no } \cs_new_protected:Npn \@@_set_known:nnn #1#2#3 { - \use:x + \use:e { \bool_set_true:N \exp_not:N \l_@@_only_known_bool \bool_set_false:N \exp_not:N \l_@@_filtered_bool @@ -2888,7 +2904,7 @@ { \clist_clear:N \l_@@_unused_clist \@@_set_filter:nnnn {#2} {#3} {#4} {#5} - \__kernel_tl_set:Nx #6 { \exp_not:o \l_@@_unused_clist } + \__kernel_tl_set:Ne #6 { \exp_not:o \l_@@_unused_clist } \tl_set:Nn \l_@@_unused_clist {#1} } \cs_new_protected:Npn \keys_set_filter:nnn #1#2#3 @@ -2896,7 +2912,7 @@ \cs_generate_variant:Nn \keys_set_filter:nnn { nnV , nnv , nno } \cs_new_protected:Npn \@@_set_filter:nnnn #1#2#3#4 { - \use:x + \use:e { \bool_set_false:N \exp_not:N \l_@@_only_known_bool \bool_set_true:N \exp_not:N \l_@@_filtered_bool @@ -2915,7 +2931,7 @@ } \cs_new_protected:Npn \keys_set_groups:nnn #1#2#3 { - \use:x + \use:e { \bool_set_false:N \exp_not:N \l_@@_only_known_bool \bool_set_false:N \exp_not:N \l_@@_filtered_bool @@ -3001,7 +3017,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_set_keyval:nnn #1#2#3 { - \__kernel_tl_set:Nx \l_keys_path_str + \__kernel_tl_set:Ne \l_keys_path_str { \tl_if_blank:nF {#1} { #1 / } @@ -3020,7 +3036,7 @@ } \cs_generate_variant:Nn \@@_set_keyval:nnn { o } % \end{macrocode} -% This function uses \cs{cs_set_nopar:Npx} internally for performance reasons, +% This function uses \cs{cs_set_nopar:Npe} internally for performance reasons, % the argument |#1| is already a string in every usage, so turning it into a % string again seems unnecessary. % \begin{macrocode} @@ -3036,12 +3052,12 @@ \cs_new_protected:Npn \@@_find_key_module_auxii:Nw #1 #2 \s_@@_mark #3 \s_@@_nil \@@_find_key_module_auxii:Nw { - \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 } + \cs_set_nopar:Npe #1 { \tl_if_empty:NF #1 { #1 / } #2 } \@@_find_key_module_auxi:Nw #1 #3 \s_@@_nil \@@_find_key_module_auxiii:Nw } \cs_new_protected:Npn \@@_find_key_module_auxiii:Nw #1 #2 \s_@@_mark { - \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 } + \cs_set_nopar:Npe #1 { \tl_if_empty:NF #1 { #1 / } #2 } \@@_find_key_module_auxi:Nw #1 } \cs_new_protected:Npn \@@_find_key_module_auxiv:Nw @@ -3209,7 +3225,7 @@ { \c_@@_code_root_str \l_@@_module_str / unknown } { \@@_execute:no { \l_@@_module_str / unknown } \l_keys_value_tl } { - \msg_error:nnxx { keys } { unknown } + \msg_error:nnee { keys } { unknown } \l_keys_path_str \l_@@_module_str } } @@ -3248,7 +3264,7 @@ { \@@_quark_if_no_value:NTF \l_@@_relative_tl { - \clist_put_right:Nx \l_@@_unused_clist + \clist_put_right:Ne \l_@@_unused_clist { \l_keys_key_str \bool_if:NF \l_@@_no_value_bool @@ -3258,7 +3274,7 @@ { \tl_if_empty:NTF \l_@@_relative_tl { - \clist_put_right:Nx \l_@@_unused_clist + \clist_put_right:Ne \l_@@_unused_clist { \l_keys_path_str \bool_if:NF \l_@@_no_value_bool @@ -3270,30 +3286,30 @@ } \cs_new_protected:Npn \@@_store_unused_aux: { - \__kernel_tl_set:Nx \l_@@_relative_tl + \__kernel_tl_set:Ne \l_@@_relative_tl { \exp_args:No \@@_trim_spaces:n \l_@@_relative_tl } - \use:x + \use:e { \cs_set_protected:Npn \@@_store_unused:w - ####1 \l_@@_relative_tl / - ####2 \l_@@_relative_tl / - ####3 \s_@@_stop + ##1 \l_@@_relative_tl / + ##2 \l_@@_relative_tl / + ##3 \s_@@_stop } { \tl_if_blank:nF {##1} { - \msg_error:nnxx { keys } { bad-relative-key-path } + \msg_error:nnee { keys } { bad-relative-key-path } \l_keys_path_str \l_@@_relative_tl } - \clist_put_right:Nx \l_@@_unused_clist + \clist_put_right:Ne \l_@@_unused_clist { \exp_not:n {##2} \bool_if:NF \l_@@_no_value_bool { = { \exp_not:o \l_keys_value_tl } } } } - \use:x + \use:e { \@@_store_unused:w \l_keys_path_str \l_@@_relative_tl / \l_@@_relative_tl / @@ -3458,9 +3474,9 @@ % To show a key, show its code using a message. % \begin{macrocode} \cs_new_protected:Npn \keys_show:nn - { \@@_show:Nnn \msg_show:nnxxxx } + { \@@_show:Nnn \msg_show:nneeee } \cs_new_protected:Npn \keys_log:nn - { \@@_show:Nnn \msg_log:nnxxxx } + { \@@_show:Nnn \msg_log:nneeee } \cs_new_protected:Npn \@@_show:Nnn #1#2#3 { #1 { keys } { show-key } @@ -3483,7 +3499,7 @@ } { } { } } -\cs_new:Npx \@@_show:n #1 +\cs_new:Npe \@@_show:n #1 { \exp_not:N \@@_show:w #1 @@ -3492,21 +3508,21 @@ \tl_to_str:n { \@@_precompile:n } \exp_not:N \s_@@_stop } -\use:x +\use:e { \cs_new:Npn \exp_not:N \@@_show:w - ##1 \tl_to_str:n { \@@_precompile:n } - ##2 \tl_to_str:n { \@@_precompile:n } - ##3 \exp_not:N \s_@@_stop + #1 \tl_to_str:n { \@@_precompile:n } + #2 \tl_to_str:n { \@@_precompile:n } + #3 \exp_not:N \s_@@_stop } { \tl_if_blank:nTF {#2} {#1} { \@@_show:Nw #2 \s_@@_stop } } -\use:x +\use:e { - \cs_new:Npn \exp_not:N \@@_show:Nw ##1##2 + \cs_new:Npn \exp_not:N \@@_show:Nw #1#2 \c_right_brace_str \exp_not:N \s_@@_stop } {#2} @@ -3568,6 +3584,38 @@ \prop_gput:Nnn \g_msg_module_type_prop { keys } { } % \end{macrocode} % +% \subsection{Deprecated functions} +% +% \begin{macro}{.str_set_x:N, .str_set_x:c} +% \begin{macro}{.str_gset_x:N, .str_gset_x:c} +% \begin{macrocode} +\cs_new_protected:cpn { \c_@@_props_root_str .str_set_x:N } #1 + { \@@_variable_set:NnnN #1 { str } { } x } +\cs_new_protected:cpn { \c_@@_props_root_str .str_set_x:c } #1 + { \@@_variable_set:cnnN {#1} { str } { } x } +\cs_new_protected:cpn { \c_@@_props_root_str .str_gset_x:N } #1 + { \@@_variable_set:NnnN #1 { str } { g } x } +\cs_new_protected:cpn { \c_@@_props_root_str .str_gset_x:c } #1 + { \@@_variable_set:cnnN {#1} { str } { g } x } +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{.tl_set_x:N, .tl_set_x:c} +% \begin{macro}{.tl_gset_x:N, .tl_gset_x:c} +% \begin{macrocode} +\cs_new_protected:cpn { \c_@@_props_root_str .tl_set_x:N } #1 + { \@@_variable_set:NnnN #1 { tl } { } x } +\cs_new_protected:cpn { \c_@@_props_root_str .tl_set_x:c } #1 + { \@@_variable_set:cnnN {#1} { tl } { } x } +\cs_new_protected:cpn { \c_@@_props_root_str .tl_gset_x:N } #1 + { \@@_variable_set:NnnN #1 { tl } { g } x } +\cs_new_protected:cpn { \c_@@_props_root_str .tl_gset_x:c } #1 + { \@@_variable_set:cnnN {#1} { tl } { g } x } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macrocode} %</package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index 4142ac4658f..92b8cdb971f 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index 4e1f6a5bb83..c7832c892df 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index 82092523fa1..4feb4115a10 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -105,8 +105,8 @@ % % \begin{function}[updated = 2011-08-16] % { -% \msg_new:nnnn, \msg_new:nnxx, -% \msg_new:nnn, \msg_new:nnx +% \msg_new:nnnn, \msg_new:nnee, +% \msg_new:nnn, \msg_new:nne % } % \begin{syntax} % \cs{msg_new:nnnn} \Arg{module} \Arg{message} \Arg{text} \Arg{more text} @@ -320,12 +320,12 @@ % \msg_fatal:nnVn , % \msg_fatal:nnnV , % \msg_fatal:nnV , -% \msg_fatal:nnxxxx , -% \msg_fatal:nnxxx , -% \msg_fatal:nnnxx , -% \msg_fatal:nnxx , -% \msg_fatal:nnnx , -% \msg_fatal:nnx +% \msg_fatal:nneeee , +% \msg_fatal:nneee , +% \msg_fatal:nnnee , +% \msg_fatal:nnee , +% \msg_fatal:nnne , +% \msg_fatal:nne % } % \begin{syntax} % \cs{msg_fatal:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} @@ -347,12 +347,12 @@ % \msg_critical:nnVn , % \msg_critical:nnnV , % \msg_critical:nnV , -% \msg_critical:nnxxxx , -% \msg_critical:nnxxx , -% \msg_critical:nnnxx , -% \msg_critical:nnxx , -% \msg_critical:nnnx , -% \msg_critical:nnx +% \msg_critical:nneeee , +% \msg_critical:nneee , +% \msg_critical:nnnee , +% \msg_critical:nnee , +% \msg_critical:nnne , +% \msg_critical:nne % } % \begin{syntax} % \cs{msg_critical:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} @@ -380,12 +380,12 @@ % \msg_error:nnVn , % \msg_error:nnnV , % \msg_error:nnV , -% \msg_error:nnxxxx , -% \msg_error:nnxxx , -% \msg_error:nnnxx , -% \msg_error:nnxx , -% \msg_error:nnnx , -% \msg_error:nnx +% \msg_error:nneeee , +% \msg_error:nneee , +% \msg_error:nnnee , +% \msg_error:nnee , +% \msg_error:nnne , +% \msg_error:nne % } % \begin{syntax} % \cs{msg_error:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} @@ -402,21 +402,20 @@ % \msg_warning:nnnnn , % \msg_warning:nnnn , % \msg_warning:nnn , -% \msg_warning:nnn , % \msg_warning:nn , % \msg_warning:nnVV , % \msg_warning:nnVn , % \msg_warning:nnnV , % \msg_warning:nnV , -% \msg_warning:nnxxxx , -% \msg_warning:nnxxx , -% \msg_warning:nnnxx , -% \msg_warning:nnxx , -% \msg_warning:nnnx , -% \msg_warning:nnx +% \msg_warning:nneeee , +% \msg_warning:nneee , +% \msg_warning:nnnee , +% \msg_warning:nnee , +% \msg_warning:nnne , +% \msg_warning:nne % } % \begin{syntax} -% \cs{msg_warning:nnxxxx} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} +% \cs{msg_warning:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} % \end{syntax} % Issues \meta{module} warning \meta{message}, passing \meta{arg one} % to \meta{arg four} to the text-creating functions. The warning text @@ -435,12 +434,12 @@ % \msg_note:nnVn , % \msg_note:nnnV , % \msg_note:nnV , -% \msg_note:nnxxxx , -% \msg_note:nnxxx , -% \msg_note:nnnxx , -% \msg_note:nnxx , -% \msg_note:nnnx , -% \msg_note:nnx , +% \msg_note:nneeee , +% \msg_note:nneee , +% \msg_note:nnnee , +% \msg_note:nnee , +% \msg_note:nnne , +% \msg_note:nne , % \msg_info:nnnnnn , % \msg_info:nnnnn , % \msg_info:nnnn , @@ -450,12 +449,12 @@ % \msg_info:nnVn , % \msg_info:nnnV , % \msg_info:nnV , -% \msg_info:nnxxxx , -% \msg_info:nnxxx , -% \msg_info:nnnxx , -% \msg_info:nnxx , -% \msg_info:nnnx , -% \msg_info:nnx +% \msg_info:nneeee , +% \msg_info:nneee , +% \msg_info:nnnee , +% \msg_info:nnee , +% \msg_info:nnne , +% \msg_info:nne % } % \begin{syntax} % \cs{msg_note:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} @@ -480,12 +479,12 @@ % \msg_term:nnVn , % \msg_term:nnnV , % \msg_term:nnV , -% \msg_term:nnxxxx , -% \msg_term:nnxxx , -% \msg_term:nnnxx , -% \msg_term:nnxx , -% \msg_term:nnnx , -% \msg_term:nnx , +% \msg_term:nneeee , +% \msg_term:nneee , +% \msg_term:nnnee , +% \msg_term:nnee , +% \msg_term:nnne , +% \msg_term:nne , % \msg_log:nnnnnn , % \msg_log:nnnnn , % \msg_log:nnnn , @@ -495,12 +494,12 @@ % \msg_log:nnVn , % \msg_log:nnnV , % \msg_log:nnV , -% \msg_log:nnxxxx , -% \msg_log:nnxxx , -% \msg_log:nnnxx , -% \msg_log:nnxx , -% \msg_log:nnnx , -% \msg_log:nnx +% \msg_log:nneeee , +% \msg_log:nneee , +% \msg_log:nnnee , +% \msg_log:nnee , +% \msg_log:nnne , +% \msg_log:nne % } % \begin{syntax} % \cs{msg_term:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} @@ -525,12 +524,12 @@ % \msg_none:nnVn , % \msg_none:nnnV , % \msg_none:nnV , -% \msg_none:nnxxxx , -% \msg_none:nnxxx , -% \msg_none:nnnxx , -% \msg_none:nnxx , -% \msg_none:nnnx , -% \msg_none:nnx +% \msg_none:nneeee , +% \msg_none:nneee , +% \msg_none:nnnee , +% \msg_none:nnee , +% \msg_none:nnne , +% \msg_none:nne % } % \begin{syntax} % \cs{msg_none:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} @@ -552,12 +551,12 @@ % \msg_show:nnVn , % \msg_show:nnnV , % \msg_show:nnV , -% \msg_show:nnxxxx , -% \msg_show:nnxxx , -% \msg_show:nnnxx , -% \msg_show:nnxx , -% \msg_show:nnnx , -% \msg_show:nnx +% \msg_show:nneeee , +% \msg_show:nneee , +% \msg_show:nnnee , +% \msg_show:nnee , +% \msg_show:nnne , +% \msg_show:nne % } % \begin{syntax} % \cs{msg_show:nnnnnn} \Arg{module} \Arg{message} \Arg{arg one} \Arg{arg two} \Arg{arg three} \Arg{arg four} @@ -579,7 +578,7 @@ % \cs{seq_map_function:NN} \meta{seq} \cs{msg_show_item:n} % \cs{prop_map_function:NN} \meta{prop} \cs{msg_show_item:nn} % \end{syntax} -% Used in the text of messages for \cs{msg_show:nnxxxx} to show or log +% Used in the text of messages for \cs{msg_show:nnnnnn} to show or log % a list of items or key--value pairs. The output of % \cs{msg_show_item:n} produces a newline, the prefix |>|, two spaces, % then the braced string representation of its argument. @@ -798,14 +797,18 @@ { \msg_if_exist:nnT {#1} {#2} { - \msg_error:nnxx { msg } { already-defined } + \msg_error:nnnn { msg } { already-defined } {#1} {#2} } } % \end{macrocode} % \end{macro} % -% \begin{macro}{\msg_new:nnnn, \msg_new:nnxx, \msg_new:nnn, \msg_new:nnx} +% \begin{macro} +% { +% \msg_new:nnnn, \msg_new:nnee, \msg_new:nnxx, +% \msg_new:nnn, \msg_new:nne, \msg_new:nnx +% } % \begin{macro}{\msg_gset:nnnn, \msg_gset:nnn} % \begin{macro}{\msg_set:nnnn, \msg_set:nnn} % Setting a message simply means saving the appropriate text @@ -816,10 +819,10 @@ \@@_chk_free:nn {#1} {#2} \msg_gset:nnnn {#1} {#2} } -\cs_generate_variant:Nn \msg_new:nnnn { nnxx } +\cs_generate_variant:Nn \msg_new:nnnn { nnee , nnxx } \cs_new_protected:Npn \msg_new:nnn #1#2#3 { \msg_new:nnnn {#1} {#2} {#3} { } } -\cs_generate_variant:Nn \msg_new:nnn { nnx } +\cs_generate_variant:Nn \msg_new:nnn { nne , nnx } \cs_new_protected:Npn \msg_set:nnnn #1#2#3#4 { \cs_set:cpn { \c_@@_text_prefix_tl #1 / #2 } @@ -923,8 +926,8 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_interrupt:NnnnN #1#2#3#4#5 { - \str_set:Nx \l_@@_text_str { #1 {#2} } - \str_set:Nx \l_@@_name_str { \msg_module_name:n {#2} } + \str_set:Ne \l_@@_text_str { #1 {#2} } + \str_set:Ne \l_@@_name_str { \msg_module_name:n {#2} } \cs_if_eq:cNTF { \c_@@_more_text_prefix_tl #2 / #3 } \@@_no_more_text:nnnn @@ -972,7 +975,7 @@ \iow_wrap:nnnN { \\ #3 } { } { } \@@_interrupt_more_text:n \group_begin: \int_sub:Nn \l_iow_line_count_int { 2 } - \iow_wrap:nxnN { \l_@@_text_str : ~ #1 } + \iow_wrap:nenN { \l_@@_text_str : ~ #1 } { ( \l_@@_name_str ) \prg_replicate:nn @@ -993,7 +996,7 @@ \tl_set:Nn \l_@@_internal_tl {#1} } \cs_new_protected:Npn \@@_interrupt_more_text:n #1 - { \exp_args:Nx \tex_errhelp:D { #1 \iow_newline: } } + { \exp_args:Ne \tex_errhelp:D { #1 \iow_newline: } } % \end{macrocode} % \end{macro} % \end{macro} @@ -1165,39 +1168,28 @@ ##1##2##3##4##5##6 {#2} \cs_new_protected:cpn { msg_ #1 :nnnnnn } ##1##2##3##4##5##6 { - \use:x + \use:e { \exp_not:n { \@@_use:nnnnnnn {#1} {##1} {##2} } { \tl_to_str:n {##3} } { \tl_to_str:n {##4} } { \tl_to_str:n {##5} } { \tl_to_str:n {##6} } } } - \cs_new_protected:cpx { msg_ #1 :nnnnn } ##1##2##3##4##5 + \cs_new_protected:cpe { msg_ #1 :nnnnn } ##1##2##3##4##5 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} {##4} {##5} { } } - \cs_new_protected:cpx { msg_ #1 :nnnn } ##1##2##3##4 + \cs_new_protected:cpe { msg_ #1 :nnnn } ##1##2##3##4 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} {##4} { } { } } - \cs_new_protected:cpx { msg_ #1 :nnn } ##1##2##3 + \cs_new_protected:cpe { msg_ #1 :nnn } ##1##2##3 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} { } { } { } } - \cs_new_protected:cpx { msg_ #1 :nn } ##1##2 + \cs_new_protected:cpe { msg_ #1 :nn } ##1##2 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} { } { } { } { } } - \cs_generate_variant:cn { msg_ #1 :nnn } { nnV } - \cs_generate_variant:cn { msg_ #1 :nnnn } { nnVV , nnVn , nnnV , nnnx } - \cs_generate_variant:cn { msg_ #1 :nnnnn } { nnnxx } - \cs_new_protected:cpx { msg_ #1 :nnxxxx } ##1##2##3##4##5##6 - { - \use:x - { - \exp_not:N \exp_not:n - { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} } - {##3} {##4} {##5} {##6} - } - } - \cs_new_protected:cpx { msg_ #1 :nnxxx } ##1##2##3##4##5 - { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} {##5} { } } - \cs_new_protected:cpx { msg_ #1 :nnxx } ##1##2##3##4 - { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} { } { } } - \cs_new_protected:cpx { msg_ #1 :nnx } ##1##2##3 - { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} { } { } { } } + \cs_generate_variant:cn { msg_ #1 :nnn } + { nnV , nne , nnx } + \cs_generate_variant:cn { msg_ #1 :nnnn } + { nnVV , nnVn , nnnV , nnne , nnnx , nnee , nnxx } + \cs_generate_variant:cn { msg_ #1 :nnnnn } + { nnnee , nnnxx , nneee , nnxxx } + \cs_generate_variant:cn { msg_ #1 :nnnnnn } { nneeee , nnxxxx } } % \end{macrocode} % \end{macro} @@ -1213,11 +1205,17 @@ % \msg_fatal:nnVn , % \msg_fatal:nnnV , % \msg_fatal:nnV , +% \msg_fatal:nneeee , +% \msg_fatal:nneee , % \msg_fatal:nnxxxx , % \msg_fatal:nnxxx , +% \msg_fatal:nnnee , +% \msg_fatal:nnee , % \msg_fatal:nnnxx , % \msg_fatal:nnxx , % \msg_fatal:nnnx , +% \msg_fatal:nnne , +% \msg_fatal:nne , % \msg_fatal:nnx % } % \begin{macro}{\@@_fatal_exit:} @@ -1253,11 +1251,17 @@ % \msg_critical:nnVn , % \msg_critical:nnnV , % \msg_critical:nnV , +% \msg_critical:nneeee , +% \msg_critical:nneee , % \msg_critical:nnxxxx , % \msg_critical:nnxxx , +% \msg_critical:nnnee , +% \msg_critical:nnee , % \msg_critical:nnnxx , % \msg_critical:nnxx , % \msg_critical:nnnx , +% \msg_critical:nnne , +% \msg_critical:nne , % \msg_critical:nnx % } % Not quite so bad: just end the current file. @@ -1284,11 +1288,17 @@ % \msg_error:nnVn , % \msg_error:nnnV , % \msg_error:nnV , +% \msg_error:nneeee , +% \msg_error:nneee , % \msg_error:nnxxxx , % \msg_error:nnxxx , +% \msg_error:nnnee , +% \msg_error:nnee , % \msg_error:nnnxx , % \msg_error:nnxx , % \msg_error:nnnx , +% \msg_error:nnne , +% \msg_error:nne , % \msg_error:nnx % } % For an error, the interrupt routine is called. We check if there is @@ -1296,8 +1306,8 @@ % permanently empty text. We have to undefine the bootstrap versions % here. % \begin{macrocode} - \cs_undefine:N \msg_error:nnxx - \cs_undefine:N \msg_error:nnx + \cs_undefine:N \msg_error:nnee + \cs_undefine:N \msg_error:nne \cs_undefine:N \msg_error:nn \@@_class_new:nn { error } { @@ -1321,11 +1331,17 @@ % \msg_warning:nnVn , % \msg_warning:nnnV , % \msg_warning:nnV , +% \msg_warning:nneeee , +% \msg_warning:nneee , % \msg_warning:nnxxxx , % \msg_warning:nnxxx , +% \msg_warning:nnnee , +% \msg_warning:nnee , % \msg_warning:nnnxx , % \msg_warning:nnxx , % \msg_warning:nnnx , +% \msg_warning:nnne , +% \msg_warning:nne , % \msg_warning:nnx , % \msg_note:nnnnnn , % \msg_note:nnnnn , @@ -1336,11 +1352,17 @@ % \msg_note:nnVn , % \msg_note:nnnV , % \msg_note:nnV , +% \msg_note:nneeee , +% \msg_note:nneee , % \msg_note:nnxxxx , % \msg_note:nnxxx , +% \msg_note:nnnee , +% \msg_note:nnee , % \msg_note:nnnxx , % \msg_note:nnxx , % \msg_note:nnnx , +% \msg_note:nnne , +% \msg_note:nne , % \msg_note:nnx , % \msg_info:nnnnnn , % \msg_info:nnnnn , @@ -1351,12 +1373,18 @@ % \msg_info:nnVn , % \msg_info:nnnV , % \msg_info:nnV , +% \msg_info:nneeee , +% \msg_info:nneee , % \msg_info:nnxxxx , % \msg_info:nnxxx , +% \msg_info:nnnee , +% \msg_info:nnee , % \msg_info:nnnxx , % \msg_info:nnxx , % \msg_info:nnnx , -% \msg_info:nnx , +% \msg_info:nnne , +% \msg_info:nne , +% \msg_info:nnx % } % Warnings and information messages have no decoration. Warnings are % printed to the terminal while information can either go to the log @@ -1364,10 +1392,10 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_info_aux:NNnnnnnn #1#2#3#4#5#6#7#8 { - \str_set:Nx \l_@@_text_str { #2 {#3} } - \str_set:Nx \l_@@_name_str { \msg_module_name:n {#3} } + \str_set:Ne \l_@@_text_str { #2 {#3} } + \str_set:Ne \l_@@_name_str { \msg_module_name:n {#3} } #1 { } - \iow_wrap:nxnN + \iow_wrap:nenN { \l_@@_text_str : ~ \use:c { \c_@@_text_prefix_tl #3 / #4 } {#5} {#6} {#7} {#8} @@ -1404,21 +1432,6 @@ % % \begin{macro} % { -% \msg_log:nnnnnn , -% \msg_log:nnnnn , -% \msg_log:nnnn , -% \msg_log:nnn , -% \msg_log:nn , -% \msg_log:nnVV , -% \msg_log:nnVn , -% \msg_log:nnnV , -% \msg_log:nnV , -% \msg_log:nnxxxx , -% \msg_log:nnxxx , -% \msg_log:nnnxx , -% \msg_log:nnxx , -% \msg_log:nnnx , -% \msg_log:nnx , % \msg_term:nnnnnn , % \msg_term:nnnnn , % \msg_term:nnnn , @@ -1428,12 +1441,39 @@ % \msg_term:nnVn , % \msg_term:nnnV , % \msg_term:nnV , +% \msg_term:nneeee , +% \msg_term:nneee , % \msg_term:nnxxxx , % \msg_term:nnxxx , +% \msg_term:nnnee , +% \msg_term:nnee , % \msg_term:nnnxx , % \msg_term:nnxx , % \msg_term:nnnx , +% \msg_term:nnne , +% \msg_term:nne , % \msg_term:nnx , +% \msg_log:nnnnnn , +% \msg_log:nnnnn , +% \msg_log:nnnn , +% \msg_log:nnn , +% \msg_log:nn , +% \msg_log:nnVV , +% \msg_log:nnVn , +% \msg_log:nnnV , +% \msg_log:nnV , +% \msg_log:nneeee , +% \msg_log:nneee , +% \msg_log:nnxxxx , +% \msg_log:nnxxx , +% \msg_log:nnnee , +% \msg_log:nnee , +% \msg_log:nnnxx , +% \msg_log:nnxx , +% \msg_log:nnnx , +% \msg_log:nnne , +% \msg_log:nne , +% \msg_log:nnx % } % \enquote{Log} data is very similar to information, but with no extras % added. @@ -1467,11 +1507,17 @@ % \msg_none:nnVn , % \msg_none:nnnV , % \msg_none:nnV , +% \msg_none:nneeee , +% \msg_none:nneee , % \msg_none:nnxxxx , % \msg_none:nnxxx , +% \msg_none:nnnee , +% \msg_none:nnee , % \msg_none:nnnxx , % \msg_none:nnxx , % \msg_none:nnnx , +% \msg_none:nnne , +% \msg_none:nne , % \msg_none:nnx % } % The \texttt{none} message type is needed so that input can be gobbled. @@ -1491,11 +1537,17 @@ % \msg_show:nnVn , % \msg_show:nnnV , % \msg_show:nnV , +% \msg_show:nneeee , +% \msg_show:nneee , % \msg_show:nnxxxx , % \msg_show:nnxxx , +% \msg_show:nnnee , +% \msg_show:nnee , % \msg_show:nnnxx , % \msg_show:nnxx , -% \msg_show:nnx , +% \msg_show:nnnx , +% \msg_show:nnne , +% \msg_show:nne , % \msg_show:nnx % } % \begin{macro}{\@@_show:n, \@@_show:w, \@@_show_dot:w, \@@_show:nn} @@ -1563,18 +1615,18 @@ % the messages. We need to use |^^J| here directly as \pkg{l3file} is % not yet loaded. % \begin{macrocode} -\cs_new:Npx \msg_show_item:n #1 +\cs_new:Npe \msg_show_item:n #1 { ^^J > ~ \c_space_tl \exp_not:N \tl_to_str:n { {#1} } } -\cs_new:Npx \msg_show_item_unbraced:n #1 +\cs_new:Npe \msg_show_item_unbraced:n #1 { ^^J > ~ \c_space_tl \exp_not:N \tl_to_str:n {#1} } -\cs_new:Npx \msg_show_item:nn #1#2 +\cs_new:Npe \msg_show_item:nn #1#2 { ^^J > \use:nn { ~ } { ~ } \exp_not:N \tl_to_str:n { {#1} } \use:nn { ~ } { ~ } => \use:nn { ~ } { ~ } \exp_not:N \tl_to_str:n { {#2} } } -\cs_new:Npx \msg_show_item_unbraced:nn #1#2 +\cs_new:Npe \msg_show_item_unbraced:nn #1#2 { ^^J > \use:nn { ~ } { ~ } \exp_not:N \tl_to_str:n {#1} @@ -1595,7 +1647,7 @@ \cs_new:Npn \@@_class_chk_exist:nT #1 { \cs_if_free:cTF { @@_ #1 _code:nnnnnn } - { \msg_error:nnx { msg } { class-unknown } {#1} } + { \msg_error:nnn { msg } { class-unknown } {#1} } } % \end{macrocode} % \end{macro} @@ -1654,7 +1706,7 @@ \@@_class_chk_exist:nT {#1} { \tl_set:Nn \l_@@_current_class_tl {#1} - \cs_set_protected:Npx \@@_use_code: + \cs_set_protected:Npe \@@_use_code: { \exp_not:n { @@ -1665,7 +1717,7 @@ \@@_use_redirect_name:n { #2 / #3 } } } - { \msg_error:nnxx { msg } { unknown } {#2} {#3} } + { \msg_error:nnnn { msg } { unknown } {#2} {#3} } \cs_if_exist_use:N \conditionally@traceon } \cs_new_protected:Npn \@@_use_code: { } @@ -1815,7 +1867,7 @@ \tl_if_eq:NNTF \l_@@_class_tl \l_@@_current_class_tl { \prop_put:cnn { l_@@_redirect_ #2 _prop } {#3} {#2} - \msg_warning:nnxxxx + \msg_warning:nneeee { msg } { redirect-loop } { \seq_item:Nn \l_@@_class_loop_seq { 1 } } { \seq_item:Nn \l_@@_class_loop_seq { 2 } } @@ -1871,26 +1923,26 @@ % % \begin{macro} % { -% \__kernel_msg_info:nnxx , -% \__kernel_msg_warning:nnx , -% \__kernel_msg_warning:nnxx , -% \__kernel_msg_error:nnx , -% \__kernel_msg_error:nnxx , -% \__kernel_msg_error:nnxxx +% \__kernel_msg_info:nnee , +% \__kernel_msg_warning:nne , +% \__kernel_msg_warning:nnee , +% \__kernel_msg_error:nne , +% \__kernel_msg_error:nnee , +% \__kernel_msg_error:nneee % } % \begin{macrocode} -\cs_new_protected:Npn \__kernel_msg_info:nnxx #1 - { \msg_info:nnxx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_warning:nnx #1 - { \msg_warning:nnx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_warning:nnxx #1 - { \msg_warning:nnxx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_error:nnx #1 - { \msg_error:nnx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_error:nnxx #1 - { \msg_error:nnxx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_error:nnxxx #1 - { \msg_error:nnxxx { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_info:nnee #1 + { \msg_info:nnee { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_warning:nne #1 + { \msg_warning:nne { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_warning:nnee #1 + { \msg_warning:nnee { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_error:nne #1 + { \msg_error:nne { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_error:nnee #1 + { \msg_error:nnee { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_error:nneee #1 + { \msg_error:nneee { LaTeX / #1 } } % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index f3f56f7f723..f299b215791 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx index ebfdc9115b7..f583b393ca4 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -60,7 +60,7 @@ % \end{function} % % \begin{function}[added = 2022-08-23] -% {\pdf_object_write:nnn, \pdf_object_write:nnx} +% {\pdf_object_write:nnn, \pdf_object_write:nne} % \begin{syntax} % \cs{pdf_object_write:nn} \Arg{object} \Arg{type} \Arg{content} % \end{syntax} @@ -87,7 +87,7 @@ % \end{function} % % \begin{function}[added = 2021-02-10] -% {\pdf_object_unnamed_write:nn, \pdf_object_unnamed_write:nx} +% {\pdf_object_unnamed_write:nn, \pdf_object_unnamed_write:ne} % \begin{syntax} % \cs{pdf_object_unnamed_write:nn} \Arg{type} \Arg{content} % \end{syntax} @@ -312,9 +312,14 @@ % \subsection{Objects} % % \begin{macro}{\pdf_object_new:n} -% \begin{macro}{\pdf_object_write:nnn, \pdf_object_write:nnx} +% \begin{macro} +% {\pdf_object_write:nnn, \pdf_object_write:nne, \pdf_object_write:nnx} % \begin{macro}{\pdf_object_ref:n} -% \begin{macro}{\pdf_object_unnamed_write:nn, \pdf_object_unnamed_write:nx} +% \begin{macro} +% { +% \pdf_object_unnamed_write:nn, \pdf_object_unnamed_write:ne, +% \pdf_object_unnamed_write:nx +% } % \begin{macro}{\pdf_object_ref_last:} % \begin{macro}[pTF]{\pdf_object_if_exist:n} % Simple to do: all objects create a constant |int| so it is not a @@ -332,14 +337,14 @@ \@@_backend_object_write:nnn {#1} {#2} {#3} \bool_gset_true:N \g_@@_init_bool } -\cs_generate_variant:Nn \pdf_object_write:nnn { nnx } +\cs_generate_variant:Nn \pdf_object_write:nnn { nne , nnx } \cs_new:Npn \pdf_object_ref:n #1 { \@@_backend_object_ref:n {#1} } \cs_new_protected:Npn \pdf_object_unnamed_write:nn #1#2 { \@@_backend_object_now:nn {#1} {#2} \bool_gset_true:N \g_@@_init_bool } -\cs_generate_variant:Nn \pdf_object_unnamed_write:nn { nx } +\cs_generate_variant:Nn \pdf_object_unnamed_write:nn { ne , nx } \cs_new:Npn \pdf_object_ref_last: { \@@_backend_object_last: } \prg_new_conditional:Npnn \pdf_object_if_exist:n #1 { p , T , F , TF } { @@ -536,7 +541,7 @@ } \cs_new_protected:Npn \pdf_object_write:nn #1#2 { - \exp_args:Nnx \@@_backend_object_write:nnn + \exp_args:Nne \@@_backend_object_write:nnn {#1} { \prop_item:Nn \g_@@_object_prop {#1} } {#2} \bool_gset_true:N \g_@@_init_bool } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index ec778817d3d..e3f09d90d31 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -1079,11 +1079,11 @@ { \token_case_meaning:NnF #2 { - \c_true_bool { \exp_args:Nx #1 { \token_to_str:N #2 = true } } - \c_false_bool { \exp_args:Nx #1 { \token_to_str:N #2 = false } } + \c_true_bool { \exp_args:Ne #1 { \token_to_str:N #2 = true } } + \c_false_bool { \exp_args:Ne #1 { \token_to_str:N #2 = false } } } { - \msg_error:nnxxx { kernel } { bad-type } + \msg_error:nneee { kernel } { bad-type } { \token_to_str:N #2 } { \token_to_meaning:N #2 } { bool } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index 2d5fc3edccf..69cafe1cff4 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -165,18 +165,28 @@ % % \begin{function}[updated = 2012-07-09] % { -% \prop_put:Nnn, \prop_put:NnV, \prop_put:Nno, \prop_put:Nne, \prop_put:Nnx, -% \prop_put:NVn, \prop_put:NVV, \prop_put:NVx, \prop_put:Nvx, -% \prop_put:Non, \prop_put:Nxn, \prop_put:NxV, \prop_put:Noo, \prop_put:Nxx, -% \prop_put:cnn, \prop_put:cnV, \prop_put:cno, \prop_put:cne, \prop_put:cnx, -% \prop_put:cVn, \prop_put:cVV, \prop_put:cVx, \prop_put:cvx, -% \prop_put:con, \prop_put:cxn, \prop_put:cxV, \prop_put:coo, \prop_put:cxx, -% \prop_gput:Nnn, \prop_gput:NnV, \prop_gput:Nno, \prop_gput:Nne, \prop_gput:Nnx, -% \prop_gput:NVn, \prop_gput:NVV, \prop_gput:NVx, \prop_gput:Nvx, -% \prop_gput:Non, \prop_gput:Nxn, \prop_gput:NxV, \prop_gput:Noo, \prop_gput:Nxx, -% \prop_gput:cnn, \prop_gput:cnV, \prop_gput:cno, \prop_gput:cne, \prop_gput:cnx, -% \prop_gput:cVn, \prop_gput:cVV, \prop_gput:cVx, \prop_gput:cvx, -% \prop_gput:con, \prop_gput:cxn, \prop_gput:cxV, \prop_gput:coo, \prop_gput:cxx +% \prop_put:Nnn, \prop_put:NnV, \prop_put:Nnv, \prop_put:Nne, +% \prop_put:NVn, \prop_put:NVV, \prop_put:NVv, \prop_put:NVe, +% \prop_put:Nvn, \prop_put:NvV, \prop_put:Nvv, \prop_put:Nve, +% \prop_put:Nen, \prop_put:NeV, \prop_put:Nev, \prop_put:Nee, +% \prop_put:Nno, \prop_put:Non, \prop_put:Noo, +% \prop_put:cnn, \prop_put:cnV, \prop_put:cnv, \prop_put:cne, +% \prop_put:cno, +% \prop_put:cVn, \prop_put:cVV, \prop_put:cVv, \prop_put:cVe, +% \prop_put:cvn, \prop_put:cvV, \prop_put:cvv, \prop_put:cve, +% \prop_put:cen, \prop_put:ceV, \prop_put:cev, \prop_put:cee, +% \prop_put:con, \prop_put:coo, +% \prop_gput:Nnn, \prop_gput:NnV, \prop_gput:Nnv, \prop_gput:Nne, +% \prop_gput:NVn, \prop_gput:NVV, \prop_gput:NVv, \prop_gput:NVe, +% \prop_gput:Nvn, \prop_gput:NvV, \prop_gput:Nvv, \prop_gput:Nve, +% \prop_gput:Nen, \prop_gput:NeV, \prop_gput:Nev, \prop_gput:Nee, +% \prop_gput:Nno, \prop_gput:Non, \prop_gput:Noo, +% \prop_gput:cnn, \prop_gput:cnV, \prop_gput:cnv, \prop_gput:cne, +% \prop_gput:cno, +% \prop_gput:cVn, \prop_gput:cVV, \prop_gput:cVv, \prop_gput:cVe, +% \prop_gput:cvn, \prop_gput:cvV, \prop_gput:cvv, \prop_gput:cve, +% \prop_gput:cen, \prop_gput:ceV, \prop_gput:cev, \prop_gput:cee, +% \prop_gput:con, \prop_gput:coo % } % \begin{syntax} % \cs{prop_put:Nnn} \meta{property list} \Arg{key} \Arg{value} @@ -192,8 +202,10 @@ % % \begin{function} % { -% \prop_put_if_new:Nnn, \prop_put_if_new:cnn, -% \prop_gput_if_new:Nnn, \prop_gput_if_new:cnn +% \prop_put_if_new:Nnn, \prop_put_if_new:NVn, \prop_put_if_new:NnV, +% \prop_put_if_new:cnn, \prop_put_if_new:cVn, \prop_put_if_new:cnV, +% \prop_gput_if_new:Nnn, \prop_gput_if_new:NVn, \prop_gput_if_new:NnV, +% \prop_gput_if_new:cnn, \prop_gput_if_new:cVn, \prop_gput_if_new:cnV % } % \begin{syntax} % \cs{prop_put_if_new:Nnn} \meta{property list} \Arg{key} \Arg{value} @@ -250,8 +262,10 @@ % % \begin{function}[updated = 2011-08-28] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NeN, +% \prop_get:NoN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:ceN, +% \prop_get:coN, % \prop_get:cnc % } % \begin{syntax} @@ -267,7 +281,12 @@ % \end{function} % % \begin{function}[updated = 2011-08-18] -% {\prop_pop:NnN, \prop_pop:NoN, \prop_pop:cnN, \prop_pop:coN} +% { +% \prop_pop:NnN, \prop_pop:NVN, +% \prop_pop:NoN, +% \prop_pop:cnN, \prop_pop:cVN, +% \prop_pop:coN +% } % \begin{syntax} % \cs{prop_pop:NnN} \meta{property list} \Arg{key} \meta{tl var} % \end{syntax} @@ -281,7 +300,12 @@ % \end{function} % % \begin{function}[updated = 2011-08-18] -% {\prop_gpop:NnN, \prop_gpop:NoN, \prop_gpop:cnN, \prop_gpop:coN} +% { +% \prop_gpop:NnN, \prop_gpop:NVN, +% \prop_gpop:NoN, +% \prop_gpop:cnN, \prop_gpop:cVN, +% \prop_gpop:coN +% } % \begin{syntax} % \cs{prop_gpop:NnN} \meta{property list} \Arg{key} \meta{tl var} % \end{syntax} @@ -297,8 +321,8 @@ % % \begin{function}[added = 2014-07-17, EXP] % { -% \prop_item:Nn, \prop_item:NV, \prop_item:No, \prop_item:Ne, -% \prop_item:cn, \prop_item:cV, \prop_item:co, \prop_item:ce +% \prop_item:Nn, \prop_item:NV, \prop_item:Ne, \prop_item:No, +% \prop_item:cn, \prop_item:cV, \prop_item:ce, \prop_item:co % } % \begin{syntax} % \cs{prop_item:Nn} \meta{property list} \Arg{key} @@ -343,8 +367,10 @@ % % \begin{function}[added = 2012-05-12] % { -% \prop_remove:Nn, \prop_remove:NV, \prop_remove:cn, \prop_remove:cV, -% \prop_gremove:Nn, \prop_gremove:NV, \prop_gremove:cn, \prop_gremove:cV +% \prop_remove:Nn, \prop_remove:NV, \prop_remove:Ne, +% \prop_remove:cn, \prop_remove:cV, \prop_remove:ce, +% \prop_gremove:Nn, \prop_gremove:NV, \prop_gremove:Ne, +% \prop_gremove:cn, \prop_gremove:cV, \prop_gremove:ce, % } % \begin{syntax} % \cs{prop_remove:Nn} \meta{property list} \Arg{key} @@ -378,8 +404,8 @@ % % \begin{function}[updated = 2011-09-15, EXP, pTF] % { -% \prop_if_in:Nn, \prop_if_in:NV, \prop_if_in:No, -% \prop_if_in:cn, \prop_if_in:cV, \prop_if_in:co +% \prop_if_in:Nn, \prop_if_in:NV, \prop_if_in:Ne, \prop_if_in:No, +% \prop_if_in:cn, \prop_if_in:cV, \prop_if_in:ce, \prop_if_in:co % } % \begin{syntax} % \cs{prop_if_in_p:Nn} \meta{property list} \Arg{key} @@ -404,8 +430,10 @@ % % \begin{function}[updated = 2012-05-19, TF] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NeN, +% \prop_get:NoN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:ceN, +% \prop_get:coN, % \prop_get:cnc % } % \begin{syntax} @@ -423,7 +451,12 @@ % \end{function} % % \begin{function}[TF, added = 2011-08-18, updated = 2012-05-19] -% {\prop_pop:NnN, \prop_pop:cnN} +% { +% \prop_pop:NnN, \prop_pop:NVN, +% \prop_pop:NoN, +% \prop_pop:cnN, \prop_pop:cVN, +% \prop_pop:coN +% } % \begin{syntax} % \cs{prop_pop:NnNTF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} \Arg{false code} % \end{syntax} @@ -439,7 +472,12 @@ % \end{function} % % \begin{function}[TF, added = 2011-08-18, updated = 2012-05-19] -% {\prop_gpop:NnN, \prop_gpop:cnN} +% { +% \prop_gpop:NnN, \prop_gpop:NVN, +% \prop_gpop:NoN, +% \prop_gpop:cnN, \prop_gpop:cVN, +% \prop_gpop:coN +% } % \begin{syntax} % \cs{prop_gpop:NnNTF} \meta{property list} \Arg{key} \meta{token list variable} \Arg{true code} \Arg{false code} % \end{syntax} @@ -874,7 +912,7 @@ \cs_new_protected:Npn \prop_const_from_keyval:Nn #1#2 { \prop_set_from_keyval:Nn \l_@@_internal_prop {#2} - \tl_const:Nx #1 { \exp_not:o \l_@@_internal_prop } + \tl_const:Ne #1 { \exp_not:o \l_@@_internal_prop } \prop_clear:N \l_@@_internal_prop } \cs_generate_variant:Nn \prop_const_from_keyval:Nn { c } @@ -959,9 +997,15 @@ % \end{macro} % % \begin{macro}[tested = m3prop002] -% {\prop_remove:Nn, \prop_remove:NV, \prop_remove:cn, \prop_remove:cV} +% { +% \prop_remove:Nn, \prop_remove:NV, \prop_remove:Ne, +% \prop_remove:cn, \prop_remove:cV, \prop_remove:ce +% } % \begin{macro}[tested = m3prop002] -% {\prop_gremove:Nn, \prop_gremove:NV, \prop_gremove:cn, \prop_gremove:cV} +% { +% \prop_gremove:Nn, \prop_gremove:NV, \prop_gremove:Ne, +% \prop_gremove:cn, \prop_gremove:cV, \prop_gremove:ce +% } % Deleting from a property starts by splitting the list. % If the key is present in the property list, the returned value is ignored. % If the key is missing, nothing happens. @@ -978,18 +1022,18 @@ { \tl_gset:Nn #1 { ##1 ##3 } } { } } -\cs_generate_variant:Nn \prop_remove:Nn { NV } -\cs_generate_variant:Nn \prop_remove:Nn { c , cV } -\cs_generate_variant:Nn \prop_gremove:Nn { NV } -\cs_generate_variant:Nn \prop_gremove:Nn { c , cV } +\cs_generate_variant:Nn \prop_remove:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \prop_gremove:Nn { NV , Ne , c , cV , ce } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}[tested = m3prop002] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NeN, +% \prop_get:NoN, \prop_get:NxN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:ceN, +% \prop_get:coN, \prop_get:cxN, % \prop_get:cnc % } % Getting an item from a list is very easy: after splitting, @@ -1002,15 +1046,26 @@ { \tl_set:Nn #3 {##2} } { \tl_set:Nn #3 { \q_no_value } } } -\cs_generate_variant:Nn \prop_get:NnN { NV , Nv , No , Nx } -\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co , cx , cnc } +\cs_generate_variant:Nn \prop_get:NnN { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \prop_get:NnN { No , Nx , co , cx } +\cs_generate_variant:Nn \prop_get:NnN { cnc } % \end{macrocode} % \end{macro} % % \begin{macro}[tested = m3prop002] -% {\prop_pop:NnN, \prop_pop:NoN, \prop_pop:cnN, \prop_pop:coN} +% { +% \prop_pop:NnN, \prop_pop:NVN, +% \prop_pop:NoN, +% \prop_pop:cnN, \prop_pop:cVN, +% \prop_pop:coN, +% } % \begin{macro}[tested = m3prop002] -% {\prop_gpop:NnN, \prop_gpop:NoN, \prop_gpop:cnN, \prop_gpop:coN} +% { +% \prop_gpop:NnN, \prop_gpop:NVN, +% \prop_gpop:NoN, +% \prop_gpop:cnN, \prop_gpop:cVN, +% \prop_gpop:coN, +% } % Popping a value also starts by doing the split. % If the key is present, save the value in the token list and update the % property list as when deleting. @@ -1034,10 +1089,10 @@ } { \tl_set:Nn #3 { \q_no_value } } } -\cs_generate_variant:Nn \prop_pop:NnN { No } -\cs_generate_variant:Nn \prop_pop:NnN { c , co } -\cs_generate_variant:Nn \prop_gpop:NnN { No } -\cs_generate_variant:Nn \prop_gpop:NnN { c , co } +\cs_generate_variant:Nn \prop_pop:NnN { NV , No } +\cs_generate_variant:Nn \prop_pop:NnN { c , cV , co } +\cs_generate_variant:Nn \prop_gpop:NnN { NV , No } +\cs_generate_variant:Nn \prop_gpop:NnN { c , cV , co } % \end{macrocode} % \end{macro} % \end{macro} @@ -1129,7 +1184,13 @@ % \end{macro} % % \begin{macro}[TF, tested = m3prop004] -% {\prop_pop:NnN, \prop_pop:cnN, \prop_gpop:NnN, \prop_gpop:cnN} +% { +% \prop_pop:NnN, \prop_pop:NVN, +% \prop_pop:cnN, \prop_pop:cVN, +% \prop_gpop:NnN, \prop_gpop:NVN, +% \prop_gpop:NoN, +% \prop_gpop:cnN, \prop_gpop:cVN, +% } % Popping an item from a property list, keeping track of whether % the key was present or not, is implemented as a conditional. % If the key was missing, neither the property list, nor the token @@ -1156,28 +1217,40 @@ } { \prg_return_false: } } -\prg_generate_conditional_variant:Nnn \prop_pop:NnN { c } { T , F , TF } -\prg_generate_conditional_variant:Nnn \prop_gpop:NnN { c } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_pop:NnN { NV , c , cV } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_gpop:NnN { NV , c , cV } { T , F , TF } % \end{macrocode} % \end{macro} % % \begin{macro}[tested = m3prop002] % { -% \prop_put:Nnn, \prop_put:NnV, \prop_put:Nno, \prop_put:Nne, \prop_put:Nnx, -% \prop_put:NVn, \prop_put:NVV, \prop_put:NVx, \prop_put:Nvx, -% \prop_put:Non, \prop_put:Nxn, \prop_put:NxV, \prop_put:Noo, \prop_put:Nxx, -% \prop_put:cnn, \prop_put:cnV, \prop_put:cno, \prop_put:cne, \prop_put:cnx, -% \prop_put:cVn, \prop_put:cVV, \prop_put:cVx, \prop_put:cvx, -% \prop_put:con, \prop_put:cxn, \prop_put:cxV, \prop_put:coo, \prop_put:cxx +% \prop_put:Nnn, \prop_put:NnV, \prop_put:Nnv, \prop_put:Nne, +% \prop_put:NVn, \prop_put:NVV, \prop_put:NVv, \prop_put:NVe, +% \prop_put:Nvn, \prop_put:NvV, \prop_put:Nvv, \prop_put:Nve, +% \prop_put:Nen, \prop_put:NeV, \prop_put:Nev, \prop_put:Nee, +% \prop_put:Nno, \prop_put:Nnx, \prop_put:NVx, +% \prop_put:Non, \prop_put:Noo, \prop_put:NxV, \prop_put:Nxx, +% \prop_put:cnn, \prop_put:cnV, \prop_put:cnv, \prop_put:cne, +% \prop_put:cno, \prop_put:cnx, +% \prop_put:cVn, \prop_put:cVV, \prop_put:cVv, \prop_put:cVe, +% \prop_put:cvn, \prop_put:cvV, \prop_put:cvv, \prop_put:cve, +% \prop_put:cen, \prop_put:ceV, \prop_put:cev, \prop_put:cee, +% \prop_put:con, \prop_put:coo, \prop_put:cxV, \prop_put:cxx % } % \begin{macro}[tested = m3prop002] % { -% \prop_gput:Nnn, \prop_gput:NnV, \prop_gput:Nno, \prop_gput:Nne, \prop_gput:Nnx, -% \prop_gput:NVn, \prop_gput:NVV, \prop_gput:NVx, \prop_hput:Nvx, -% \prop_gput:Non, \prop_gput:Nxn, \prop_pgut:NxV, \prop_gput:Noo, \prop_gput:Nxx, -% \prop_gput:cnn, \prop_gput:cnV, \prop_gput:cno, \prop_gput:cne, \prop_gput:cnx, -% \prop_gput:cVn, \prop_gput:cVV, \prop_gput:cVx, \prop_gput:cvx, -% \prop_gput:con, \prop_gput:cxn, \prop_gput:cxV, \prop_gput:coo, \prop_gput:cxx +% \prop_gput:Nnn, \prop_gput:NnV, \prop_gput:Nnv, \prop_gput:Nne, +% \prop_gput:NVn, \prop_gput:NVV, \prop_gput:NVv, \prop_gput:NVe, +% \prop_gput:Nvn, \prop_gput:NvV, \prop_gput:Nvv, \prop_gput:Nve, +% \prop_gput:Nen, \prop_gput:NeV, \prop_gput:Nev, \prop_gput:Nee, +% \prop_gput:Nno, \prop_gput:Non, \prop_gput:Noo, +% \prop_gput:Nnx, \prop_gput:NVx, \prop_gput:Nxn, \prop_gput:Nxx, +% \prop_gput:cnn, \prop_gput:cnV, \prop_gput:cnv, \prop_gput:cne, +% \prop_gput:cno, \prop_gput:cnx, +% \prop_gput:cVn, \prop_gput:cVV, \prop_gput:cVv, \prop_gput:cVe, +% \prop_gput:cvn, \prop_gput:cvV, \prop_gput:cvv, \prop_gput:cve, +% \prop_gput:cen, \prop_gput:ceV, \prop_gput:cev, \prop_gput:cee, +% \prop_gput:cno, \prop_gput:con, \prop_gput:cxn, \prop_gput:cxx % } % \begin{macro}{\@@_put:NNnn} % Since the branches of \cs{@@_split:NnTF} are used as the replacement @@ -1193,8 +1266,8 @@ % updated entry is placed at the same spot as the original \meta{key} % in the property list, preserving the order of entries. % \begin{macrocode} -\cs_new_protected:Npn \prop_put:Nnn { \@@_put:NNnn \__kernel_tl_set:Nx } -\cs_new_protected:Npn \prop_gput:Nnn { \@@_put:NNnn \__kernel_tl_gset:Nx } +\cs_new_protected:Npn \prop_put:Nnn { \@@_put:NNnn \__kernel_tl_set:Ne } +\cs_new_protected:Npn \prop_gput:Nnn { \@@_put:NNnn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_put:NNnn #1#2#3#4 { \tl_set:Nn \l_@@_internal_tl @@ -1207,22 +1280,48 @@ { #1 #2 { \exp_not:o {#2} \l_@@_internal_tl } } } \cs_generate_variant:Nn \prop_put:Nnn - { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx } + { + NnV , Nnv , Nne , NV , NVV , NVv , NVe , + Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee + } +\cs_generate_variant:Nn \prop_put:Nnn + { Nno , No , Noo , Nnx , NVx , NxV , Nxx } +\cs_generate_variant:Nn \prop_put:Nnn + { + c , cnV , cnv , cne , cV , cVV , cVv , cVe , + cv , cvV , cvv , cve , ce , ceV , cev , cee + } \cs_generate_variant:Nn \prop_put:Nnn - { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx } + { cno , co , coo , cnx , cVx , cxV , cxx } +\cs_generate_variant:Nn \prop_gput:Nnn + { + NnV , Nnv , Nne , NV , NVV , NVv , NVe , + Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee + } \cs_generate_variant:Nn \prop_gput:Nnn - { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx } + { Nno , No , Noo , Nnx , NVx , NxV , Nxx } \cs_generate_variant:Nn \prop_gput:Nnn - { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx } + { + c , cnV , cnv , cne , cV , cVV , cVv , cVe , + cv , cvV , cvv , cve , ce , ceV , cev , cee + } +\cs_generate_variant:Nn \prop_gput:Nnn + { cno , co , coo , cnx , cVx , cxV , cxx } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}[tested = m3prop002] -% {\prop_put_if_new:Nnn, \prop_put_if_new:cnn} +% { +% \prop_put_if_new:Nnn, \prop_put_if_new:NVn, \prop_put_if_new:NnV, +% \prop_put_if_new:cnn, \prop_put_if_new:cVn, \prop_put_if_new:cnV +% } % \begin{macro}[tested = m3prop002] -% {\prop_gput_if_new:Nnn, \prop_gput_if_new:cnn} +% { +% \prop_gput_if_new:Nnn, \prop_gput_if_new:NVn, \prop_gput_if_new:NnV, +% \prop_gput_if_new:cnn, \prop_gput_if_new:cVn, \prop_gput_if_new:cnV +% } % \begin{macro}{\@@_put_if_new:NNnn} % Adding conditionally also splits. If the key is already present, % the three brace groups given by \cs{@@_split:NnTF} are removed. @@ -1230,9 +1329,9 @@ % convert the key to a string using \cs{tl_to_str:n}. % \begin{macrocode} \cs_new_protected:Npn \prop_put_if_new:Nnn - { \@@_put_if_new:NNnn \__kernel_tl_set:Nx } + { \@@_put_if_new:NNnn \__kernel_tl_set:Ne } \cs_new_protected:Npn \prop_gput_if_new:Nnn - { \@@_put_if_new:NNnn \__kernel_tl_gset:Nx } + { \@@_put_if_new:NNnn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_put_if_new:NNnn #1#2#3#4 { \tl_set:Nn \l_@@_internal_tl @@ -1244,8 +1343,10 @@ { } { #1 #2 { \exp_not:o {#2} \l_@@_internal_tl } } } -\cs_generate_variant:Nn \prop_put_if_new:Nnn { c } -\cs_generate_variant:Nn \prop_gput_if_new:Nnn { c } +\cs_generate_variant:Nn \prop_put_if_new:Nnn + { NnV , NV , cnV , cV } +\cs_generate_variant:Nn \prop_gput_if_new:Nnn + { NnV , NV , cnV , cV } % \end{macrocode} % \end{macro} % \end{macro} @@ -1278,8 +1379,8 @@ % % \begin{macro}[pTF, tested = m3prop003] % { -% \prop_if_in:Nn, \prop_if_in:NV, \prop_if_in:No, -% \prop_if_in:cn, \prop_if_in:cV, \prop_if_in:co +% \prop_if_in:Nn, \prop_if_in:NV, \prop_if_in:Ne, \prop_if_in:No, +% \prop_if_in:cn, \prop_if_in:cV, \prop_if_in:ce, \prop_if_in:co % } % \begin{macro}[EXP]{\@@_if_in:nnn} % Testing expandably if a key is in a property list @@ -1309,7 +1410,7 @@ { \prop_map_break:n { \use_i:nn \prg_return_true: } } } \prg_generate_conditional_variant:Nnn \prop_if_in:Nn - { NV , No , c , cV , co } { p , T , F , TF } + { NV , Ne , No , c , cV , ce , co } { p , T , F , TF } % \end{macrocode} % \end{macro} % \end{macro} @@ -1318,8 +1419,10 @@ % % \begin{macro}[TF, tested = m3prop004] % { -% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NoN, \prop_get:NxN, -% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:coN, \prop_get:cxN, +% \prop_get:NnN, \prop_get:NVN, \prop_get:NvN, \prop_get:NeN, +% \prop_get:NoN, \prop_get:NxN, +% \prop_get:cnN, \prop_get:cVN, \prop_get:cvN, \prop_get:ceN, +% \prop_get:coN, \prop_get:cxN, % \prop_get:cnc % } % Getting the value corresponding to a key, keeping track of whether @@ -1336,7 +1439,11 @@ { \prg_return_false: } } \prg_generate_conditional_variant:Nnn \prop_get:NnN - { NV , Nv , No , Nx , c , cV , cv , co , cx , cnc } { T , F , TF } + { NV , Nv , Ne , c , cV , cv , ce } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_get:NnN + { No , Nx , co , cx } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_get:NnN + { cnc } { T , F , TF } % \end{macrocode} % \end{macro} % @@ -1471,9 +1578,9 @@ % we use \cs{msg_show_item:nn} to format both the key and the value % for each pair. % \begin{macrocode} -\cs_new_protected:Npn \prop_show:N { \@@_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \prop_show:N { \@@_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \prop_show:N { c } -\cs_new_protected:Npn \prop_log:N { \@@_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \prop_log:N { \@@_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \prop_log:N { c } \cs_new_protected:Npn \@@_show:NN #1#2 { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index e05b5369e11..1a1e1aaf1ff 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -633,21 +633,21 @@ % % \begin{macro}{\@@_new_test:NNNn, \@@_new_test:Nccn, % \@@_new_test_aux:nnNNnnnn} -% \begin{macro}{\@@_new_conditional:Nnnn, \@@_new_conditional:Nxxn} +% \begin{macro}{\@@_new_conditional:Nnnn, \@@_new_conditional:Neen} % \begin{macrocode} \cs_new_protected:Npn \__kernel_quark_new_test:N #1 - { \@@_new_test_aux:Nx #1 { \@@_module_name:N #1 } } + { \@@_new_test_aux:Ne #1 { \@@_module_name:N #1 } } \cs_new_protected:Npn \@@_new_test_aux:Nn #1 #2 { \if_meaning:w \q_nil #2 \q_nil - \msg_error:nnx { quark } { invalid-function } + \msg_error:nne { quark } { invalid-function } { \token_to_str:N #1 } \else: \@@_new_test:Nccn #1 { q__#2_recursion_tail } { q__#2_recursion_stop } { __#2 } \fi: } -\cs_generate_variant:Nn \@@_new_test_aux:Nn { Nx } +\cs_generate_variant:Nn \@@_new_test_aux:Nn { Ne } \cs_new_protected:Npn \@@_new_test:NNNn #1 { \exp_last_unbraced:Nf \@@_new_test_aux:nnNNnnnn @@ -657,18 +657,18 @@ \cs_generate_variant:Nn \@@_new_test:NNNn { Ncc } \cs_new_protected:Npn \__kernel_quark_new_conditional:Nn #1 { - \@@_new_conditional:Nxxn #1 + \@@_new_conditional:Neen #1 { \@@_quark_conditional_name:N #1 } { \@@_module_name:N #1 } } \cs_new_protected:Npn \@@_new_conditional:Nnnn #1#2#3#4 { \if_meaning:w \q_nil #2 \q_nil - \msg_error:nnx { quark } { invalid-function } + \msg_error:nne { quark } { invalid-function } { \token_to_str:N #1 } \else: \if_meaning:w \q_nil #3 \q_nil - \msg_error:nnx { quark } { invalid-function } + \msg_error:nne { quark } { invalid-function } { \token_to_str:N #1 } \else: \exp_last_unbraced:Nf \@@_new_test_aux:nnNNnnnn @@ -678,12 +678,12 @@ \fi: \fi: } -\cs_generate_variant:Nn \@@_new_conditional:Nnnn { Nxx } +\cs_generate_variant:Nn \@@_new_conditional:Nnnn { Nee } \cs_new_protected:Npn \@@_new_test_aux:nnNNnnnn #1 #2 #3 #4 #5 { \cs_if_exist_use:cTF { @@_new_#5_#2:Nnnn } { #4 } { - \msg_error:nnxx { quark } { invalid-function } + \msg_error:nnee { quark } { invalid-function } { \token_to_str:N #4 } {#2} \use_none:nnn } @@ -951,7 +951,7 @@ { \tl_if_in:NnTF \g_@@_marks_tl { #1 } { - \msg_error:nnx { scanmark } { already-defined } + \msg_error:nne { scanmark } { already-defined } { \token_to_str:N #1 } } { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 3d342960ac9..87dfcec47b1 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -1158,24 +1158,24 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\@@_toks_put_left:Nx} -% \begin{macro}{\@@_toks_put_right:Nx, \@@_toks_put_right:Nn} +% \begin{macro}{\@@_toks_put_left:Ne} +% \begin{macro}{\@@_toks_put_right:Ne, \@@_toks_put_right:Nn} % During the building phase we wish to add \texttt{x}-expanded % material to \tn{toks}, either to the left or to the right. The % expansion is done \enquote{by hand} for optimization (these % operations are used quite a lot). The \texttt{Nn} version of -% \cs{@@_toks_put_right:Nx} is provided because it is more +% \cs{@@_toks_put_right:Ne} is provided because it is more % efficient than \texttt{x}-expanding with \cs{exp_not:n}. % \begin{macrocode} -\cs_new_protected:Npn \@@_toks_put_left:Nx #1#2 +\cs_new_protected:Npn \@@_toks_put_left:Ne #1#2 { - \cs_set_nopar:Npx \@@_tmp:w { #2 } + \cs_set_nopar:Npe \@@_tmp:w { #2 } \tex_toks:D #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \@@_tmp:w \tex_the:D \tex_toks:D #1 } } -\cs_new_protected:Npn \@@_toks_put_right:Nx #1#2 +\cs_new_protected:Npn \@@_toks_put_right:Ne #1#2 { - \cs_set_nopar:Npx \@@_tmp:w {#2} + \cs_set_nopar:Npe \@@_tmp:w {#2} \tex_toks:D #1 \exp_after:wN { \tex_the:D \tex_toks:D \exp_after:wN #1 \@@_tmp:w } } @@ -1541,7 +1541,7 @@ { \int_compare:nNnTF \l_@@_curr_catcode_int = 0 { - \__kernel_tl_set:Nx \l_@@_internal_a_tl + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \scan_stop: \@@_curr_cs_to_str: \scan_stop: } \tl_if_in:noTF { \scan_stop: #1 \scan_stop: } \l_@@_internal_a_tl @@ -1568,7 +1568,7 @@ \@@_build_for_cs:n {#1} \bool_set_eq:NN \l_@@_saved_success_bool \g_@@_success_bool - \exp_args:Nx \@@_match_cs:n { \@@_curr_cs_to_str: } + \exp_args:Ne \@@_match_cs:n { \@@_curr_cs_to_str: } \if_meaning:w \c_true_bool \g_@@_success_bool \group_insert_after:N \@@_break_true:w \fi: @@ -1729,9 +1729,9 @@ \cs_set:Npn \@@_escape_escaped:N ##1 { #2 } \cs_set:Npn \@@_escape_raw:N ##1 { #3 } \@@_standard_escapechar: - \__kernel_tl_gset:Nx \g_@@_internal_tl + \__kernel_tl_gset:Ne \g_@@_internal_tl { \__kernel_str_to_other_fast:n {#4} } - \tl_put_right:Nx \l_@@_internal_a_tl + \tl_put_right:Ne \l_@@_internal_a_tl { \exp_after:wN \@@_escape_loop:N \g_@@_internal_tl \scan_stop: \prg_break_point: @@ -1797,17 +1797,17 @@ \prg_break: } \cs_new:cpn { @@_escape_~:w } { } -\cs_new:cpx { @@_escape_/a:w } +\cs_new:cpe { @@_escape_/a:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^G } -\cs_new:cpx { @@_escape_/t:w } +\cs_new:cpe { @@_escape_/t:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^I } -\cs_new:cpx { @@_escape_/n:w } +\cs_new:cpe { @@_escape_/n:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^J } -\cs_new:cpx { @@_escape_/f:w } +\cs_new:cpe { @@_escape_/f:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^L } -\cs_new:cpx { @@_escape_/r:w } +\cs_new:cpe { @@_escape_/r:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^M } -\cs_new:cpx { @@_escape_/e:w } +\cs_new:cpe { @@_escape_/e:w } { \exp_not:N \@@_escape_raw:N \iow_char:N \^^[ } % \end{macrocode} % \end{macro} @@ -2421,7 +2421,7 @@ } { } \if_int_compare:w \l_@@_group_level_int > \c_zero_int - \msg_error:nnx { regex } { missing-rparen } + \msg_error:nne { regex } { missing-rparen } { \int_use:N \l_@@_group_level_int } \prg_replicate:nn { \l_@@_group_level_int } @@ -2440,7 +2440,7 @@ \fi: \tl_build_put_right:Nn \l_@@_build_tl { \if_false: { \fi: } } \tl_build_end:N \l_@@_build_tl - \exp_args:NNNx + \exp_args:NNNe \group_end: \tl_set:Nn \l_@@_internal_regex { \l_@@_build_tl } } @@ -2550,7 +2550,7 @@ \tl_build_put_right:Nn \l_@@_build_tl { \@@_class:NnnnN \c_true_bool { \if_false: } \fi: } } - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \if_int_compare:w \l_@@_catcodes_int < \c_@@_all_catcodes_int @@ -2567,19 +2567,19 @@ % \end{macro} % % \begin{macro} -% {\@@_compile_abort_tokens:n, \@@_compile_abort_tokens:x} +% {\@@_compile_abort_tokens:n, \@@_compile_abort_tokens:e} % This function places the collected tokens back in the input stream, % each as a raw character. Spaces are not preserved. % \begin{macrocode} \cs_new_protected:Npn \@@_compile_abort_tokens:n #1 { - \use:x + \use:e { \exp_args:No \tl_map_function:nN { \tl_to_str:n {#1} } \@@_compile_raw:N } } -\cs_generate_variant:Nn \@@_compile_abort_tokens:n { x } +\cs_generate_variant:Nn \@@_compile_abort_tokens:n { e } % \end{macrocode} % \end{macro} % @@ -2617,7 +2617,7 @@ % \end{macro} % % \begin{macro}{\@@_compile_quantifier_none:} -% \begin{macro}{\@@_compile_quantifier_abort:xNN} +% \begin{macro}{\@@_compile_quantifier_abort:eNN} % Those functions are called whenever there is no quantifier, or a % braced construction is invalid (equivalent to no quantifier, and % whatever characters were grabbed are left raw). @@ -2627,11 +2627,11 @@ \tl_build_put_right:Nn \l_@@_build_tl { \if_false: { \fi: } { 1 } { 0 } \c_false_bool } } -\cs_new_protected:Npn \@@_compile_quantifier_abort:xNN #1#2#3 +\cs_new_protected:Npn \@@_compile_quantifier_abort:eNN #1#2#3 { \@@_compile_quantifier_none: - \msg_warning:nnxx { regex } { invalid-quantifier } {#1} {#3} - \@@_compile_abort_tokens:x {#1} + \msg_warning:nnee { regex } { invalid-quantifier } {#1} {#3} + \@@_compile_abort_tokens:e {#1} #2 #3 } % \end{macrocode} @@ -2703,7 +2703,7 @@ { \@@_get_digits:NTFw \l_@@_internal_a_int { \@@_compile_quantifier_braced_auxi:w } - { \@@_compile_quantifier_abort:xNN { \c_left_brace_str } } + { \@@_compile_quantifier_abort:eNN { \c_left_brace_str } } } \cs_new_protected:Npn \@@_compile_quantifier_braced_auxi:w #1#2 { @@ -2722,7 +2722,7 @@ } } { - \@@_compile_quantifier_abort:xNN + \@@_compile_quantifier_abort:eNN { \c_left_brace_str \int_use:N \l_@@_internal_a_int } #1 #2 } @@ -2735,7 +2735,7 @@ { \int_use:N \l_@@_internal_a_int } { -1 } } { - \@@_compile_quantifier_abort:xNN + \@@_compile_quantifier_abort:eNN { \c_left_brace_str \int_use:N \l_@@_internal_a_int , } #1 #2 } @@ -2746,7 +2746,7 @@ { \if_int_compare:w \l_@@_internal_a_int > \l_@@_internal_b_int - \msg_error:nnxx { regex } { backwards-quantifier } + \msg_error:nnee { regex } { backwards-quantifier } { \int_use:N \l_@@_internal_a_int } { \int_use:N \l_@@_internal_b_int } \int_zero:N \l_@@_internal_b_int @@ -2758,7 +2758,7 @@ { \int_use:N \l_@@_internal_b_int } } { - \@@_compile_quantifier_abort:xNN + \@@_compile_quantifier_abort:eNN { \c_left_brace_str \int_use:N \l_@@_internal_a_int , @@ -2780,7 +2780,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_compile_raw_error:N #1 { - \msg_error:nnx { regex } { bad-escape } {#1} + \msg_error:nne { regex } { bad-escape } {#1} \@@_compile_raw:N #1 } % \end{macrocode} @@ -2839,9 +2839,9 @@ \@@_if_end_range:NNTF #2 #3 { \if_int_compare:w `#1 > `#3 \exp_stop_f: - \msg_error:nnxx { regex } { range-backwards } {#1} {#3} + \msg_error:nnee { regex } { range-backwards } {#1} {#3} \else: - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \if_int_compare:w `#1 = `#3 \exp_stop_f: \@@_item_equal:n @@ -2853,9 +2853,9 @@ \fi: } { - \msg_warning:nnxx { regex } { range-missing-end } + \msg_warning:nnee { regex } { range-missing-end } {#1} { \c_backslash_str #3 } - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \@@_item_equal:n { \int_value:w `#1 \exp_stop_f: } \@@_item_equal:n { \int_value:w `- \exp_stop_f: } @@ -2873,7 +2873,7 @@ % \cs{@@_prop_.:}, which matches any character or control % sequence, and refuses $-2$ (end-marker). % \begin{macrocode} -\cs_new_protected:cpx { @@_compile_.: } +\cs_new_protected:cpe { @@_compile_.: } { \exp_not:N \@@_if_in_class:TF { \@@_compile_raw:N . } @@ -2904,9 +2904,9 @@ % \begin{macrocode} \cs_set_protected:Npn \@@_tmp:w #1#2 { - \cs_new_protected:cpx { @@_compile_/#1: } + \cs_new_protected:cpe { @@_compile_/#1: } { \@@_compile_one:n \exp_not:c { @@_prop_#1: } } - \cs_new_protected:cpx { @@_compile_/#2: } + \cs_new_protected:cpe { @@_compile_/#2: } { \@@_compile_one:n { \@@_item_reverse:n { \exp_not:c { @@_prop_#1: } } } @@ -2967,8 +2967,8 @@ } } } -\exp_args:Nx \@@_tmp:w { \iow_char:N \^ } { \@@_A_test: } -\exp_args:Nx \@@_tmp:w { \iow_char:N \$ } { \@@_Z_test: } +\exp_args:Ne \@@_tmp:w { \iow_char:N \^ } { \@@_A_test: } +\exp_args:Ne \@@_tmp:w { \iow_char:N \$ } { \@@_Z_test: } % \end{macrocode} % \end{macro} % \end{macro} @@ -3117,11 +3117,11 @@ { : { \@@_compile_class_posix:NNNNw } = { - \msg_warning:nnx { regex } + \msg_warning:nne { regex } { posix-unsupported } { = } } . { - \msg_warning:nnx { regex } + \msg_warning:nne { regex } { posix-unsupported } { . } } } @@ -3133,12 +3133,12 @@ \@@_two_if_eq:NNNNTF #5 #6 \@@_compile_special:N ^ { \bool_set_false:N \l_@@_internal_bool - \__kernel_tl_set:Nx \l_@@_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \if_false: } \fi: \@@_compile_class_posix_loop:w } { \bool_set_true:N \l_@@_internal_bool - \__kernel_tl_set:Nx \l_@@_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \if_false: } \fi: \@@_compile_class_posix_loop:w #5 #6 } } @@ -3163,9 +3163,9 @@ } } { - \msg_warning:nnx { regex } { posix-unknown } + \msg_warning:nne { regex } { posix-unknown } { \l_@@_internal_a_tl } - \@@_compile_abort_tokens:x + \@@_compile_abort_tokens:e { [: \bool_if:NF \l_@@_internal_bool { ^ } \l_@@_internal_a_tl :] @@ -3173,9 +3173,9 @@ } } { - \msg_error:nnxx { regex } { posix-missing-close } + \msg_error:nnee { regex } { posix-missing-close } { [: \l_@@_internal_a_tl } { #2 #4 } - \@@_compile_abort_tokens:x { [: \l_@@_internal_a_tl } + \@@_compile_abort_tokens:e { [: \l_@@_internal_a_tl } #1 #2 #3 #4 } } @@ -3213,7 +3213,7 @@ \if_int_compare:w \l_@@_group_level_int > \c_zero_int \tl_build_put_right:Nn \l_@@_build_tl { \if_false: { \fi: } } \tl_build_end:N \l_@@_build_tl - \exp_args:NNNx + \exp_args:NNNe \group_end: \tl_build_put_right:Nn \l_@@_build_tl { \l_@@_build_tl } \int_set_eq:NN \l_@@_catcodes_int \l_@@_default_catcodes_int @@ -3252,7 +3252,7 @@ \cs_if_exist_use:cF { @@_compile_special_group_\token_to_str:N #4 :w } { - \msg_warning:nnx { regex } { special-group-unknown } + \msg_warning:nne { regex } { special-group-unknown } { (? #4 } \@@_compile_group_begin:N \@@_group:nnnN \@@_compile_raw:N ? #3 #4 @@ -3321,7 +3321,7 @@ { \@@_item_caseless_range:nn } } { - \msg_warning:nnx { regex } { unknown-option } { (?i #2 } + \msg_warning:nne { regex } { unknown-option } { (?i #2 } \@@_compile_raw:N ( \@@_compile_raw:N ? \@@_compile_raw:N i @@ -3340,7 +3340,7 @@ { \@@_item_caseful_range:nn } } { - \msg_warning:nnx { regex } { unknown-option } { (?-#2#4 } + \msg_warning:nne { regex } { unknown-option } { (?-#2#4 } \@@_compile_raw:N ( \@@_compile_raw:N ? \@@_compile_raw:N - @@ -3379,7 +3379,7 @@ } { \cs_if_exist_use:cF { @@_compile_c_#2:w } } { - \msg_error:nnx { regex } { c-missing-category } {#2} + \msg_error:nne { regex } { c-missing-category } {#2} #1 #2 } } @@ -3453,7 +3453,7 @@ { \@@_compile_c_lbrack_end: } } { - \msg_error:nnx { regex } { c-missing-rbrack } {#2} + \msg_error:nne { regex } { c-missing-rbrack } {#2} \@@_compile_c_lbrack_end: #1 #2 } @@ -3534,12 +3534,12 @@ { \@@_compile_end: \flag_clear:n { @@_cs } - \__kernel_tl_set:Nx \l_@@_internal_a_tl + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \exp_after:wN \@@_compile_cs_aux:Nn \l_@@_internal_regex \q_@@_nil \q_@@_nil \q_@@_recursion_stop } - \exp_args:Nx \@@_compile_one:n + \exp_args:Ne \@@_compile_one:n { \flag_if_raised:nTF { @@_cs } { \@@_item_cs:n { \exp_not:o \l_@@_internal_regex } } @@ -3622,7 +3622,7 @@ \@@_two_if_eq:NNNNTF #2 #3 \@@_compile_special:N \c_left_brace_str { \tl_set:Nn \l_@@_internal_b_tl {#1} - \__kernel_tl_set:Nx \l_@@_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \if_false: } \fi: \@@_compile_u_loop:NN } { @@ -3665,7 +3665,7 @@ } { \if_false: { \fi: } - \msg_error:nnx { regex } { u-missing-rbrace } {#2} + \msg_error:nne { regex } { u-missing-rbrace } {#2} \l_@@_internal_b_tl #1 #2 } @@ -3691,7 +3691,7 @@ \group_begin: \cs_set:Npn \@@_group:nnnN { \@@_group_no_capture:nnnN } \cs_set:Npn \@@_group_resetting:nnnN { \@@_group_no_capture:nnnN } - \exp_args:NNx + \exp_args:NNe \group_end: \@@_compile_ur:n { \use:c { \l_@@_internal_a_tl } } } @@ -3756,12 +3756,12 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_compile_u_in_cs: { - \__kernel_tl_gset:Nx \g_@@_internal_tl + \__kernel_tl_gset:Ne \g_@@_internal_tl { \exp_args:No \__kernel_str_to_other_fast:n { \l_@@_internal_a_tl } } - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \tl_map_function:NN \g_@@_internal_tl \@@_compile_u_in_cs_aux:n @@ -3786,7 +3786,7 @@ { \tl_analysis_map_inline:Nn \l_@@_internal_a_tl { - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \@@_class:NnnnN \c_true_bool { @@ -4096,7 +4096,7 @@ \cs_new_protected:Npn \@@_show_one:n #1 { \int_incr:N \l_@@_show_lines_int - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \exp_not:N \iow_newline: \seq_map_function:NN \l_@@_show_prefix_seq \use:n @@ -4113,7 +4113,7 @@ % second argument in a deeper level of nesting. % \begin{macrocode} \cs_new_protected:Npn \@@_show_push:n #1 - { \seq_put_right:Nx \l_@@_show_prefix_seq { #1 ~ } } + { \seq_put_right:Ne \l_@@_show_prefix_seq { #1 ~ } } \cs_new_protected:Npn \@@_show_pop: { \seq_pop_right:NN \l_@@_show_prefix_seq \l_@@_internal_a_tl } \cs_new_protected:Npn \@@_show_scope:nn #1#2 @@ -4186,7 +4186,7 @@ \bool_if:NTF #1 { Match } { Don't~match } \@@_msg_repeated:nnN {#3} {#4} #5 } - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \exp_not:o \l_@@_internal_a_tl } } } @@ -4367,7 +4367,7 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}{\@@_case_build:n, \@@_case_build:x, \@@_case_build_aux:Nn, \@@_case_build_loop:n} +% \begin{macro}{\@@_case_build:n, \@@_case_build:e, \@@_case_build_aux:Nn, \@@_case_build_loop:n} % See \cs{@@_build:n}, but with a loop. % \begin{macrocode} \cs_new_protected:Npn \@@_case_build:n #1 @@ -4375,7 +4375,7 @@ \@@_case_build_aux:Nn \c_true_bool {#1} \int_gzero:N \g_@@_case_int } -\cs_generate_variant:Nn \@@_case_build:n { x } +\cs_generate_variant:Nn \@@_case_build:n { e } \cs_new_protected:Npn \@@_case_build_aux:Nn #1#2 { \@@_standard_escapechar: @@ -4386,7 +4386,7 @@ { \@@_action_start_wildcard:N #1 } % \@@_build_new_state: - \@@_toks_put_left:Nx \l_@@_left_state_int + \@@_toks_put_left:Ne \l_@@_left_state_int { \@@_action_submatch:nN { 0 } < } \@@_push_lr_states: \int_zero:N \l_@@_case_max_group_int @@ -4410,7 +4410,7 @@ } \seq_pop:NN \l_@@_right_state_seq \l_@@_internal_a_tl \int_set:Nn \l_@@_right_state_int \l_@@_internal_a_tl - \@@_toks_put_left:Nx \l_@@_right_state_int + \@@_toks_put_left:Ne \l_@@_right_state_int { \@@_action_submatch:nN { 0 } > \int_gset:Nn \g_@@_case_int @@ -4498,9 +4498,9 @@ % differing usage later on. Both functions could be optimized. % \begin{macrocode} \cs_new_protected:Npn \@@_build_transition_left:NNN #1#2#3 - { \@@_toks_put_left:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } + { \@@_toks_put_left:Ne #2 { #1 { \int_eval:n { #3 - #2 } } } } \cs_new_protected:Npn \@@_build_transition_right:nNn #1#2#3 - { \@@_toks_put_right:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } + { \@@_toks_put_right:Ne #2 { #1 { \int_eval:n { #3 - #2 } } } } % \end{macrocode} % \end{macro} % @@ -4529,7 +4529,7 @@ \cs_new_protected:Npn \@@_build_transitions_lazyness:NNNNN #1#2#3#4#5 { \@@_build_new_state: - \@@_toks_put_right:Nx \l_@@_left_state_int + \@@_toks_put_right:Ne \l_@@_left_state_int { \if_meaning:w \c_true_bool #1 #2 { \int_eval:n { #3 - \l_@@_left_state_int } } @@ -4557,7 +4557,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_class:NnnnN #1#2#3#4#5 { - \cs_set:Npx \@@_tests_action_cost:n ##1 + \cs_set:Npe \@@_tests_action_cost:n ##1 { \exp_not:n { \exp_not:n {#2} } \bool_if:NTF #1 @@ -4791,8 +4791,8 @@ \cs_new_protected:Npn \@@_group_submatches:nNN #1#2#3 { \if_int_compare:w #1 > - \c_one_int - \@@_toks_put_left:Nx #2 { \@@_action_submatch:nN {#1} < } - \@@_toks_put_left:Nx #3 { \@@_action_submatch:nN {#1} > } + \@@_toks_put_left:Ne #2 { \@@_action_submatch:nN {#1} < } + \@@_toks_put_left:Ne #3 { \@@_action_submatch:nN {#1} > } \fi: } % \end{macrocode} @@ -4953,7 +4953,7 @@ \cs_new_protected:Npn \@@_assertion:Nn #1#2 { \@@_build_new_state: - \@@_toks_put_right:Nx \l_@@_left_state_int + \@@_toks_put_right:Ne \l_@@_left_state_int { \exp_not:n {#2} \@@_break_point:TF @@ -5005,7 +5005,7 @@ \cs_new_protected:Npn \@@_command_K: { \@@_build_new_state: - \@@_toks_put_right:Nx \l_@@_left_state_int + \@@_toks_put_right:Ne \l_@@_left_state_int { \@@_action_submatch:nN { 0 } < \bool_set_true:N \l_@@_fresh_thread_bool @@ -5347,7 +5347,7 @@ \fi: \int_set_eq:NN \l_@@_start_pos_int \l_@@_success_pos_int \bool_set_false:N \l_@@_match_success_bool - \tl_set:Nx \l_@@_curr_submatches_tl + \tl_set:Ne \l_@@_curr_submatches_tl { \prg_replicate:nn { 2 * \l_@@_capturing_group_int } { 0 , } } \int_set_eq:NN \l_@@_max_thread_int \l_@@_min_thread_int \@@_store_state:n { \l_@@_min_state_int } @@ -5423,10 +5423,10 @@ \tl_set:Nn \l_@@_curr_token_tl {#1} \int_set:Nn \l_@@_curr_char_int {#2} \int_set:Nn \l_@@_curr_catcode_int { "#3 } - \tl_build_put_right:Nx \l_@@_matched_analysis_tl + \tl_build_put_right:Ne \l_@@_matched_analysis_tl { \exp_not:o \l_@@_curr_analysis_tl } \tl_set:Nn \l_@@_curr_analysis_tl { { {#1} {#2} #3 } } - \use:x + \use:e { \int_set_eq:NN \l_@@_max_thread_int \l_@@_min_thread_int \int_step_function:nnN @@ -5539,7 +5539,7 @@ { \@@_action_free_aux:nn { < \l_@@_step_int } } \cs_new_protected:Npn \@@_action_free_aux:nn #1#2 { - \use:x + \use:e { \int_add:Nn \l_@@_curr_state_int {#2} \exp_not:n @@ -5569,7 +5569,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_action_cost:n #1 { - \exp_args:Nx \@@_store_state:n + \exp_args:Ne \@@_store_state:n { \int_eval:n { \l_@@_curr_state_int + #1 } } } % \end{macrocode} @@ -5627,7 +5627,7 @@ } \cs_new_protected:Npn \@@_action_submatch_aux:w #1 ; #2#3 { - \tl_set:Nx \l_@@_curr_submatches_tl + \tl_set:Ne \l_@@_curr_submatches_tl { \prg_replicate:nn { #2 \if_meaning:w > #3 + \l_@@_capturing_group_int \fi: } @@ -5844,7 +5844,7 @@ % % \subsubsection{Framework} % -% \begin{macro}{\@@_replacement:n, \@@_replacement:x} +% \begin{macro}{\@@_replacement:n, \@@_replacement:e} % \begin{macro}{\@@_replacement_apply:Nn, \@@_replacement_set:n} % The replacement text is built incrementally. We keep track in % \cs{l_@@_balance_int} of the balance of explicit begin- and @@ -5882,25 +5882,25 @@ {#2} \prg_do_nothing: \prg_do_nothing: \if_int_compare:w \l_@@_replacement_csnames_int > \c_zero_int - \msg_error:nnx { regex } { replacement-missing-rbrace } + \msg_error:nne { regex } { replacement-missing-rbrace } { \int_use:N \l_@@_replacement_csnames_int } - \tl_build_put_right:Nx \l_@@_build_tl + \tl_build_put_right:Ne \l_@@_build_tl { \prg_replicate:nn \l_@@_replacement_csnames_int \cs_end: } \fi: \seq_if_empty:NF \l_@@_replacement_category_seq { - \msg_error:nnx { regex } { replacement-missing-rparen } + \msg_error:nne { regex } { replacement-missing-rparen } { \seq_count:N \l_@@_replacement_category_seq } \seq_clear:N \l_@@_replacement_category_seq } - \tl_gput_right:Nx \g_@@_balance_tl + \tl_gput_right:Ne \g_@@_balance_tl { + \int_use:N \l_@@_balance_int } \tl_build_end:N \l_@@_build_tl \exp_args:NNo \group_end: #1 \l_@@_build_tl } -\cs_generate_variant:Nn \@@_replacement:n { x } +\cs_generate_variant:Nn \@@_replacement:n { e } \cs_new_protected:Npn \@@_replacement_set:n #1 { \cs_set:Npn \@@_replacement_do_one_match:n ##1 @@ -5927,7 +5927,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_case_replacement:n, \@@_case_replacement:x} +% \begin{macro}{\@@_case_replacement:n, \@@_case_replacement:e} % \begin{macrocode} \tl_new:N \g_@@_case_replacement_tl \tl_new:N \g_@@_case_balance_tl @@ -5947,7 +5947,7 @@ \exp_args:No \@@_replacement_set:n { \g_@@_case_replacement_tl \fi: } } -\cs_generate_variant:Nn \@@_case_replacement:n { x } +\cs_generate_variant:Nn \@@_case_replacement:n { e } \cs_new_protected:Npn \@@_case_replacement_aux:n #1 { \tl_gput_right:Nn \g_@@_case_replacement_tl { \or: #1 } @@ -6458,7 +6458,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_replacement_error:NNN #1#2#3 { - \msg_error:nnx { regex } { replacement-#1 } {#3} + \msg_error:nne { regex } { replacement-#1 } {#3} #2 #3 } % \end{macrocode} @@ -6502,7 +6502,7 @@ \cs_new_protected:Npn \regex_const:Nn #1#2 { \@@_compile:n {#2} - \tl_const:Nx #1 { \exp_not:o \l_@@_internal_regex } + \tl_const:Ne #1 { \exp_not:o \l_@@_internal_regex } } % \end{macrocode} % \end{macro} @@ -6516,8 +6516,8 @@ % Then show the variable with some appropriate text. The auxiliary % \cs{@@_show:N} is defined in a different section. % \begin{macrocode} -\cs_new_protected:Npn \regex_show:n { \@@_show:Nn \msg_show:nnxxxx } -\cs_new_protected:Npn \regex_log:n { \@@_show:Nn \msg_log:nnxxxx } +\cs_new_protected:Npn \regex_show:n { \@@_show:Nn \msg_show:nneeee } +\cs_new_protected:Npn \regex_log:n { \@@_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \@@_show:Nn #1#2 { \@@_compile:n {#2} @@ -6526,8 +6526,8 @@ { \tl_to_str:n {#2} } { } { \l_@@_internal_a_tl } { } } -\cs_new_protected:Npn \regex_show:N { \@@_show:NN \msg_show:nnxxxx } -\cs_new_protected:Npn \regex_log:N { \@@_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \regex_show:N { \@@_show:NN \msg_show:nneeee } +\cs_new_protected:Npn \regex_log:N { \@@_show:NN \msg_log:nneeee } \cs_new_protected:Npn \@@_show:NN #1#2 { \__kernel_chk_tl_type:NnnT #2 { regex } @@ -6663,15 +6663,15 @@ { \int_if_odd:nTF { \tl_count:n {#1} } { - \msg_error:nnxxxx { regex } { case-odd } + \msg_error:nneeee { regex } { case-odd } { \token_to_str:N \regex_replace_case_once:nN(TF) } { code } { \tl_count:n {#1} } { \tl_to_str:n {#1} } \use_ii:nn } { \@@_replace_once_aux:nnN - { \@@_case_build:x { \@@_tl_odd_items:n {#1} } } - { \@@_replacement:x { \tl_item:nn {#1} { 2 * \g_@@_case_int } } } + { \@@_case_build:e { \@@_tl_odd_items:n {#1} } } + { \@@_replacement:e { \tl_item:nn {#1} { 2 * \g_@@_case_int } } } #2 \bool_if:NTF \g_@@_success_bool } @@ -6695,15 +6695,15 @@ { \int_if_odd:nTF { \tl_count:n {#1} } { - \msg_error:nnxxxx { regex } { case-odd } + \msg_error:nneeee { regex } { case-odd } { \token_to_str:N \regex_replace_case_all:nN(TF) } { code } { \tl_count:n {#1} } { \tl_to_str:n {#1} } \use_ii:nn } { \@@_replace_all_aux:nnN - { \@@_case_build:x { \@@_tl_odd_items:n {#1} } } - { \@@_case_replacement:x { \@@_tl_even_items:n {#1} } } + { \@@_case_build:e { \@@_tl_odd_items:n {#1} } } + { \@@_case_replacement:e { \@@_tl_even_items:n {#1} } } #2 \bool_if:NTF \g_@@_success_bool } @@ -6857,14 +6857,14 @@ { \int_if_odd:nTF { \tl_count:n {#1} } { - \msg_error:nnxxxx { regex } { case-odd } + \msg_error:nneeee { regex } { case-odd } { \token_to_str:N \regex_match_case:nn(TF) } { code } { \tl_count:n {#1} } { \tl_to_str:n {#1} } \use_ii:nn } { \@@_if_match:nn - { \@@_case_build:x { \@@_tl_odd_items:n {#1} } } + { \@@_case_build:e { \@@_tl_odd_items:n {#1} } } {#2} \bool_if:NTF \g_@@_success_bool } @@ -7001,7 +7001,7 @@ \flag_clear:n { @@_begin } \flag_clear:n { @@_end } \cs_set_eq:NN \@@_tmp:w \scan_stop: - \__kernel_tl_gset:Nx \g_@@_internal_tl + \__kernel_tl_gset:Ne \g_@@_internal_tl { \int_step_function:nnN { \l_@@_min_submatch_int } { \l_@@_submatch_int - 1 } \@@_extract_seq_aux:n @@ -7012,12 +7012,12 @@ \int_set:Nn \l_@@_added_end_int { \flag_height:n { @@_end } } \tex_afterassignment:D \@@_extract_check:w - \__kernel_tl_gset:Nx \g_@@_internal_tl + \__kernel_tl_gset:Ne \g_@@_internal_tl { \g_@@_internal_tl \if_false: { \fi: } } \int_compare:nNnT { \l_@@_added_begin_int + \l_@@_added_end_int } > 0 { - \msg_error:nnxxx { regex } { result-unbalanced } + \msg_error:nneee { regex } { result-unbalanced } { splitting~or~extracting~submatches } { \int_use:N \l_@@_added_begin_int } { \int_use:N \l_@@_added_end_int } @@ -7087,17 +7087,17 @@ % In \cs{@@_group_end_extract_seq:N} we had to expand % \cs{g_@@_internal_tl} to turn \cs{if_false:} constructions into % actual begin-group and end-group tokens. This is done with a -% \cs{__kernel_tl_gset:Nx} assignment, and \cs{@@_extract_check:w} is +% \cs{__kernel_tl_gset:Ne} assignment, and \cs{@@_extract_check:w} is % run immediately after this assignment ends, thanks to the % \tn{afterassignment} primitive. If all of the items were properly % balanced (enough begin-group tokens before end-group tokens, so |}{| % is not) then \cs{@@_extract_check:w} is called just before the -% closing brace of the \cs{__kernel_tl_gset:Nx} (thanks to our sneaky +% closing brace of the \cs{__kernel_tl_gset:Ne} (thanks to our sneaky % \cs{if_false:} |{| \cs{fi:} |}| construction), and finds that there % is nothing left to expand. If any of the items is unbalanced, the % assignment gets ended early by an extra end-group token, and our % check finds more tokens needing to be expanded in a new -% \cs{__kernel_tl_gset:Nx} assignment. We need to add a begin-group +% \cs{__kernel_tl_gset:Ne} assignment. We need to add a begin-group % and an end-group tokens to the unbalanced item, namely to the last % item found so far, which we reach through a loop. % \begin{macrocode} @@ -7113,7 +7113,7 @@ \int_incr:N \l_@@_added_begin_int \int_incr:N \l_@@_added_end_int \tex_afterassignment:D \@@_extract_check:w - \__kernel_tl_gset:Nx \g_@@_internal_tl + \__kernel_tl_gset:Ne \g_@@_internal_tl { \exp_after:wN \@@_extract_check_loop:w \g_@@_internal_tl @@ -7234,7 +7234,7 @@ \@@_replacement_balance_one_match:n { \l_@@_zeroth_submatch_int } } - \__kernel_tl_set:Nx \l_@@_internal_a_tl + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \@@_replacement_do_one_match:n { \l_@@_zeroth_submatch_int } @@ -7283,7 +7283,7 @@ { \l_@@_submatch_int - 1 } \@@_replacement_balance_one_match:n } - \__kernel_tl_set:Nx \l_@@_internal_a_tl + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \int_step_function:nnnN { \l_@@_min_submatch_int } @@ -7327,7 +7327,7 @@ \@@_group_end_replace_try: \int_compare:nNnT { \l_@@_added_begin_int + \l_@@_added_end_int } > 0 { - \msg_error:nnxxx { regex } { result-unbalanced } + \msg_error:nneee { regex } { result-unbalanced } { replacing } { \int_use:N \l_@@_added_begin_int } { \int_use:N \l_@@_added_end_int } } @@ -7337,7 +7337,7 @@ \cs_new_protected:Npn \@@_group_end_replace_try: { \tex_afterassignment:D \@@_group_end_replace_check:w - \__kernel_tl_gset:Nx \g_@@_internal_tl + \__kernel_tl_gset:Ne \g_@@_internal_tl { \prg_replicate:nn { \l_@@_added_begin_int } { { \if_false: } \fi: } \l_@@_internal_a_tl @@ -7592,11 +7592,11 @@ % \cs{@@_replacement:n}, which as usual defines % \cs{@@_replacement_do_one_match:n} to insert the tokens from the % start of the match attempt to the beginning of the match, followed -% by the replacement text. The \cs{use:x} expands for instance the +% by the replacement text. The \cs{use:e} expands for instance the % trailing \cs{@@_query_range:nn} down to a sequence of % \cs{@@_reinsert_item:n} \Arg{tokens} where \meta{tokens} % \texttt{o}-expand to a single token that we want to insert. After -% \texttt{x}-expansion, \cs{use:x} does \cs{use:n}, so we have +% \texttt{e}-expansion, \cs{use:e} does \cs{use:n}, so we have % \cs{exp_after:wN} \cs{l_@@_peek_true_tl} \cs{exp:w} \ldots{} % \cs{exp_end:}. This is set up such as to obtain % \cs{l_@@_peek_true_tl} followed by the replaced tokens (possibly @@ -7615,7 +7615,7 @@ \cs_set_eq:NN \@@_replacement_exp_not:N \@@_peek_replacement_token:n \cs_set_eq:NN \@@_replacement_exp_not:V \@@_peek_replacement_var:N \exp_args:No \@@_replacement:n { \l_@@_replacement_tl } - \use:x + \use:e { \exp_not:n { \exp_after:wN \l_@@_peek_true_tl \exp:w } \@@_replacement_do_one_match:n @@ -7736,7 +7736,7 @@ % % Messages for the preparsing phase. % \begin{macrocode} -\use:x +\use:e { \msg_new:nnn { regex } { trailing-backslash } { Trailing~'\iow_char:N\\'~in~regex~or~replacement. } @@ -8107,20 +8107,20 @@ % be merged. % % \begin{macro} -% {\@@_trace_push:nnN, \@@_trace_pop:nnN, \@@_trace:nnx} +% {\@@_trace_push:nnN, \@@_trace_pop:nnN, \@@_trace:nne} % Here |#1| is the module name (\texttt{regex}) and |#2| is % typically~1. If the module's current tracing level is less than % |#2| show nothing, otherwise write |#3| to the terminal. % \begin{macrocode} \cs_new_protected:Npn \@@_trace_push:nnN #1#2#3 - { \@@_trace:nnx {#1} {#2} { entering~ \token_to_str:N #3 } } + { \@@_trace:nne {#1} {#2} { entering~ \token_to_str:N #3 } } \cs_new_protected:Npn \@@_trace_pop:nnN #1#2#3 - { \@@_trace:nnx {#1} {#2} { leaving~ \token_to_str:N #3 } } -\cs_new_protected:Npn \@@_trace:nnx #1#2#3 + { \@@_trace:nne {#1} {#2} { leaving~ \token_to_str:N #3 } } +\cs_new_protected:Npn \@@_trace:nne #1#2#3 { \int_compare:nNnF { \int_use:c { g_@@_trace_#1_int } } < {#2} - { \iow_term:x { Trace:~#3 } } + { \iow_term:e { Trace:~#3 } } } % \end{macrocode} % \end{macro} @@ -8143,7 +8143,7 @@ \l_@@_min_state_int { \l_@@_max_state_int - 1 } { - \@@_trace:nnx { regex } {#1} + \@@_trace:nne { regex } {#1} { \iow_char:N \\toks ##1 = { \@@_toks_use:w ##1 } } } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index d523320f4e5..9572261d466 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -128,10 +128,10 @@ % { % \seq_set_split:Nnn , % \seq_set_split:NVn , \seq_set_split:NnV , \seq_set_split:NVV , -% \seq_set_split:Nnx , \seq_set_split:Nxx , +% \seq_set_split:Nne , \seq_set_split:Nee , % \seq_gset_split:Nnn, % \seq_gset_split:NVn , \seq_gset_split:NnV, \seq_gset_split:NVV, -% \seq_gset_split:Nnx , \seq_gset_split:Nxx +% \seq_gset_split:Nne , \seq_gset_split:Nee % } % \begin{syntax} % \cs{seq_set_split:Nnn} \meta{seq~var} \Arg{delimiter} \Arg{token list} @@ -196,14 +196,14 @@ % \section{Appending data to sequences} % % \begin{function}{ -% \seq_put_left:Nn, \seq_put_left:NV, \seq_put_left:Nv, -% \seq_put_left:No, \seq_put_left:Nx, -% \seq_put_left:cn, \seq_put_left:cV, \seq_put_left:cv, -% \seq_put_left:co, \seq_put_left:cx, -% \seq_gput_left:Nn, \seq_gput_left:NV, \seq_gput_left:Nv, -% \seq_gput_left:No, \seq_gput_left:Nx, -% \seq_gput_left:cn, \seq_gput_left:cV, \seq_gput_left:cv, -% \seq_gput_left:co, \seq_gput_left:cx +% \seq_put_left:Nn, \seq_put_left:NV, \seq_put_left:Nv, \seq_put_left:Ne, +% \seq_put_left:No, +% \seq_put_left:cn, \seq_put_left:cV, \seq_put_left:cv, \seq_put_left:ce, +% \seq_put_left:co, +% \seq_gput_left:Nn, \seq_gput_left:NV, \seq_gput_left:Nv, \seq_gput_left:Ne, +% \seq_gput_left:No, +% \seq_gput_left:cn, \seq_gput_left:cV, \seq_gput_left:cv, \seq_gput_left:ce, +% \seq_gput_left:co % } % \begin{syntax} % \cs{seq_put_left:Nn} \meta{seq~var} \Arg{item} @@ -212,14 +212,14 @@ % \end{function} % % \begin{function}{ -% \seq_put_right:Nn, \seq_put_right:NV, \seq_put_right:Nv, -% \seq_put_right:No, \seq_put_right:Nx, -% \seq_put_right:cn, \seq_put_right:cV, \seq_put_right:cv, -% \seq_put_right:co, \seq_put_right:cx, -% \seq_gput_right:Nn, \seq_gput_right:NV, \seq_gput_right:Nv, -% \seq_gput_right:No, \seq_gput_right:Nx, -% \seq_gput_right:cn, \seq_gput_right:cV, \seq_gput_right:cv, -% \seq_gput_right:co, \seq_gput_right:cx +% \seq_put_right:Nn, \seq_put_right:NV, \seq_put_right:Nv, \seq_put_right:Ne, +% \seq_put_right:No, +% \seq_put_right:cn, \seq_put_right:cV, \seq_put_right:cv, \seq_put_right:ce, +% \seq_put_right:co, +% \seq_gput_right:Nn, \seq_gput_right:NV, \seq_gput_right:Nv, \seq_gput_right:Ne, +% \seq_gput_right:No, +% \seq_gput_right:cn, \seq_gput_right:cV, \seq_gput_right:cv, \seq_gput_right:ce, +% \seq_gput_right:co, % } % \begin{syntax} % \cs{seq_put_right:Nn} \meta{seq~var} \Arg{item} @@ -471,10 +471,10 @@ % % \begin{function} % { -% \seq_remove_all:Nn, \seq_remove_all:NV, \seq_remove_all:Nx, -% \seq_remove_all:cn, \seq_remove_all:cV, \seq_remove_all:cx, -% \seq_gremove_all:Nn, \seq_gremove_all:NV, \seq_gremove_all:Nx, -% \seq_gremove_all:cn, \seq_gremove_all:cV, \seq_gremove_all:cx +% \seq_remove_all:Nn, \seq_remove_all:NV, \seq_remove_all:Ne, +% \seq_remove_all:cn, \seq_remove_all:cV, \seq_remove_all:ce, +% \seq_gremove_all:Nn, \seq_gremove_all:NV, \seq_gremove_all:Ne, +% \seq_gremove_all:cn, \seq_gremove_all:cV, \seq_gremove_all:ce % } % \begin{syntax} % \cs{seq_remove_all:Nn} \meta{seq~var} \Arg{item} @@ -554,8 +554,10 @@ % % \begin{function}[TF] % { -% \seq_if_in:Nn, \seq_if_in:NV, \seq_if_in:Nv, \seq_if_in:No, \seq_if_in:Nx, -% \seq_if_in:cn, \seq_if_in:cV, \seq_if_in:cv, \seq_if_in:co, \seq_if_in:cx +% \seq_if_in:Nn, \seq_if_in:NV, \seq_if_in:Nv, \seq_if_in:Ne, +% \seq_if_in:No, +% \seq_if_in:cn, \seq_if_in:cV, \seq_if_in:cv, \seq_if_in:ce, +% \seq_if_in:co, % } % \begin{syntax} % \cs{seq_if_in:NnTF} \meta{seq~var} \Arg{item} \Arg{true code} \Arg{false code} @@ -905,12 +907,14 @@ % % \begin{function} % { -% \seq_push:Nn, \seq_push:NV, \seq_push:Nv, \seq_push:No, \seq_push:Nx, -% \seq_push:cn, \seq_push:cV, \seq_push:cv, \seq_push:co, \seq_push:cx, -% \seq_gpush:Nn, \seq_gpush:NV, \seq_gpush:Nv, -% \seq_gpush:No, \seq_gpush:Nx, -% \seq_gpush:cn, \seq_gpush:cV, \seq_gpush:cv, -% \seq_gpush:co, \seq_gpush:cx +% \seq_push:Nn, \seq_push:NV, \seq_push:Nv, \seq_push:Ne, +% \seq_push:No, +% \seq_push:cn, \seq_push:cV, \seq_push:cv, \seq_push:ce, +% \seq_push:co, +% \seq_gpush:Nn, \seq_gpush:NV, \seq_gpush:Nv, \seq_gpush:Ne, +% \seq_gpush:No, +% \seq_gpush:cn, \seq_gpush:cV, \seq_gpush:cv, \seq_gpush:ce, +% \seq_gpush:co % } % \begin{syntax} % \cs{seq_push:Nn} \meta{seq~var} \Arg{item} @@ -1083,7 +1087,7 @@ % raised. The definition should always be set globally. % \end{function} % -% \begin{function}{\@@_push_item_def:n, \@@_push_item_def:x} +% \begin{function}{\@@_push_item_def:n, \@@_push_item_def:e} % \begin{syntax} % \cs{@@_push_item_def:n} \Arg{code} % \end{syntax} @@ -1234,22 +1238,22 @@ % \begin{macrocode} \cs_new_protected:Npn \seq_set_from_clist:NN #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \s_@@ \clist_map_function:NN #2 \@@_wrap_item:n } } \cs_new_protected:Npn \seq_set_from_clist:Nn #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \s_@@ \clist_map_function:nN {#2} \@@_wrap_item:n } } \cs_new_protected:Npn \seq_gset_from_clist:NN #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \s_@@ \clist_map_function:NN #2 \@@_wrap_item:n } } \cs_new_protected:Npn \seq_gset_from_clist:Nn #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \s_@@ \clist_map_function:nN {#2} \@@_wrap_item:n } } \cs_generate_variant:Nn \seq_set_from_clist:NN { Nc } @@ -1267,7 +1271,7 @@ % \begin{macrocode} \cs_new_protected:Npn \seq_const_from_clist:Nn #1#2 { - \tl_const:Nx #1 + \tl_const:Ne #1 { \s_@@ \clist_map_function:nN {#2} \@@_wrap_item:n } } \cs_generate_variant:Nn \seq_const_from_clist:Nn { c } @@ -1278,9 +1282,11 @@ % { % \seq_set_split:Nnn , % \seq_set_split:NVn , \seq_set_split:NnV , \seq_set_split:NVV , +% \seq_set_split:Nne , \seq_set_split:Nee , % \seq_set_split:Nnx , \seq_set_split:Nxx , % \seq_gset_split:Nnn, -% \seq_gset_split:NVn , \seq_gset_split:NnV, \seq_gset_split:NVV, +% \seq_gset_split:NVn, \seq_gset_split:NnV, \seq_gset_split:NVV, +% \seq_gset_split:Nne, \seq_gset_split:Nee, % \seq_gset_split:Nnx, \seq_gset_split:Nxx % } % \begin{macro} @@ -1316,13 +1322,13 @@ % braces which are outermost after space trimming. % \begin{macrocode} \cs_new_protected:Npn \seq_set_split:Nnn - { \@@_set_split:NNNnn \__kernel_tl_set:Nx \tl_trim_spaces:n } + { \@@_set_split:NNNnn \__kernel_tl_set:Ne \tl_trim_spaces:n } \cs_new_protected:Npn \seq_gset_split:Nnn - { \@@_set_split:NNNnn \__kernel_tl_gset:Nx \tl_trim_spaces:n } + { \@@_set_split:NNNnn \__kernel_tl_gset:Ne \tl_trim_spaces:n } \cs_new_protected:Npn \seq_set_split_keep_spaces:Nnn - { \@@_set_split:NNNnn \__kernel_tl_set:Nx \exp_not:n } + { \@@_set_split:NNNnn \__kernel_tl_set:Ne \exp_not:n } \cs_new_protected:Npn \seq_gset_split_keep_spaces:Nnn - { \@@_set_split:NNNnn \__kernel_tl_gset:Nx \exp_not:n } + { \@@_set_split:NNNnn \__kernel_tl_gset:Ne \exp_not:n } \cs_new_protected:Npn \@@_set_split:NNNnn #1#2#3#4#5 { \tl_if_empty:nTF {#4} @@ -1342,7 +1348,7 @@ \@@_set_split_end: \@@_set_split:Nw #2 \prg_do_nothing: } - \__kernel_tl_set:Nx \l_@@_internal_a_tl { \l_@@_internal_a_tl } + \__kernel_tl_set:Ne \l_@@_internal_a_tl { \l_@@_internal_a_tl } } #1 #3 { \s_@@ \l_@@_internal_a_tl } } @@ -1354,8 +1360,10 @@ } \cs_new:Npn \@@_set_split:w #1 \@@_set_split_end: { \@@_wrap_item:n {#1} } -\cs_generate_variant:Nn \seq_set_split:Nnn { NV , NnV , NVV , Nnx , Nxx } -\cs_generate_variant:Nn \seq_gset_split:Nnn { NV , NnV , NVV , Nnx , Nxx } +\cs_generate_variant:Nn \seq_set_split:Nnn { NV , NnV , NVV , Nne , Nee } +\cs_generate_variant:Nn \seq_set_split:Nnn { Nnx , Nxx } +\cs_generate_variant:Nn \seq_gset_split:Nnn { NV , NnV , NVV , Nne , Nee } +\cs_generate_variant:Nn \seq_gset_split:Nnn { Nnx , Nxx } \cs_generate_variant:Nn \seq_set_split_keep_spaces:Nnn { NnV } \cs_generate_variant:Nn \seq_gset_split_keep_spaces:Nnn { NnV } % \end{macrocode} @@ -1395,17 +1403,17 @@ % \subsection{Appending data to either end} % % \begin{macro}{ -% \seq_put_left:Nn, \seq_put_left:NV, \seq_put_left:Nv, +% \seq_put_left:Nn, \seq_put_left:NV, \seq_put_left:Nv, \seq_put_left:Ne, % \seq_put_left:No, \seq_put_left:Nx, -% \seq_put_left:cn, \seq_put_left:cV, \seq_put_left:cv, +% \seq_put_left:cn, \seq_put_left:cV, \seq_put_left:cv,\seq_put_left:ce, % \seq_put_left:co, \seq_put_left:cx % } % \UnitTested % \begin{macro}{ -% \seq_gput_left:Nn, \seq_gput_left:NV, \seq_gput_left:Nv, +% \seq_gput_left:Nn, \seq_gput_left:NV, \seq_gput_left:Nv, \seq_gput_left:Ne, % \seq_gput_left:No, \seq_gput_left:Nx, -% \seq_gput_left:cn, \seq_gput_left:cV, \seq_gput_left:cv, -% \seq_gput_left:co, \seq_gput_left:cx +% \seq_gput_left:cn, \seq_gput_left:cV, \seq_gput_left:cv, \seq_gput_left:ce, +% \seq_gput_left:co, \seq_put_left:cx % } % \begin{macro}[EXP]{\@@_put_left_aux:w} % When adding to the left of a sequence, remove \cs{s_@@}. This is @@ -1414,7 +1422,7 @@ % \begin{macrocode} \cs_new_protected:Npn \seq_put_left:Nn #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \exp_not:n { \s_@@ \@@_item:n {#2} } \exp_not:f { \exp_after:wN \@@_put_left_aux:w #1 } @@ -1422,17 +1430,17 @@ } \cs_new_protected:Npn \seq_gput_left:Nn #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \exp_not:n { \s_@@ \@@_item:n {#2} } \exp_not:f { \exp_after:wN \@@_put_left_aux:w #1 } } } \cs_new:Npn \@@_put_left_aux:w \s_@@ { \exp_stop_f: } -\cs_generate_variant:Nn \seq_put_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_put_left:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \seq_gput_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_gput_left:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_put_left:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_put_left:Nn { c , cV , cv , ce , co ,cx } +\cs_generate_variant:Nn \seq_gput_left:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_gput_left:Nn { c , cV , cv , ce , co , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1440,17 +1448,17 @@ % % \begin{macro} % { -% \seq_put_right:Nn, \seq_put_right:NV, \seq_put_right:Nv, +% \seq_put_right:Nn, \seq_put_right:NV, \seq_put_right:Nv, \seq_put_right:Ne, % \seq_put_right:No, \seq_put_right:Nx, -% \seq_put_right:cn, \seq_put_right:cV, \seq_put_right:cv, +% \seq_put_right:cn, \seq_put_right:cV, \seq_put_right:cv, \seq_put_right:cx, % \seq_put_right:co, \seq_put_right:cx % } % \UnitTested % \begin{macro} % { -% \seq_gput_right:Nn, \seq_gput_right:NV, \seq_gput_right:Nv, +% \seq_gput_right:Nn, \seq_gput_right:NV, \seq_gput_right:Nv, \seq_gput_right:Ne, % \seq_gput_right:No, \seq_gput_right:Nx, -% \seq_gput_right:cn, \seq_gput_right:cV, \seq_gput_right:cv, +% \seq_gput_right:cn, \seq_gput_right:cV, \seq_gput_right:cv, \seq_gput_right:ce, % \seq_gput_right:co, \seq_gput_right:cx % } % Since there is no trailing marker, adding an item to the right of a @@ -1460,10 +1468,10 @@ { \tl_put_right:Nn #1 { \@@_item:n {#2} } } \cs_new_protected:Npn \seq_gput_right:Nn #1#2 { \tl_gput_right:Nn #1 { \@@_item:n {#2} } } -\cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \seq_put_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_put_right:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_put_right:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_put_right:Nn { c , cV , cv , ce , co , cx } +\cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , ce , co , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1515,14 +1523,18 @@ % % \begin{macro} % { -% \seq_remove_all:Nn, \seq_remove_all:NV, \seq_remove_all:Nx, -% \seq_remove_all:cn, \seq_remove_all:cV, \seq_remove_all:cx +% \seq_remove_all:Nn, \seq_remove_all:NV, \seq_remove_all:Ne, +% \seq_remove_all:Nx, +% \seq_remove_all:cn, \seq_remove_all:cV, \seq_remove_all:ce +% \seq_remove_all:cx, % } % \UnitTested % \begin{macro} % { -% \seq_gremove_all:Nn, \seq_gremove_all:NV, \seq_gremove_all:Nx, -% \seq_gremove_all:cn, \seq_gremove_all:cV, \seq_gremove_all:cx +% \seq_gremove_all:Nn, \seq_gremove_all:NV, \seq_gremove_all:Ne, +% \seq_gremove_all:Nx, +% \seq_gremove_all:cn, \seq_gremove_all:cV, \seq_gremove_all:ce, +% \seq_gremove_all:Nx % } % \UnitTested % \begin{macro}{\@@_remove_all_aux:NNn} @@ -1541,9 +1553,9 @@ % \texttt{x}-type expansion (|#1 #2 {#2}|) ensures that nothing is lost. % \begin{macrocode} \cs_new_protected:Npn \seq_remove_all:Nn - { \@@_remove_all_aux:NNn \__kernel_tl_set:Nx } + { \@@_remove_all_aux:NNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gremove_all:Nn - { \@@_remove_all_aux:NNn \__kernel_tl_gset:Nx } + { \@@_remove_all_aux:NNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_remove_all_aux:NNn #1#2#3 { \@@_push_item_def:n @@ -1564,8 +1576,10 @@ #1 #2 {#2} \@@_pop_item_def: } -\cs_generate_variant:Nn \seq_remove_all:Nn { NV , Nx , c , cV , cx } -\cs_generate_variant:Nn \seq_gremove_all:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \seq_remove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \seq_remove_all:Nn { Nx , cx } +\cs_generate_variant:Nn \seq_gremove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \seq_gremove_all:Nn { Nx , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1585,15 +1599,15 @@ % last argument \cs{use_ii:nn} vs \cs{use_i:nn}. % \begin{macrocode} \cs_new_protected:Npn \seq_set_item:Nnn #1#2#3 - { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_i:nn } + { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Ne \use_i:nn } \cs_new_protected:Npn \seq_gset_item:Nnn #1#2#3 - { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_i:nn } + { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Ne \use_i:nn } \cs_generate_variant:Nn \seq_set_item:Nnn { c } \cs_generate_variant:Nn \seq_gset_item:Nnn { c } \prg_new_protected_conditional:Npnn \seq_set_item:Nnn #1#2#3 { TF , T , F } - { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_ii:nn } + { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Ne \use_ii:nn } \prg_new_protected_conditional:Npnn \seq_gset_item:Nnn #1#2#3 { TF , T , F } - { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_ii:nn } + { \@@_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Ne \use_ii:nn } \prg_generate_conditional_variant:Nnn \seq_set_item:Nnn { c } { TF , T , F } \prg_generate_conditional_variant:Nnn \seq_gset_item:Nnn { c } { TF , T , F } % \end{macrocode} @@ -1629,7 +1643,7 @@ { #6 { - \msg_error:nnxxx { seq } { item-too-large } + \msg_error:nneee { seq } { item-too-large } { \token_to_str:N #3 } {#2} {#1} } { \prg_return_false: } @@ -1715,9 +1729,9 @@ % from the stack, and the memory consumption becomes linear. % \begin{macrocode} \cs_new_protected:Npn \seq_reverse:N - { \@@_reverse:NN \__kernel_tl_set:Nx } + { \@@_reverse:NN \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_greverse:N - { \@@_reverse:NN \__kernel_tl_gset:Nx } + { \@@_reverse:NN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_reverse:NN #1 #2 { \cs_set_eq:NN \@@_tmp:w \@@_item:n @@ -1780,7 +1794,7 @@ { \int_compare:nNnTF { \seq_count:N #2 } > \c_max_register_int { - \msg_error:nnx { seq } { shuffle-too-large } + \msg_error:nne { seq } { shuffle-too-large } { \token_to_str:N #2 } } { @@ -1793,7 +1807,7 @@ \seq_gclear:N \g_@@_internal_seq \int_step_inline:nn \l_@@_internal_a_int { - \seq_gput_right:Nx \g_@@_internal_seq + \seq_gput_right:Ne \g_@@_internal_seq { \tex_the:D \tex_toks:D ##1 } } \group_end: @@ -1820,8 +1834,10 @@ % % \begin{macro}[TF] % { -% \seq_if_in:Nn, \seq_if_in:NV, \seq_if_in:Nv, \seq_if_in:No, \seq_if_in:Nx, -% \seq_if_in:cn, \seq_if_in:cV, \seq_if_in:cv, \seq_if_in:co, \seq_if_in:cx +% \seq_if_in:Nn, \seq_if_in:NV, \seq_if_in:Nv, \seq_if_in:Ne, +% \seq_if_in:No, \seq_if_in:Nx, +% \seq_if_in:cn, \seq_if_in:cV, \seq_if_in:cv,\seq_if_in:ce, +% \seq_if_in:co, \seq_if_in:cx % } % \UnitTested % \begin{macro}{\@@_if_in:} @@ -1854,7 +1870,7 @@ \cs_new:Npn \@@_if_in: { \prg_break:n { \group_end: \prg_return_true: } } \prg_generate_conditional_variant:Nnn \seq_if_in:Nn - { NV , Nv , No , Nx , c , cV , cv , co , cx } { T , F , TF } + { NV , Nv , Ne , No , Nx , c , cV , cv , ce , co , cx } { T , F , TF } % \end{macrocode} % \end{macro} % \end{macro} @@ -1896,7 +1912,7 @@ % \begin{macrocode} \cs_new_protected:Npn \seq_get_left:NN #1#2 { - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \exp_after:wN \@@_get_left:wnw #1 \@@_item:n { \q_no_value } \s_@@_stop @@ -1948,7 +1964,7 @@ % \begin{macrocode} \cs_new_protected:Npn \seq_get_right:NN #1#2 { - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \exp_after:wN \use_i_ii:nnn \exp_after:wN \@@_get_right_loop:nw @@ -1989,9 +2005,9 @@ % finally stops the loop. % \begin{macrocode} \cs_new_protected:Npn \seq_pop_right:NN - { \@@_pop:NNNN \@@_pop_right:NNN \__kernel_tl_set:Nx } + { \@@_pop:NNNN \@@_pop_right:NNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gpop_right:NN - { \@@_pop:NNNN \@@_pop_right:NNN \__kernel_tl_gset:Nx } + { \@@_pop:NNNN \@@_pop_right:NNN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_pop_right:NNN #1#2#3 { \cs_set_eq:NN \@@_tmp:w \@@_item:n @@ -2003,7 +2019,7 @@ #2 { \if_false: { \fi: } - \__kernel_tl_set:Nx #3 + \__kernel_tl_set:Ne #3 } { } \use_none:nn \cs_set_eq:NN \@@_item:n \@@_tmp:w @@ -2051,10 +2067,10 @@ { \@@_pop_TF:NNNN \@@_pop_left:NNN \tl_gset:Nn #1 #2 } \prg_new_protected_conditional:Npnn \seq_pop_right:NN #1#2 { T , F , TF } - { \@@_pop_TF:NNNN \@@_pop_right:NNN \__kernel_tl_set:Nx #1 #2 } + { \@@_pop_TF:NNNN \@@_pop_right:NNN \__kernel_tl_set:Ne #1 #2 } \prg_new_protected_conditional:Npnn \seq_gpop_right:NN #1#2 { T , F , TF } - { \@@_pop_TF:NNNN \@@_pop_right:NNN \__kernel_tl_gset:Nx #1 #2 } + { \@@_pop_TF:NNNN \@@_pop_right:NNN \__kernel_tl_gset:Ne #1 #2 } \prg_generate_conditional_variant:Nnn \seq_pop_left:NN { c } { T , F , TF } \prg_generate_conditional_variant:Nnn \seq_gpop_left:NN { c } @@ -2174,7 +2190,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\@@_push_item_def:n, \@@_push_item_def:x} +% \begin{macro}{\@@_push_item_def:n, \@@_push_item_def:e} % \begin{macro}{\@@_push_item_def:} % \begin{macro}{\@@_pop_item_def:} % The definition of \cs{@@_item:n} needs to be saved and restored at @@ -2186,10 +2202,10 @@ \@@_push_item_def: \cs_gset:Npn \@@_item:n ##1 } -\cs_new_protected:Npn \@@_push_item_def:x +\cs_new_protected:Npn \@@_push_item_def:e { \@@_push_item_def: - \cs_gset:Npx \@@_item:n ##1 + \cs_gset:Npe \@@_item:n ##1 } \cs_new_protected:Npn \@@_push_item_def: { @@ -2269,7 +2285,7 @@ % \begin{macrocode} \cs_new_protected:Npn \seq_map_variable:NNn #1#2#3 { - \@@_push_item_def:x + \@@_push_item_def:e { \tl_set:Nn \exp_not:N #2 {##1} \exp_not:n {#3} @@ -2380,9 +2396,9 @@ % semantics. % \begin{macrocode} \cs_new_protected:Npn \seq_set_map_x:NNn - { \@@_set_map_x:NNNn \__kernel_tl_set:Nx } + { \@@_set_map_x:NNNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gset_map_x:NNn - { \@@_set_map_x:NNNn \__kernel_tl_gset:Nx } + { \@@_set_map_x:NNNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_set_map_x:NNNn #1#2#3#4 { \@@_push_item_def:n { \exp_not:N \@@_item:n {#4} } @@ -2399,9 +2415,9 @@ % <inline function>. % \begin{macrocode} \cs_new_protected:Npn \seq_set_map:NNn - { \@@_set_map:NNNn \__kernel_tl_set:Nx } + { \@@_set_map:NNNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gset_map:NNn - { \@@_set_map:NNNn \__kernel_tl_gset:Nx } + { \@@_set_map:NNNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \@@_set_map:NNNn #1#2#3#4 { \@@_push_item_def:n { \exp_not:n { \@@_item:n {#4} } } @@ -2507,37 +2523,27 @@ % The same functions as for sequences, but with the correct naming. % % \begin{macro}{ -% \seq_push:Nn, \seq_push:NV, \seq_push:Nv, \seq_push:No, \seq_push:Nx, -% \seq_push:cn, \seq_push:cV, \seq_push:cV, \seq_push:co, \seq_push:cx +% \seq_push:Nn, \seq_push:NV, \seq_push:Nv, \seq_push:Ne, +% \seq_push:No, \seq_push:Nx, +% \seq_push:cn, \seq_push:cV, \seq_push:cv, \seq_push:ce, +% \seq_push:co, \seq_push:cx % } % \UnitTested % \begin{macro}{ -% \seq_gpush:Nn, \seq_gpush:NV, \seq_gpush:Nv, \seq_gpush:No, \seq_gpush:Nx, -% \seq_gpush:cn, \seq_gpush:cV, \seq_gpush:cv, \seq_gpush:co, \seq_gpush:cx +% \seq_gpush:Nn, \seq_gpush:NV, \seq_gpush:Nv, \seq_gpush:Ne, +% \seq_gpush:No, \seq_gpush:Nx, +% \seq_gpush:cn, \seq_gpush:cV, \seq_gpush:cv, \seq_gpush:ce, +% \seq_gpush:co, \seq_gpush:cx % } % \UnitTested % Pushing to a sequence is the same as adding on the left. % \begin{macrocode} -\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn -\cs_new_eq:NN \seq_push:NV \seq_put_left:NV -\cs_new_eq:NN \seq_push:Nv \seq_put_left:Nv -\cs_new_eq:NN \seq_push:No \seq_put_left:No -\cs_new_eq:NN \seq_push:Nx \seq_put_left:Nx -\cs_new_eq:NN \seq_push:cn \seq_put_left:cn -\cs_new_eq:NN \seq_push:cV \seq_put_left:cV -\cs_new_eq:NN \seq_push:cv \seq_put_left:cv -\cs_new_eq:NN \seq_push:co \seq_put_left:co -\cs_new_eq:NN \seq_push:cx \seq_put_left:cx +\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn +\cs_generate_variant:Nn \seq_push:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \seq_push:Nn { No , Nx , co , cx } \cs_new_eq:NN \seq_gpush:Nn \seq_gput_left:Nn -\cs_new_eq:NN \seq_gpush:NV \seq_gput_left:NV -\cs_new_eq:NN \seq_gpush:Nv \seq_gput_left:Nv -\cs_new_eq:NN \seq_gpush:No \seq_gput_left:No -\cs_new_eq:NN \seq_gpush:Nx \seq_gput_left:Nx -\cs_new_eq:NN \seq_gpush:cn \seq_gput_left:cn -\cs_new_eq:NN \seq_gpush:cV \seq_gput_left:cV -\cs_new_eq:NN \seq_gpush:cv \seq_gput_left:cv -\cs_new_eq:NN \seq_gpush:co \seq_gput_left:co -\cs_new_eq:NN \seq_gpush:cx \seq_gput_left:cx +\cs_generate_variant:Nn \seq_gpush:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \seq_gpush:Nn { No , Nx , co , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -2585,9 +2591,9 @@ % \UnitTested % Apply the general \cs{__kernel_chk_tl_type:NnnT}. % \begin{macrocode} -\cs_new_protected:Npn \seq_show:N { \@@_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \seq_show:N { \@@_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \seq_show:N { c } -\cs_new_protected:Npn \seq_log:N { \@@_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \seq_log:N { \@@_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \seq_log:N { c } \cs_new_protected:Npn \@@_show:NN #1#2 { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index 7ce22afb7ea..0371b7ecad4 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -189,7 +189,7 @@ % between two integers, with all distances converted to scaled points. % Thus % \begin{verbatim} -% \tl_set:Nx \l_my_tl { \dim_ratio:nn { 5 pt } { 10 pt } } +% \tl_set:Ne \l_my_tl { \dim_ratio:nn { 5 pt } { 10 pt } } % \tl_show:N \l_my_tl % \end{verbatim} % displays |327680/655360| on the terminal. @@ -1654,7 +1654,7 @@ { \int_gincr:N \g__kernel_prg_map_int \exp_args:NNc \@@_step:NNnnnn - \cs_gset_protected:Npx + \cs_gset_protected:Npe { @@_map_ \int_use:N \g__kernel_prg_map_int :w } {#1}{#2}{#3} { @@ -1733,10 +1733,10 @@ \exp_after:wN \@@_to_decimal:w \dim_use:N \@@_eval:w #1 \@@_eval_end: } -\use:x +\use:e { \cs_new:Npn \exp_not:N \@@_to_decimal:w - ##1 . ##2 \tl_to_str:n { pt } + #1 . #2 \tl_to_str:n { pt } } { \int_compare:nNnTF {#2} > \c_zero_int diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index b92eddbb350..6837e7fb0ea 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -124,8 +124,8 @@ % \begin{variable}{\g_@@_internal_seq, \g_@@_internal_tl} % Sorting happens in a group; the result is stored in those global % variables before being copied outside the group to the proper -% places. For seq and tl this is more efficient than using \cs{use:x} -% (or some \cs{exp_args:NNNx}) to smuggle the definition outside the +% places. For seq and tl this is more efficient than using \cs{use:e} +% (or some \cs{exp_args:NNNe}) to smuggle the definition outside the % group since \TeX{} does not need to re-read tokens. For clist we % don't gain anything since the result is converted from seq to clist % anyways. @@ -376,7 +376,7 @@ { \group_begin: \@@_main:NNNn \tl_map_inline:Nn \tl_map_break:n #2 {#3} - \__kernel_tl_gset:Nx \g_@@_internal_tl + \__kernel_tl_gset:Ne \g_@@_internal_tl { \@@_tl_toks:w \l_@@_min_int ; } \group_end: #1 #2 \g_@@_internal_tl @@ -432,7 +432,7 @@ \int_step_inline:nnn \l_@@_min_int { \l_@@_top_int - 1 } { - \seq_gput_right:Nx \g_@@_internal_seq + \seq_gput_right:Ne \g_@@_internal_seq { \tex_the:D \tex_toks:D ##1 } } \group_end: @@ -591,14 +591,14 @@ \cs_new_protected:Npn \@@_return_mark:w #1 \s_@@_mark { } \cs_new_protected:Npn \@@_return_none_error: { - \msg_error:nnxx { sort } { return-none } + \msg_error:nnee { sort } { return-none } { \tex_the:D \tex_toks:D \l_@@_A_int } { \tex_the:D \tex_toks:D \l_@@_C_int } \@@_return_same:w \@@_return_none_error: } \cs_new_protected:Npn \@@_return_two_error: { - \msg_error:nnxx { sort } { return-two } + \msg_error:nnee { sort } { return-two } { \tex_the:D \tex_toks:D \l_@@_A_int } { \tex_the:D \tex_toks:D \l_@@_C_int } } @@ -1026,7 +1026,7 @@ { \cs_set_eq:NN \toksdef \@@_disabled_toksdef:n } \cs_new_protected:Npn \@@_disabled_toksdef:n #1 { - \msg_error:nnx { sort } { toksdef } + \msg_error:nne { sort } { toksdef } { \token_to_str:N #1 } \@@_error: \tex_toksdef:D #1 @@ -1050,7 +1050,7 @@ \cs_new_protected:Npn \@@_too_long_error:NNw #1#2 \fi: { \fi: - \msg_error:nnxxx { sort } { too-large } + \msg_error:nneee { sort } { too-large } { \token_to_str:N #2 } { \int_eval:n { \l_@@_true_max_int - \l_@@_min_int } } { \int_eval:n { \l_@@_top_int - \l_@@_min_int } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index 6c0b2145e25..f4bfaf2c2c1 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -468,12 +468,12 @@ % an empty result for the input $-1$. % \begin{macrocode} \group_begin: - \__kernel_tl_set:Nx \l_@@_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } + \__kernel_tl_set:Ne \l_@@_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } \tl_map_inline:Nn \l_@@_internal_tl { \tl_map_inline:Nn \l_@@_internal_tl { - \tl_const:cx { c_@@_byte_ \int_eval:n {"#1##1} _tl } + \tl_const:ce { c_@@_byte_ \int_eval:n {"#1##1} _tl } { \char_generate:nn { "#1##1 } { 12 } #1 ##1 } } } @@ -554,7 +554,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_convert_gmap:N #1 { - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN \@@_convert_gmap_loop:NN \exp_after:wN #1 @@ -579,7 +579,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_convert_gmap_internal:N #1 { - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN \@@_convert_gmap_internal_loop:Nww \exp_after:wN #1 @@ -599,8 +599,8 @@ % % \subsubsection{Error-reporting during conversion} % -% \begin{macro}{\@@_if_flag_error:nnx} -% \begin{macro}{\@@_if_flag_no_error:nnx} +% \begin{macro}{\@@_if_flag_error:nne} +% \begin{macro}{\@@_if_flag_no_error:nne} % When converting using the function \cs{str_set_convert:Nnnn}, errors % should be reported to the user after each step in the % conversion. Errors are signalled by raising some flag (typically @@ -608,16 +608,16 @@ % give the user an error, otherwise remove the arguments. On the other % hand, in the conditional functions \cs{str_set_convert:NnnnTF}, % errors should be suppressed. This is done by changing -% \cs{@@_if_flag_error:nnx} into \cs{@@_if_flag_no_error:nnx} +% \cs{@@_if_flag_error:nne} into \cs{@@_if_flag_no_error:nne} % locally. % \begin{macrocode} -\cs_new_protected:Npn \@@_if_flag_error:nnx #1 +\cs_new_protected:Npn \@@_if_flag_error:nne #1 { \flag_if_raised:nTF {#1} - { \msg_error:nnx { str } } + { \msg_error:nne { str } } { \use_none:nn } } -\cs_new_protected:Npn \@@_if_flag_no_error:nnx #1#2#3 +\cs_new_protected:Npn \@@_if_flag_no_error:nne #1#2#3 { \flag_if_raised:nT {#1} { \bool_gset_true:N \g_@@_error_bool } } % \end{macrocode} % \end{macro} @@ -675,7 +675,7 @@ % unescape and decode; encode and escape; exit the group and store the % result in the user's variable. The various conversion functions all % act on \cs{g_@@_result_tl}. Errors are silenced for the conditional -% functions by redefining \cs{@@_if_flag_error:nnx} locally. +% functions by redefining \cs{@@_if_flag_error:nne} locally. % \begin{macrocode} \cs_new_protected:Npn \str_set_convert:Nnnn { \@@_convert:nNNnnn { } \tl_set_eq:NN } @@ -686,7 +686,7 @@ { \bool_gset_false:N \g_@@_error_bool \@@_convert:nNNnnn - { \cs_set_eq:NN \@@_if_flag_error:nnx \@@_if_flag_no_error:nnx } + { \cs_set_eq:NN \@@_if_flag_error:nne \@@_if_flag_no_error:nne } \tl_set_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g_@@_error_bool \prg_return_false: \prg_return_true: } @@ -695,7 +695,7 @@ { \bool_gset_false:N \g_@@_error_bool \@@_convert:nNNnnn - { \cs_set_eq:NN \@@_if_flag_error:nnx \@@_if_flag_no_error:nnx } + { \cs_set_eq:NN \@@_if_flag_error:nne \@@_if_flag_no_error:nne } \tl_gset_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g_@@_error_bool \prg_return_false: \prg_return_true: } @@ -703,7 +703,7 @@ { \group_begin: #1 - \__kernel_tl_gset:Nx \g_@@_result_tl { \__kernel_str_to_other_fast:n {#4} } + \__kernel_tl_gset:Ne \g_@@_result_tl { \__kernel_str_to_other_fast:n {#4} } \exp_after:wN \@@_convert:wwwnn \tl_to_str:n {#5} /// \s_@@_stop { decode } { unescape } @@ -758,7 +758,7 @@ { \if_meaning:w #1 #5 \tl_if_empty:nF {#3} - { \msg_error:nnx { str } { native-escaping } {#3} } + { \msg_error:nne { str } { native-escaping } {#3} } #1 \else: #4 #2 #1 @@ -808,7 +808,7 @@ { \cs_if_exist:cF { @@_convert_#2_#3: } { - \exp_args:Nx \@@_convert:nnnn + \exp_args:Ne \@@_convert:nnnn { \@@_convert_lowercase_alphanum:n {#3} } {#1} {#2} {#3} } @@ -830,7 +830,7 @@ } { \tl_clear:N \l_@@_internal_tl - \msg_error:nnxx { str } { unknown-#2 } {#4} {#1} + \msg_error:nnee { str } { unknown-#2 } {#4} {#1} } } \cs_if_exist:cF { @@_convert_#3_#1: } @@ -936,9 +936,9 @@ \cs_new_protected:Npn \@@_convert_unescape_: { \flag_clear:n { str_byte } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_args:No \@@_filter_bytes:n \g_@@_result_tl } - \@@_if_flag_error:nnx { str_byte } { non-byte } { bytes } + \@@_if_flag_error:nne { str_byte } { non-byte } { bytes } } } { \cs_new_protected:Npn \@@_convert_unescape_: { } } @@ -997,7 +997,7 @@ { \flag_clear:n { str_error } \@@_convert_gmap_internal:N \@@_encode_native_char:n - \@@_if_flag_error:nnx { str_error } + \@@_if_flag_error:nne { str_error } { native-overflow } { } } \cs_new:Npn \@@_encode_native_char:n #1 @@ -1032,7 +1032,7 @@ \cs_new_protected:Npn \@@_convert_decode_clist: { \clist_gset:No \g_@@_result_tl \g_@@_result_tl - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_args:No \clist_map_function:nN \g_@@_result_tl \@@_decode_clist_char:n @@ -1055,7 +1055,7 @@ \cs_new_protected:Npn \@@_convert_encode_clist: { \@@_convert_gmap_internal:N \@@_encode_clist_char:n - \__kernel_tl_gset:Nx \g_@@_result_tl { \tl_tail:N \g_@@_result_tl } + \__kernel_tl_gset:Ne \g_@@_result_tl { \tl_tail:N \g_@@_result_tl } } \cs_new:Npn \@@_encode_clist_char:n #1 { , #1 } % \end{macrocode} @@ -1179,14 +1179,14 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_convert_decode_eight_bit:n #1 { - \cs_set:Npx \@@_tmp:w + \cs_set:Npe \@@_tmp:w { \exp_not:N \@@_decode_eight_bit_aux:Nn \exp_not:c { g_@@_decode_#1_intarray } } \flag_clear:n { str_error } \@@_convert_gmap:N \@@_tmp:w - \@@_if_flag_error:nnx { str_error } { decode-8-bit } {#1} + \@@_if_flag_error:nne { str_error } { decode-8-bit } {#1} } \cs_new:Npn \@@_decode_eight_bit_aux:Nn #1#2 { @@ -1222,7 +1222,7 @@ \int_new:N \l_@@_modulo_int \cs_new_protected:Npn \@@_convert_encode_eight_bit:n #1 { - \cs_set:Npx \@@_tmp:w + \cs_set:Npe \@@_tmp:w { \exp_not:N \@@_encode_eight_bit_aux:NNn \exp_not:c { g_@@_encode_#1_intarray } @@ -1230,7 +1230,7 @@ } \flag_clear:n { str_error } \@@_convert_gmap_internal:N \@@_tmp:w - \@@_if_flag_error:nnx { str_error } { encode-8-bit } {#1} + \@@_if_flag_error:nne { str_error } { encode-8-bit } {#1} } \cs_new:Npn \@@_encode_eight_bit_aux:NNn #1#2#3 { @@ -1349,7 +1349,7 @@ \group_begin: \flag_clear:n { str_error } \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \@@_output_byte:w " \exp_last_unbraced:Nf \@@_unescape_hex_auxi:N @@ -1358,7 +1358,7 @@ \prg_break_point: \@@_output_end: } - \@@_if_flag_error:nnx { str_error } { unescape-hex } { } + \@@_if_flag_error:nne { str_error } { unescape-hex } { } \group_end: } \cs_new:Npn \@@_unescape_hex_auxi:N #1 @@ -1428,14 +1428,14 @@ \flag_clear:n { str_byte } \flag_clear:n { str_error } \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN #3 \g_@@_result_tl #1 ? { ? \prg_break: } \prg_break_point: } - \@@_if_flag_error:nnx { str_byte } { non-byte } { #2 } - \@@_if_flag_error:nnx { str_error } { unescape-#2 } { } + \@@_if_flag_error:nne { str_byte } { non-byte } { #2 } + \@@_if_flag_error:nne { str_error } { unescape-#2 } { } \group_end: } \cs_new:Npn #3 ##1#1##2##3 @@ -1514,20 +1514,20 @@ \flag_clear:n { str_byte } \flag_clear:n { str_error } \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN \@@_unescape_string_newlines:wN \g_@@_result_tl \prg_break: ^^M ? \prg_break_point: } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN \@@_unescape_string_loop:wNNN \g_@@_result_tl #1 ?? { ? \prg_break: } \prg_break_point: } - \@@_if_flag_error:nnx { str_byte } { non-byte } { string } - \@@_if_flag_error:nnx { str_error } { unescape-string } { } + \@@_if_flag_error:nne { str_byte } { non-byte } { string } + \@@_if_flag_error:nne { str_error } { unescape-string } { } \group_end: } } @@ -1664,7 +1664,7 @@ % (and including) \texttt{del}, are converted to octal. One backslash % is added before each parenthesis and backslash. % \begin{macrocode} -\str_const:Nx \c_@@_escape_string_str +\str_const:Ne \c_@@_escape_string_str { \c_backslash_str ( ) } \cs_new_protected:Npn \@@_convert_escape_string: { \@@_convert_gmap:N \@@_escape_string_char:N } @@ -1973,13 +1973,13 @@ \flag_clear:n { str_extra } \flag_clear:n { str_overlong } \flag_clear:n { str_overflow } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN \@@_decode_utf_viii_start:N \g_@@_result_tl { \prg_break: \@@_decode_utf_viii_end: } \prg_break_point: } - \@@_if_flag_error:nnx { str_error } { utf8-decode } { } + \@@_if_flag_error:nne { str_error } { utf8-decode } { } } \cs_new:Npn \@@_decode_utf_viii_start:N #1 { @@ -2109,7 +2109,7 @@ \cs_new_protected:cpn { @@_convert_encode_utf16: } { \@@_encode_utf_xvi_aux:N \@@_output_byte_pair_be:n - \tl_gput_left:Nx \g_@@_result_tl { ^^fe ^^ff } + \tl_gput_left:Ne \g_@@_result_tl { ^^fe ^^ff } } \cs_new_protected:cpn { @@_convert_encode_utf16be: } { \@@_encode_utf_xvi_aux:N \@@_output_byte_pair_be:n } @@ -2120,7 +2120,7 @@ \flag_clear:n { str_error } \cs_set_eq:NN \@@_tmp:w #1 \@@_convert_gmap_internal:N \@@_encode_utf_xvi_char:n - \@@_if_flag_error:nnx { str_error } { utf16-encode } { } + \@@_if_flag_error:nne { str_error } { utf16-encode } { } } \cs_new:Npn \@@_encode_utf_xvi_char:n #1 { @@ -2263,13 +2263,13 @@ \flag_clear:n { str_extra } \flag_clear:n { str_end } \cs_set:Npn \@@_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN \@@_decode_utf_xvi_pair:NN #2 \q_@@_nil \q_@@_nil \prg_break_point: } - \@@_if_flag_error:nnx { str_error } { utf16-decode } { } + \@@_if_flag_error:nne { str_error } { utf16-decode } { } } % \end{macrocode} % \end{macro} @@ -2422,7 +2422,7 @@ \cs_new_protected:cpn { @@_convert_encode_utf32: } { \@@_convert_gmap_internal:N \@@_encode_utf_xxxii_be:n - \tl_gput_left:Nx \g_@@_result_tl { ^^00 ^^00 ^^fe ^^ff } + \tl_gput_left:Ne \g_@@_result_tl { ^^00 ^^00 ^^fe ^^ff } } \cs_new_protected:cpn { @@_convert_encode_utf32be: } { \@@_convert_gmap_internal:N \@@_encode_utf_xxxii_be:n } @@ -2551,13 +2551,13 @@ \flag_clear:n { str_end } \flag_clear:n { str_error } \cs_set:Npn \@@_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Nx \g_@@_result_tl + \__kernel_tl_gset:Ne \g_@@_result_tl { \exp_after:wN \@@_decode_utf_xxxii_loop:NNNN #2 \s_@@_stop \s_@@_stop \s_@@_stop \s_@@_stop \prg_break_point: } - \@@_if_flag_error:nnx { str_error } { utf32-decode } { } + \@@_if_flag_error:nne { str_error } { utf32-decode } { } } \cs_new:Npn \@@_decode_utf_xxxii_loop:NNNN #1#2#3#4 { @@ -2639,7 +2639,7 @@ } \cs_new:Npn \@@_convert_pdfname_bytes_aux:n #1 { \@@_convert_pdfname_bytes_aux:nnnn #1 } - \cs_new:Npx \@@_convert_pdfname_bytes_aux:nnnn #1#2#3#4 + \cs_new:Npe \@@_convert_pdfname_bytes_aux:nnnn #1#2#3#4 { \c_hash_str \exp_not:N \@@_output_hexadecimal:n {#1} \c_hash_str \exp_not:N \@@_output_hexadecimal:n {#2} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index c2498436cba..300a779bd1f 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -108,8 +108,8 @@ % % \begin{function}[added = 2015-09-18, updated = 2018-07-28] % { -% \str_const:Nn, \str_const:NV, \str_const:Nx, -% \str_const:cn, \str_const:cV, \str_const:cx +% \str_const:Nn, \str_const:NV, \str_const:Ne, +% \str_const:cn, \str_const:cV, \str_const:ce % } % \begin{syntax} % \cs{str_const:Nn} \meta{str~var} \Arg{token list} @@ -178,10 +178,10 @@ % % \begin{function}[added = 2015-09-18, updated = 2018-07-28] % { -% \str_set:Nn, \str_set:NV, \str_set:Nx, -% \str_set:cn, \str_set:cV, \str_set:cx, -% \str_gset:Nn, \str_gset:NV, \str_gset:Nx, -% \str_gset:cn, \str_gset:cV, \str_gset:cx +% \str_set:Nn, \str_set:NV, \str_set:Ne, +% \str_set:cn, \str_set:cV, \str_set:ce, +% \str_gset:Nn, \str_gset:NV, \str_gset:Ne, +% \str_gset:cn, \str_gset:cV, \str_gset:ce % } % \begin{syntax} % \cs{str_set:Nn} \meta{str var} \Arg{token list} @@ -192,10 +192,10 @@ % % \begin{function}[added = 2015-09-18, updated = 2018-07-28] % { -% \str_put_left:Nn, \str_put_left:NV, \str_put_left:Nx, -% \str_put_left:cn, \str_put_left:cV, \str_put_left:cx, -% \str_gput_left:Nn, \str_gput_left:NV, \str_gput_left:Nx, -% \str_gput_left:cn, \str_gput_left:cV, \str_gput_left:cx +% \str_put_left:Nn, \str_put_left:NV, \str_put_left:Ne, +% \str_put_left:cn, \str_put_left:cV, \str_put_left:ce, +% \str_gput_left:Nn, \str_gput_left:NV, \str_gput_left:Ne, +% \str_gput_left:cn, \str_gput_left:cV, \str_gput_left:ce % } % \begin{syntax} % \cs{str_put_left:Nn} \meta{str var} \Arg{token list} @@ -207,10 +207,10 @@ % % \begin{function}[added = 2015-09-18, updated = 2018-07-28] % { -% \str_put_right:Nn, \str_put_right:NV, \str_put_right:Nx, -% \str_put_right:cn, \str_put_right:cV, \str_put_right:cx, -% \str_gput_right:Nn, \str_gput_right:NV, \str_gput_right:Nx, -% \str_gput_right:cn, \str_gput_right:cV, \str_gput_right:cx +% \str_put_right:Nn, \str_put_right:NV, \str_put_right:Ne, +% \str_put_right:cn, \str_put_right:cV, \str_put_right:Ne, +% \str_gput_right:Nn, \str_gput_right:NV, \str_gput_right:Ne, +% \str_gput_right:cn, \str_gput_right:cV, \str_gput_right:ce % } % \begin{syntax} % \cs{str_put_right:Nn} \meta{str var} \Arg{token list} @@ -595,18 +595,18 @@ % at positions $s$ for $s\le0$ or $s>l$. % For instance, % \begin{verbatim} -% \iow_term:x { \str_range:nnn { abcdef } { 2 } { 5 } } -% \iow_term:x { \str_range:nnn { abcdef } { -4 } { -1 } } -% \iow_term:x { \str_range:nnn { abcdef } { -2 } { -1 } } -% \iow_term:x { \str_range:nnn { abcdef } { 0 } { -1 } } +% \iow_term:e { \str_range:nnn { abcdef } { 2 } { 5 } } +% \iow_term:e { \str_range:nnn { abcdef } { -4 } { -1 } } +% \iow_term:e { \str_range:nnn { abcdef } { -2 } { -1 } } +% \iow_term:e { \str_range:nnn { abcdef } { 0 } { -1 } } % \end{verbatim} % prints \texttt{bcde}, \texttt{cdef}, \texttt{ef}, and an empty % line to the terminal. The \meta{start index} must always be smaller than % or equal to the \meta{end index}: if this is not the case then no output % is generated. Thus % \begin{verbatim} -% \iow_term:x { \str_range:nnn { abcdef } { 5 } { 2 } } -% \iow_term:x { \str_range:nnn { abcdef } { -1 } { -4 } } +% \iow_term:e { \str_range:nnn { abcdef } { 5 } { 2 } } +% \iow_term:e { \str_range:nnn { abcdef } { -1 } { -4 } } % \end{verbatim} % both yield empty strings. % \end{function} @@ -617,25 +617,25 @@ % The behavior of \cs{str_range_ignore_spaces:nnn} is similar, but spaces % are removed before starting the job. The input % \begin{verbatim} -% \iow_term:x { \str_range:nnn { abcdefg } { 2 } { 5 } } -% \iow_term:x { \str_range:nnn { abcdefg } { 2 } { -3 } } -% \iow_term:x { \str_range:nnn { abcdefg } { -6 } { 5 } } -% \iow_term:x { \str_range:nnn { abcdefg } { -6 } { -3 } } -% -% \iow_term:x { \str_range:nnn { abc~efg } { 2 } { 5 } } -% \iow_term:x { \str_range:nnn { abc~efg } { 2 } { -3 } } -% \iow_term:x { \str_range:nnn { abc~efg } { -6 } { 5 } } -% \iow_term:x { \str_range:nnn { abc~efg } { -6 } { -3 } } -% -% \iow_term:x { \str_range_ignore_spaces:nnn { abcdefg } { 2 } { 5 } } -% \iow_term:x { \str_range_ignore_spaces:nnn { abcdefg } { 2 } { -3 } } -% \iow_term:x { \str_range_ignore_spaces:nnn { abcdefg } { -6 } { 5 } } -% \iow_term:x { \str_range_ignore_spaces:nnn { abcdefg } { -6 } { -3 } } -% -% \iow_term:x { \str_range_ignore_spaces:nnn { abcd~efg } { 2 } { 5 } } -% \iow_term:x { \str_range_ignore_spaces:nnn { abcd~efg } { 2 } { -3 } } -% \iow_term:x { \str_range_ignore_spaces:nnn { abcd~efg } { -6 } { 5 } } -% \iow_term:x { \str_range_ignore_spaces:nnn { abcd~efg } { -6 } { -3 } } +% \iow_term:e { \str_range:nnn { abcdefg } { 2 } { 5 } } +% \iow_term:e { \str_range:nnn { abcdefg } { 2 } { -3 } } +% \iow_term:e { \str_range:nnn { abcdefg } { -6 } { 5 } } +% \iow_term:e { \str_range:nnn { abcdefg } { -6 } { -3 } } +% +% \iow_term:e { \str_range:nnn { abc~efg } { 2 } { 5 } } +% \iow_term:e { \str_range:nnn { abc~efg } { 2 } { -3 } } +% \iow_term:e { \str_range:nnn { abc~efg } { -6 } { 5 } } +% \iow_term:e { \str_range:nnn { abc~efg } { -6 } { -3 } } +% +% \iow_term:e { \str_range_ignore_spaces:nnn { abcdefg } { 2 } { 5 } } +% \iow_term:e { \str_range_ignore_spaces:nnn { abcdefg } { 2 } { -3 } } +% \iow_term:e { \str_range_ignore_spaces:nnn { abcdefg } { -6 } { 5 } } +% \iow_term:e { \str_range_ignore_spaces:nnn { abcdefg } { -6 } { -3 } } +% +% \iow_term:e { \str_range_ignore_spaces:nnn { abcd~efg } { 2 } { 5 } } +% \iow_term:e { \str_range_ignore_spaces:nnn { abcd~efg } { 2 } { -3 } } +% \iow_term:e { \str_range_ignore_spaces:nnn { abcd~efg } { -6 } { 5 } } +% \iow_term:e { \str_range_ignore_spaces:nnn { abcd~efg } { -6 } { -3 } } % \end{verbatim} % will print four instances of |bcde|, four instances of |bc e| and eight % instances of |bcde|. @@ -973,20 +973,20 @@ % % \begin{macro} % { -% \str_set:Nn, \str_set:NV, \str_set:Nx, -% \str_set:cn, \str_set:cV, \str_set:cx, -% \str_gset:Nn, \str_gset:NV, \str_gset:Nx, -% \str_gset:cn, \str_gset:cV, \str_gset:cx, -% \str_const:Nn, \str_const:NV, \str_const:Nx, -% \str_const:cn, \str_const:cV, \str_const:cx, -% \str_put_left:Nn, \str_put_left:NV, \str_put_left:Nx, -% \str_put_left:cn, \str_put_left:cV, \str_put_left:cx, -% \str_gput_left:Nn, \str_gput_left:NV, \str_gput_left:Nx, -% \str_gput_left:cn, \str_gput_left:cV, \str_gput_left:cx, -% \str_put_right:Nn, \str_put_right:NV, \str_put_right:Nx, -% \str_put_right:cn, \str_put_right:cV, \str_put_right:cx, -% \str_gput_right:Nn, \str_gput_right:NV, \str_gput_right:Nx, -% \str_gput_right:cn, \str_gput_right:cV, \str_gput_right:cx +% \str_set:Nn, \str_set:NV, \str_set:Ne, \str_set:Nx, +% \str_set:cn, \str_set:cV, \str_set:ce, \str_set:cx, +% \str_gset:Nn, \str_gset:NV, \str_gset:Ne, \str_gset:Nx, +% \str_gset:cn, \str_gset:cV, \str_gset:ce, \str_gset:cx, +% \str_const:Nn, \str_const:NV, \str_const:Ne, \str_const:Nx, +% \str_const:cn, \str_const:cV, \str_const:ce, \str_const:cx, +% \str_put_left:Nn, \str_put_left:NV, \str_put_left:Ne, \str_put_left:Nx, +% \str_put_left:cn, \str_put_left:cV, \str_put_left:ce, \str_put_left:cx, +% \str_gput_left:Nn, \str_gput_left:NV, \str_gput_left:Ne, \str_gput_left:Nx, +% \str_gput_left:cn, \str_gput_left:cV, \str_gput_left:ce, \str_gput_left:cx, +% \str_put_right:Nn, \str_put_right:NV, \str_put_right:Ne, \str_put_right:Nx, +% \str_put_right:cn, \str_put_right:cV, \str_put_right:ce, \str_put_right:cx, +% \str_gput_right:Nn, \str_gput_right:NV, \str_gput_right:Ne, \str_gput_right:Nx, +% \str_gput_right:cn, \str_gput_right:cV, \str_gput_right:ce, \str_gput_right:cx % } % Simply convert the token list inputs to \meta{strings}. % \begin{macrocode} @@ -995,12 +995,13 @@ { \tl_if_blank:nF {#1} { - \cs_new_protected:cpx { str_ #1 :Nn } ##1##2 + \cs_new_protected:cpe { str_ #1 :Nn } ##1##2 { - \exp_not:c { tl_ #1 :Nx } ##1 + \exp_not:c { tl_ #1 :Ne } ##1 { \exp_not:N \tl_to_str:n {##2} } } - \cs_generate_variant:cn { str_ #1 :Nn } { NV , Nx , cn , cV , cx } + \cs_generate_variant:cn { str_ #1 :Nn } + { NV , Ne , Nx , cn , cV , ce , cx } \@@_tmp:n } } @@ -1041,13 +1042,13 @@ % hide in braces. % \begin{macrocode} \cs_new_protected:Npn \str_replace_once:Nnn - { \@@_replace:NNNnn \prg_do_nothing: \__kernel_tl_set:Nx } + { \@@_replace:NNNnn \prg_do_nothing: \__kernel_tl_set:Ne } \cs_new_protected:Npn \str_greplace_once:Nnn - { \@@_replace:NNNnn \prg_do_nothing: \__kernel_tl_gset:Nx } + { \@@_replace:NNNnn \prg_do_nothing: \__kernel_tl_gset:Ne } \cs_new_protected:Npn \str_replace_all:Nnn - { \@@_replace:NNNnn \@@_replace_next:w \__kernel_tl_set:Nx } + { \@@_replace:NNNnn \@@_replace_next:w \__kernel_tl_set:Ne } \cs_new_protected:Npn \str_greplace_all:Nnn - { \@@_replace:NNNnn \@@_replace_next:w \__kernel_tl_gset:Nx } + { \@@_replace:NNNnn \@@_replace_next:w \__kernel_tl_gset:Ne } \cs_generate_variant:Nn \str_replace_once:Nnn { c } \cs_generate_variant:Nn \str_greplace_once:Nnn { c } \cs_generate_variant:Nn \str_replace_all:Nnn { c } @@ -1056,10 +1057,10 @@ { \tl_if_empty:nTF {#4} { - \msg_error:nnx { kernel } { empty-search-pattern } {#5} + \msg_error:nne { kernel } { empty-search-pattern } {#5} } { - \use:x + \use:e { \exp_not:n { \@@_replace_aux:NNNnnn #1 #2 #3 } { \tl_to_str:N #3 } @@ -1215,7 +1216,7 @@ % \begin{macrocode} \prg_new_protected_conditional:Npnn \str_if_in:Nn #1#2 { T , F , TF } { - \use:x + \use:e { \tl_if_in:nnTF { \tl_to_str:N #1 } { \tl_to_str:n {#2} } } { \prg_return_true: } { \prg_return_false: } } @@ -1223,7 +1224,7 @@ { c } { T , F , TF } \prg_new_protected_conditional:Npnn \str_if_in:nn #1#2 { T , F , TF } { - \use:x + \use:e { \tl_if_in:nnTF { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } } { \prg_return_true: } { \prg_return_false: } } @@ -1369,7 +1370,7 @@ \int_gincr:N \g__kernel_prg_map_int \cs_gset_protected:cpn { @@_map_ \int_use:N \g__kernel_prg_map_int :w } ##1 {#2} - \use:x + \use:e { \exp_not:N \@@_map_inline:NN \exp_not:c { @@_map_ \int_use:N \g__kernel_prg_map_int :w } @@ -1390,7 +1391,7 @@ } \cs_new_protected:Npn \str_map_variable:nNn #1#2#3 { - \use:x + \use:e { \exp_not:n { \@@_map_variable:NnN #2 {#3} } \__kernel_str_to_other_fast:n {#1} @@ -1992,7 +1993,7 @@ \cs_new:Npn \@@_change_case_codepoint:nN #1#2 { \@@_change_case_char:fnn { \int_eval:n {`#2} } {#1} {#2} } \else: - \cs_new:Npx \@@_change_case_codepoint:nN #1#2 + \cs_new:Npe \@@_change_case_codepoint:nN #1#2 { \exp_not:N \int_compare:nNnTF {`#2} > { "80 } { @@ -2121,19 +2122,19 @@ % For all of those strings, use \cs{cs_to_str:N} to get characters with % the correct category code without worries % \begin{macrocode} -\str_const:Nx \c_ampersand_str { \cs_to_str:N \& } -\str_const:Nx \c_atsign_str { \cs_to_str:N \@ } -\str_const:Nx \c_backslash_str { \cs_to_str:N \\ } -\str_const:Nx \c_left_brace_str { \cs_to_str:N \{ } -\str_const:Nx \c_right_brace_str { \cs_to_str:N \} } -\str_const:Nx \c_circumflex_str { \cs_to_str:N \^ } -\str_const:Nx \c_colon_str { \cs_to_str:N \: } -\str_const:Nx \c_dollar_str { \cs_to_str:N \$ } -\str_const:Nx \c_hash_str { \cs_to_str:N \# } -\str_const:Nx \c_percent_str { \cs_to_str:N \% } -\str_const:Nx \c_tilde_str { \cs_to_str:N \~ } -\str_const:Nx \c_underscore_str { \cs_to_str:N \_ } -\str_const:Nx \c_zero_str { 0 } +\str_const:Ne \c_ampersand_str { \cs_to_str:N \& } +\str_const:Ne \c_atsign_str { \cs_to_str:N \@ } +\str_const:Ne \c_backslash_str { \cs_to_str:N \\ } +\str_const:Ne \c_left_brace_str { \cs_to_str:N \{ } +\str_const:Ne \c_right_brace_str { \cs_to_str:N \} } +\str_const:Ne \c_circumflex_str { \cs_to_str:N \^ } +\str_const:Ne \c_colon_str { \cs_to_str:N \: } +\str_const:Ne \c_dollar_str { \cs_to_str:N \$ } +\str_const:Ne \c_hash_str { \cs_to_str:N \# } +\str_const:Ne \c_percent_str { \cs_to_str:N \% } +\str_const:Ne \c_tilde_str { \cs_to_str:N \~ } +\str_const:Ne \c_underscore_str { \cs_to_str:N \_ } +\str_const:Ne \c_zero_str { 0 } % \end{macrocode} % \end{variable} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index 5717e60e731..5e57590767f 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -148,7 +148,7 @@ % where the |u| part is only present for \upTeX{}. % \end{variable} % -% \begin{function}[added = 2020-09-24, EXP]{\sys_timer:} +% \begin{function}[added = 2021-05-12, EXP]{\sys_timer:} % \begin{syntax} % \cs{sys_timer:} % \end{syntax} @@ -159,6 +159,14 @@ % scaled seconds ($2^{-16}$ seconds). % \end{function} % +% \begin{function}[added = 2021-05-12, EXP, pTF]{\sys_if_timer_exist:} +% \begin{syntax} +% \cs{sys_if_timer_exist_p:} +% \cs{sys_if_timer_exist:TF} \Arg{true code} \Arg{false code} +% \end{syntax} +% Tests whether current engine has timer support. +% \end{function} +% % \section{Output format} % % \begin{function}[added = 2015-09-19, EXP, pTF] @@ -249,8 +257,8 @@ % \cs{q_no_value} in the non-branching version. % Note that quote characters (|"|) \emph{cannot} be used inside the % \meta{shell command}. The \cs{sys_get_shell:nnNTF} conditional -% inserts the \texttt{true code} if the shell is available and no quote is -% detected, and the \texttt{false code} otherwise. +% inserts the \meta{true code} if the shell is available and no quote is +% detected, and the \meta{false code} otherwise. % \end{function} % % \begin{variable}[added = 2017-05-27]{\c_sys_shell_escape_int} @@ -294,14 +302,16 @@ % shell escape is enabled use \cs{sys_if_shell:}. % \end{function} % -% \begin{function}[added = 2017-05-27]{\sys_shell_now:n, \sys_shell_now:x} +% \begin{function}[added = 2017-05-27] +% {\sys_shell_now:n, \sys_shell_now:e} % \begin{syntax} % \cs{sys_shell_now:n} \Arg{tokens} % \end{syntax} % Execute \meta{tokens} through shell escape immediately. % \end{function} % -% \begin{function}[added = 2017-05-27]{\sys_shell_shipout:n, \sys_shell_shipout:x} +% \begin{function}[added = 2017-05-27] +% {\sys_shell_shipout:n, \sys_shell_shipout:e} % \begin{syntax} % \cs{sys_shell_shipout:n} \Arg{tokens} % \end{syntax} @@ -411,7 +421,7 @@ % Set up the engine tests on the basis exactly one test should be true. % Mainly a case of looking for the appropriate marker primitive. % \begin{macrocode} -\str_const:Nx \c_sys_engine_str +\str_const:Ne \c_sys_engine_str { \cs_if_exist:NT \tex_luatexversion:D { luatex } \cs_if_exist:NT \tex_pdftexversion:D { pdftex } @@ -448,7 +458,7 @@ % \begin{macrocode} \group_begin: \cs_set_eq:NN \lua_now:e \tex_directlua:D - \str_const:Nx \c_sys_engine_exec_str + \str_const:Ne \c_sys_engine_exec_str { \sys_if_engine_pdftex:T { pdf } \sys_if_engine_xetex:T { xe } @@ -466,7 +476,7 @@ tex } \group_end: -\str_const:Nx \c_sys_engine_format_str +\str_const:Ne \c_sys_engine_format_str { \cs_if_exist:NTF \fmtname { @@ -505,7 +515,7 @@ % Various different engines, various different ways to extract the % data! % \begin{macrocode} -\str_const:Nx \c_sys_engine_version_str +\str_const:Ne \c_sys_engine_version_str { \str_case:on \c_sys_engine_str { @@ -594,7 +604,7 @@ \tl_if_blank:nF {#1} { \tl_gset:Nn \g_@@_backend_tl {#1} } \@@_load_backend_check:N \g_@@_backend_tl - \str_const:Nx \c_sys_backend_str { \g_@@_backend_tl } + \str_const:Ne \c_sys_backend_str { \g_@@_backend_tl } \__kernel_sys_configuration_load:n { l3backend- \c_sys_backend_str } } @@ -610,7 +620,7 @@ { xetex } { } } { - \msg_error:nnxx { sys } { wrong-backend } + \msg_error:nnee { sys } { wrong-backend } #1 { xetex } \tl_gset:Nn #1 { xetex } } @@ -629,7 +639,7 @@ { \str_if_eq_p:Vn #1 { luatex } } { \str_if_eq_p:Vn #1 { pdftex } } { - \msg_error:nnxx { sys } { wrong-backend } + \msg_error:nnee { sys } { wrong-backend } #1 { \sys_if_engine_luatex:TF { luatex } { pdftex } } \sys_if_engine_luatex:TF { \tl_gset:Nn #1 { luatex } } @@ -645,7 +655,7 @@ { dvisvgm } { } } { - \msg_error:nnxx { sys } { wrong-backend } + \msg_error:nnee { sys } { wrong-backend } #1 { dvips } \tl_gset:Nn #1 { dvips } } @@ -697,7 +707,7 @@ % \begin{variable}{\c_@@_marker_tl} % The same idea as the marker for rescanning token lists. % \begin{macrocode} -\tl_const:Nx \c_@@_marker_tl { : \token_to_str:N : } +\tl_const:Ne \c_@@_marker_tl { : \token_to_str:N : } % \end{macrocode} % \end{variable} % @@ -721,7 +731,7 @@ { \tl_if_in:nnTF {#1} { " } { - \msg_error:nnx + \msg_error:nne { kernel } { quote-in-shell } {#1} \prg_return_false: } @@ -759,7 +769,7 @@ % \end{macrocode} % \end{variable} % -% \begin{macro}{\sys_shell_now:n} +% \begin{macro}{\sys_shell_now:n, \sys_shell_now:e, \sys_shell_now:x} % \begin{macro}{\@@_shell_now:e} % Execute commands through shell escape immediately. % @@ -797,13 +807,13 @@ do \cs_new_protected:Npn \sys_shell_now:n #1 { \iow_now:Nn \c_@@_shell_stream_int {#1} } } -\cs_generate_variant:Nn \sys_shell_now:n { x } +\cs_generate_variant:Nn \sys_shell_now:n { e, x } %</tex> % \end{macrocode} % \end{macro} % \end{macro} % -% \begin{macro}{\sys_shell_shipout:n} +% \begin{macro}{\sys_shell_shipout:n, \sys_shell_shipout:e, \sys_shell_shipout:x} % \begin{macro}{\@@_shell_shipout:e} % Execute commands through shell escape at shipout. % @@ -843,7 +853,7 @@ end \cs_new_protected:Npn \sys_shell_shipout:n #1 { \iow_shipout:Nn \c_@@_shell_stream_int {#1} } } -\cs_generate_variant:Nn \sys_shell_shipout:n { x } +\cs_generate_variant:Nn \sys_shell_shipout:n { e , x } % \end{macrocode} % \end{macro} % \end{macro} @@ -940,7 +950,7 @@ end % \begin{macrocode} \@@_everyjob:n { - \str_const:Nx \c_sys_timestamp_str + \str_const:Ne \c_sys_timestamp_str { \cs_if_exist:NTF \tex_directlua:D { \tex_directlua:D { tex.print(pdf.getcreationdate()) } } @@ -1101,7 +1111,7 @@ end % \begin{macrocode} \@@_finalise:n { - \str_const:Nx \c_sys_output_str + \str_const:Ne \c_sys_output_str { \int_compare:nNnTF { \cs_if_exist_use:NF \tex_pdfoutput:D { 0 } } > { 0 } @@ -1126,7 +1136,7 @@ end \tl_new:N \g_@@_backend_tl \@@_finalise:n { - \__kernel_tl_gset:Nx \g_@@_backend_tl + \__kernel_tl_gset:Ne \g_@@_backend_tl { \sys_if_engine_xetex:TF { xetex } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index 07a79e2bb02..0e20a797f09 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -243,15 +243,15 @@ } \cs_new:Npn \@@_change_case_auxi:nnn #1#2#3 { \exp_args:No \@@_change_case_BCP:nnn { \tl_to_str:n {#3} } {#1} {#2} } -\cs_new:Npx \@@_change_case_BCP:nnn #1#2#3 +\cs_new:Npe \@@_change_case_BCP:nnn #1#2#3 { \exp_not:N \@@_change_case_BCP:nnw {#2} {#3} #1 \tl_to_str:n { -x- -x- } \exp_not:N \q_@@_stop } -\use:x +\use:e { \cs_new:Npn \exp_not:N \@@_change_case_BCP:nnw - ##1##2##3 \tl_to_str:n { -x- } ##4 \tl_to_str:n { -x- } ##5 + #1#2#3 \tl_to_str:n { -x- } #4 \tl_to_str:n { -x- } #5 \exp_not:N \q_@@_stop } { \@@_change_case_BCP:nnnnw {#1} {#2} {#4} {#3} #3 - - \q_@@_stop } @@ -353,9 +353,9 @@ } \@@_change_case_break:w } -\use:x +\use:e { - \cs_new:Npn \exp_not:N \@@_change_case_space:nnw ##1##2 \c_space_tl + \cs_new:Npn \exp_not:N \@@_change_case_space:nnw #1#2 \c_space_tl } { \@@_change_case_store:n { ~ } @@ -427,9 +427,9 @@ \@@_change_case_store:n { {#4} } \@@_change_case_math_loop:nnNw {#1} {#2} #3 } -\use:x +\use:e { - \cs_new:Npn \exp_not:N \@@_change_case_math_space:nnNw ##1##2##3 + \cs_new:Npn \exp_not:N \@@_change_case_math_space:nnNw #1#2#3 \c_space_tl } { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx index b2372d446f7..8b3ac6098c5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -168,8 +168,8 @@ } \@@_map_loop:Nnw #1 { } } -\use:x - { \cs_new:Npn \exp_not:N \@@_map_space:Nnw ##1##2 \c_space_tl } +\use:e + { \cs_new:Npn \exp_not:N \@@_map_space:Nnw #1#2 \c_space_tl } { \@@_map_output:Nn #1 {#2} #1 { ~ } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index 35d180d0421..075b3707379 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -349,7 +349,7 @@ % \begin{macro} % { % \text_declare_purify_equivalent:Nn, -% \text_declare_purify_equivalent:Nx +% \text_declare_purify_equivalent:Ne % } % \begin{macrocode} \cs_new_protected:Npn \text_declare_purify_equivalent:Nn #1#2 @@ -357,7 +357,7 @@ \tl_clear_new:c { l_@@_purify_ \token_to_str:N #1 _tl } \tl_set:cn { l_@@_purify_ \token_to_str:N #1 _tl } {#2} } -\cs_generate_variant:Nn \text_declare_purify_equivalent:Nn { Nx } +\cs_generate_variant:Nn \text_declare_purify_equivalent:Nn { Ne } % \end{macrocode} % \end{macro} % @@ -436,7 +436,7 @@ \text_declare_purify_equivalent:Nn \\ { } \tl_map_inline:nn { \{ \} \# \$ \% \_ } - { \text_declare_purify_equivalent:Nx #1 { \cs_to_str:N #1 } } + { \text_declare_purify_equivalent:Ne #1 { \cs_to_str:N #1 } } % \end{macrocode} % Cross-referencing. % \begin{macrocode} @@ -449,7 +449,7 @@ \use:n { \group_end: - \text_declare_purify_equivalent:Nx ~ { \c_space_tl } + \text_declare_purify_equivalent:Ne ~ { \c_space_tl } } \text_declare_purify_equivalent:Nn \nobreakspace { ~ } \text_declare_purify_equivalent:Nn \ { ~ } @@ -471,7 +471,7 @@ \cs_set_protected:Npn \@@_loop:Nn #1#2 { \quark_if_recursion_tail_stop:N #1 - \text_declare_purify_equivalent:Nx #1 + \text_declare_purify_equivalent:Ne #1 { \codepoint_generate:nn {"#2} { \char_value_catcode:n {"#2} } @@ -535,7 +535,7 @@ \cs_set_protected:Npn \@@_loop:Nn #1#2 { \quark_if_recursion_tail_stop:N #1 - \tl_const:cx { c_@@_purify_ \token_to_str:N #1 _tl } + \tl_const:ce { c_@@_purify_ \token_to_str:N #1 _tl } { \codepoint_generate:nn {"#2} { \char_value_catcode:n { "#2 } } } \@@_loop:Nn } @@ -569,7 +569,7 @@ \cs_set_protected:Npn \@@_loop:NNn #1#2#3 { \quark_if_recursion_tail_stop:N #1 - \tl_const:cx + \tl_const:ce { c_@@_purify_ \token_to_str:N #1 _ \token_to_str:N #2 _tl } { \codepoint_generate:nn {"#3} { \char_value_catcode:n { "#3 } } } \@@_loop:NNn diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index 016c5579a19..8df534cc84a 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -268,7 +268,7 @@ % \begin{function}[added = 2020-03-05] % { % \text_declare_purify_equivalent:Nn , -% \text_declare_purify_equivalent:Nx +% \text_declare_purify_equivalent:Ne % } % \begin{syntax} % \cs{text_declare_purify_equivalent:Nn} \meta{cmd} \Arg{replacement} @@ -673,7 +673,7 @@ \cs_new:Npn \@@_codepoint_process:nN #1#2 { #1 {#2} } } { - \cs_new:Npx \@@_codepoint_process:nN #1#2 + \cs_new:Npe \@@_codepoint_process:nN #1#2 { \exp_not:N \int_compare:nNnTF {`#2} > { "80 } { @@ -742,7 +742,7 @@ #2 {#3} \prg_return_true: \prg_return_false: } - \cs_new:Npx \@@_codepoint_from_chars:Nw #1 + \cs_new:Npe \@@_codepoint_from_chars:Nw #1 { \exp_not:N \if_int_compare:w `#1 > "80 \exp_not:N \exp_stop_f: \sys_if_engine_pdftex:TF @@ -817,7 +817,7 @@ % applied to \cs{cite}. % \begin{macrocode} \tl_new:N \l_text_case_exclude_arg_tl -\tl_set:Nx \l_text_case_exclude_arg_tl +\tl_set:Ne \l_text_case_exclude_arg_tl { \exp_not:n { \begin \cite \end \label \ref } \exp_not:c { cite ~ } @@ -1230,7 +1230,7 @@ % token. There is also the case of a straight \tn{@protected@testopt} to % cover. % \begin{macrocode} -\cs_new:Npx \@@_expand_cs:N #1 +\cs_new:Npe \@@_expand_cs:N #1 { \exp_not:N \str_if_eq:nnTF {#1} { \exp_not:N \protect } { \exp_not:N \@@_expand_protect:w } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index 385b3db8ac6..9cadf04e878 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -233,7 +233,7 @@ % \begin{macrocode} \group_begin: \char_set_active_eq:NN \ \scan_stop: -\tl_const:Nx \c_@@_peek_catcodes_tl +\tl_const:Ne \c_@@_peek_catcodes_tl { \char_generate:nn { 32 } { 3 } 3 \char_generate:nn { 32 } { 4 } 4 @@ -773,7 +773,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_analysis_b:n #1 { - \__kernel_tl_gset:Nx \g_@@_analysis_result_tl + \__kernel_tl_gset:Ne \g_@@_analysis_result_tl { \@@_analysis_b_loop:w 0; #1 \prg_break_point: @@ -837,7 +837,7 @@ % in the input stream, and call \cs{@@_analysis_b_normals:ww} % with its first argument decremented. % \begin{macrocode} -\cs_new:Npx \@@_analysis_b_char:Nn #1#2 +\cs_new:Npe \@@_analysis_b_char:Nn #1#2 { \exp_not:N \if_meaning:w #2 \exp_not:N \tex_undefined:D \token_to_str:N D \exp_not:N \else: @@ -1004,9 +1004,9 @@ % as \cs{tl_show:N} by simply calling that function. % \begin{macrocode} \cs_new_protected:Npn \tl_analysis_show:N - { \@@_analysis_show:NNN \msg_show:nnxxxx \tl_show:N } + { \@@_analysis_show:NNN \msg_show:nneeee \tl_show:N } \cs_new_protected:Npn \tl_analysis_log:N - { \@@_analysis_show:NNN \msg_log:nnxxxx \tl_log:N } + { \@@_analysis_show:NNN \msg_log:nneeee \tl_log:N } \cs_new_protected:Npn \@@_analysis_show:NNN #1#2#3 { \tl_if_exist:NTF #3 @@ -1024,9 +1024,9 @@ % No existence test needed here. % \begin{macrocode} \cs_new_protected:Npn \tl_analysis_show:n - { \@@_analysis_show:Nn \msg_show:nnxxxx } + { \@@_analysis_show:Nn \msg_show:nneeee } \cs_new_protected:Npn \tl_analysis_log:n - { \@@_analysis_show:Nn \msg_log:nnxxxx } + { \@@_analysis_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \@@_analysis_show:Nn #1#2 { \@@_analysis:n {#2} @@ -1234,7 +1234,7 @@ \cs_new_protected:Npn \@@_peek_analysis_loop:NNn #1#2#3 { \group_begin: - \tl_set:Nx \l_@@_peek_code_tl + \tl_set:Ne \l_@@_peek_code_tl { \exp_not:c { @@_analysis_map_ \int_use:N \g__kernel_prg_map_int :nnN } @@ -1266,8 +1266,8 @@ % \tn{outer} macros, hence the need for \cs{exp_after:wN} and % \cs{exp_not:N} in the code above, which allows the next function to % safely grab the token as an argument. We run some code that is -% expanded using the primitive \cs{cs_set_nopar:Npx} rather than -% \cs{tl_set:Nx} to avoid grabbing it as an argument as |#1| may be +% expanded using the primitive \cs{cs_set_nopar:Npe} rather than +% \cs{tl_set:Ne} to avoid grabbing it as an argument as |#1| may be % \tn{outer}. To allow~|#1| as an argument of the user's function % (stored in \cs{l_@@_peek_code_tl}), we set it equal to % \cs{scan_stop:}, but we do it at the last minute because |#1| @@ -1293,7 +1293,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_peek_analysis_exp:N #1 { - \cs_set_nopar:Npx \l_@@_peek_code_tl + \cs_set_nopar:Npe \l_@@_peek_code_tl { \tex_let:D \exp_not:N #1 \scan_stop: \exp_not:o \l_@@_peek_code_tl @@ -1315,7 +1315,7 @@ } \l_@@_peek_code_tl } -\cs_new:Npx \@@_peek_analysis_exp_active:N #1 +\cs_new:Npe \@@_peek_analysis_exp_active:N #1 { { \exp_not:N \int_value:w `#1 } \token_to_str:N D } % \end{macrocode} % For normal non-expandable tokens we must distinguish characters @@ -1366,7 +1366,7 @@ % \begin{macrocode} \group_begin: \char_set_active_eq:NN \ \scan_stop: -\cs_new_protected:Npx \@@_peek_analysis_char:N #1 +\cs_new_protected:Npe \@@_peek_analysis_char:N #1 { \cs_set_eq:NN \char_generate:nn { 32 } { 13 } @@ -1374,7 +1374,7 @@ \tex_lccode:D `#1 = 32 \exp_stop_f: \tex_lowercase:D { - \tl_put_right:Nx \exp_not:N \l_@@_peek_code_tl + \tl_put_right:Ne \exp_not:N \l_@@_peek_code_tl { \exp_not:n { \@@_analysis_b_char:Nn \use_none:n } {#1} } } \exp_not:n @@ -1501,7 +1501,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_peek_analysis_active_str:n #1 { - \tl_put_right:Nx \l_@@_peek_code_tl + \tl_put_right:Ne \l_@@_peek_code_tl { { \char_generate:nn { `#1 } { 13 } } { \int_value:w `#1 } @@ -1521,7 +1521,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_peek_analysis_explicit:n #1 { - \tl_put_right:Nx \l_@@_peek_code_tl + \tl_put_right:Ne \l_@@_peek_code_tl { \if_meaning:w \l_peek_token \c_space_token { ~ } { 32 } \token_to_str:N A @@ -1601,7 +1601,7 @@ \cs_new_protected:Npn \@@_peek_analysis_collect_end:NNN #1#2#3 { #1 #2 - \tl_put_right:Nx \l_@@_peek_code_tl + \tl_put_right:Ne \l_@@_peek_code_tl { { \exp_not:N \exp_not:n { \exp_not:c { \l_@@_internal_a_tl } } } { -1 } @@ -1619,7 +1619,7 @@ % and its meaning are too long to fit in one line % of the terminal, the end is replaced by this token list. % \begin{macrocode} -\tl_const:Nx \c_@@_analysis_show_etc_str % ( +\tl_const:Ne \c_@@_analysis_show_etc_str % ( { \token_to_str:N \ETC.) } % \end{macrocode} % \end{variable} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index 06226fd7bad..e606c3c5587 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -97,7 +97,11 @@ % \meta{tl~var} is initially empty. % \end{function} % -% \begin{function}{\tl_const:Nn, \tl_const:Nx, \tl_const:cn, \tl_const:cx} +% \begin{function} +% { +% \tl_const:Nn, \tl_const:Ne, +% \tl_const:cn, \tl_const:ce +% } % \begin{syntax} % \cs{tl_const:Nn} \meta{tl~var} \Arg{token list} % \end{syntax} @@ -161,12 +165,12 @@ % % \begin{function} % { -% \tl_set:Nn, \tl_set:NV, \tl_set:Nv, \tl_set:No, \tl_set:Ne, \tl_set:Nf, \tl_set:Nx, -% \tl_set:cn, \tl_set:cV, \tl_set:cv, \tl_set:co, \tl_set:ce, \tl_set:cf, \tl_set:cx, +% \tl_set:Nn, \tl_set:NV, \tl_set:Nv, \tl_set:No, \tl_set:Ne, \tl_set:Nf, +% \tl_set:cn, \tl_set:cV, \tl_set:cv, \tl_set:co, \tl_set:ce, \tl_set:cf, % \tl_gset:Nn, \tl_gset:NV, \tl_gset:Nv, -% \tl_gset:No, \tl_gset:Ne, \tl_gset:Nf, \tl_gset:Nx, +% \tl_gset:No, \tl_gset:Ne, \tl_gset:Nf, % \tl_gset:cn, \tl_gset:cV, \tl_gset:cv, -% \tl_gset:co, \tl_gset:ce, \tl_gset:cf, \tl_gset:cx +% \tl_gset:co, \tl_gset:ce, \tl_gset:cf % } % \begin{syntax} % \cs{tl_set:Nn} \meta{tl~var} \Arg{tokens} @@ -177,10 +181,14 @@ % % \begin{function} % { -% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:Nv, \tl_put_left:No, \tl_put_left:Nx, -% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:cv, \tl_put_left:co, \tl_put_left:cx, -% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:Nv, \tl_gput_left:No, \tl_gput_left:Nx, -% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:co, \tl_gput_left:cx +% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:Nv, \tl_put_left:Ne, +% \tl_put_left:No, +% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:cv, \tl_put_left:ce, +% \tl_put_left:co, +% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:Nv, \tl_gput_left:Ne, +% \tl_gput_left:No, +% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:ce +% \tl_gput_left:co % } % \begin{syntax} % \cs{tl_put_left:Nn} \meta{tl~var} \Arg{tokens} @@ -191,10 +199,14 @@ % % \begin{function} % { -% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:Nv, \tl_put_right:No, \tl_put_right:Nx, -% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:cv, \tl_put_right:co, \tl_put_right:cx, -% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:Nv, \tl_gput_right:No, \tl_gput_right:Nx, -% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:co, \tl_gput_right:cx +% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:Nv, \tl_put_right:Ne, +% \tl_put_right:No, +% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:cv, \tl_put_right:ce, +% \tl_put_right:co, +% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:Nv, \tl_gput_right:Ne, +% \tl_gput_right:No, +% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:ce +% \tl_gput_right:co % } % \begin{syntax} % \cs{tl_put_right:Nn} \meta{tl~var} \Arg{tokens} @@ -249,7 +261,7 @@ % contain and the category codes of those characters). Thus for example % \begin{verbatim} % \tl_set:Nn \l_tmpa_tl { abc } -% \tl_set:Nx \l_tmpb_tl { \tl_to_str:n { abc } } +% \tl_set:Ne \l_tmpb_tl { \tl_to_str:n { abc } } % \tl_if_eq:NNTF \l_tmpa_tl \l_tmpb_tl { true } { false } % \end{verbatim} % yields \texttt{false}. @@ -269,7 +281,10 @@ % \end{function} % % \begin{function}[TF] -% {\tl_if_eq:nn, \tl_if_eq:Vn, \tl_if_eq:nV, \tl_if_eq:xn, \tl_if_eq:nx} +% { +% \tl_if_eq:nn, \tl_if_eq:nV, \tl_if_eq:ne, \tl_if_eq:Vn, \tl_if_eq:en, +% \tl_if_eq:ee +% } % \begin{syntax} % \cs{tl_if_eq:nnTF} \Arg{token list_1} \Arg{token list_2} \Arg{true code} \Arg{false code} % \end{syntax} @@ -594,7 +609,11 @@ % \end{function} % % \begin{function}[added = 2011-07-09, updated = 2012-06-25, EXP] -% {\tl_trim_spaces:n, \tl_trim_spaces:o} +% { +% \tl_trim_spaces:n, \tl_trim_spaces:V, \tl_trim_spaces:v, +% \tl_trim_spaces:e, +% \tl_trim_spaces:o +% } % \begin{syntax} % \cs{tl_trim_spaces:n} \Arg{token list} % \end{syntax} @@ -646,7 +665,7 @@ % \end{texnote} % \end{function} % -% \begin{function}[updated = 2015-08-07]{\tl_show:n, \tl_show:x} +% \begin{function}[updated = 2015-08-07]{\tl_show:n, \tl_show:e} % \begin{syntax} % \cs{tl_show:n} \Arg{token list} % \end{syntax} @@ -665,7 +684,8 @@ % \cs{tl_show:N} which displays the result in the terminal. % \end{function} % -% \begin{function}[added = 2014-08-22, updated = 2015-08-07]{\tl_log:n, \tl_log:x} +% \begin{function}[added = 2014-08-22, updated = 2015-08-07] +% {\tl_log:n, \tl_log:e, \tl_log:x} % \begin{syntax} % \cs{tl_log:n} \Arg{token list} % \end{syntax} @@ -997,17 +1017,17 @@ % \end{verbatim} % Here are some more interesting examples. The calls % \begin{verbatim} -% \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { 2 } { 5 } } -% \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { 2 } { -3 } } -% \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { -6 } { 5 } } -% \iow_term:x { \tl_range:nnn { abcd{e{}}fg } { -6 } { -3 } } +% \iow_term:e { \tl_range:nnn { abcd{e{}}fg } { 2 } { 5 } } +% \iow_term:e { \tl_range:nnn { abcd{e{}}fg } { 2 } { -3 } } +% \iow_term:e { \tl_range:nnn { abcd{e{}}fg } { -6 } { 5 } } +% \iow_term:e { \tl_range:nnn { abcd{e{}}fg } { -6 } { -3 } } % \end{verbatim} % are all equivalent and will print |bcd{e{}}| on the terminal; similarly % \begin{verbatim} -% \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { 2 } { 5 } } -% \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { 2 } { -3 } } -% \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { -6 } { 5 } } -% \iow_term:x { \tl_range:nnn { abcd~{e{}}fg } { -6 } { -3 } } +% \iow_term:e { \tl_range:nnn { abcd~{e{}}fg } { 2 } { 5 } } +% \iow_term:e { \tl_range:nnn { abcd~{e{}}fg } { 2 } { -3 } } +% \iow_term:e { \tl_range:nnn { abcd~{e{}}fg } { -6 } { 5 } } +% \iow_term:e { \tl_range:nnn { abcd~{e{}}fg } { -6 } { -3 } } % \end{verbatim} % are all equivalent and will print |bcd {e{}}| on the % terminal (note the space in the middle). To the contrary, @@ -1074,13 +1094,13 @@ % \begin{function}[updated = 2011-08-11] % { % \tl_replace_once:Nnn, \tl_replace_once:NVn, \tl_replace_once:NnV, -% \tl_replace_once:Nxn, \tl_replace_once:Nnx, \tl_replace_once:Nxx, +% \tl_replace_once:Nen, \tl_replace_once:Nne, \tl_replace_once:Nee, % \tl_replace_once:cnn, \tl_replace_once:cVn, \tl_replace_once:cnV, -% \tl_replace_once:cxn, \tl_replace_once:cnx, \tl_replace_once:cxx, -% \tl_greplace_once:Nnn, \tl_greplace_once:NVn, \tl_rgeplace_once:NnV, -% \tl_greplace_once:Nxn, \tl_greplace_once:Nnx, \tl_greplace_once:Nxx, +% \tl_replace_once:cen, \tl_replace_once:cne, \tl_replace_once:cee, +% \tl_greplace_once:Nnn, \tl_greplace_once:NVn, \tl_greplace_once:NnV, +% \tl_greplace_once:Nen, \tl_greplace_once:Nne, \tl_greplace_once:Nee, % \tl_greplace_once:cnn, \tl_greplace_once:cVn, \tl_greplace_once:cnV, -% \tl_greplace_once:cxn, \tl_greplace_once:cnx, \tl_greplace_once:cxx +% \tl_greplace_once:cen, \tl_greplace_once:cne, \tl_greplace_once:cee % } % \begin{syntax} % \cs{tl_replace_once:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} @@ -1094,14 +1114,14 @@ % % \begin{function}[updated = 2011-08-11] % { -% \tl_replace_all:Nnn, \tl_replace_all:NVn, \tl_replace_all:NnV, -% \tl_replace_all:Nxn, \tl_replace_all:Nnx, \tl_replace_all:Nxx, -% \tl_replace_all:cnn, \tl_replace_all:cVn, \tl_replace_all:cnV, -% \tl_replace_all:cxn, \tl_replace_all:cnx, \tl_replace_all:cxx, -% \tl_greplace_all:Nnn, \tl_greplace_all:NVn, \tl_greplace_all:cnV, -% \tl_greplace_all:Nxn, \tl_greplace_all:Nnx, \tl_greplace_all:Nxx, -% \tl_greplace_all:cnn, \tl_greplace_all:cVn, \tl_greplace_all:cnV, -% \tl_greplace_all:cxn, \tl_greplace_all:cnx, \tl_greplace_all:cxx +% \tl_replace_all:Nnn, \tl_replace_all:NVn, \tl_replace_all:NnV, +% \tl_replace_all:Nen, \tl_replace_all:Nne, \tl_replace_all:Nee, +% \tl_replace_all:cnn, \tl_replace_all:cVn, \tl_replace_all:cnV, +% \tl_replace_all:cen, \tl_replace_all:cne, \tl_replace_all:cee, +% \tl_greplace_all:Nnn, \tl_greplace_all:NVn, \tl_greplace_all:NnV, +% \tl_greplace_all:Nen, \tl_greplace_all:Nne, \tl_greplace_all:Nee, +% \tl_greplace_all:cnn, \tl_greplace_all:cVn, \tl_greplace_all:cnV, +% \tl_greplace_all:cen, \tl_greplace_all:cne, \tl_greplace_all:cee % } % \begin{syntax} % \cs{tl_replace_all:Nnn} \meta{tl~var} \Arg{old tokens} \Arg{new tokens} @@ -1119,10 +1139,10 @@ % % \begin{function}[updated = 2011-08-11] % { -% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Nx, -% \tl_remove_once:cn, \tl_remove_once:cV, \tl_remove_once:cx, -% \tl_gremove_once:Nn, \tl_gremove_once:NV, \tl_gremove_once:Nx -% \tl_gremove_once:cn, \tl_gremove_once:cV, \tl_gremove_once:cx +% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Ne, +% \tl_remove_once:cn, \tl_remove_once:cV, \tl_remove_once:ce, +% \tl_gremove_once:Nn, \tl_gremove_once:NV, \tl_gremove_once:Ne, +% \tl_gremove_once:cn, \tl_gremove_once:cV, \tl_gremove_once:ce % } % \begin{syntax} % \cs{tl_remove_once:Nn} \meta{tl~var} \Arg{tokens} @@ -1135,10 +1155,10 @@ % % \begin{function}[updated = 2011-08-11] % { -% \tl_remove_all:Nn, \tl_remove_all:NV, \tl_remove_all:Nx, -% \tl_remove_all:cn, \tl_remove_all:cV, \tl_remove_all:cx, -% \tl_gremove_all:Nn, \tl_gremove_all:NV, \tl_gremove_all:Nx -% \tl_gremove_all:cn, \tl_gremove_all:cV, \tl_gremove_all:cx +% \tl_remove_all:Nn, \tl_remove_all:NV, \tl_remove_all:Ne, +% \tl_remove_all:cn, \tl_remove_all:cV, \tl_remove_all:ce, +% \tl_gremove_all:Nn, \tl_gremove_all:NV, \tl_gremove_all:Ne, +% \tl_gremove_all:cn, \tl_gremove_all:cV, \tl_gremove_all:ce, % } % \begin{syntax} % \cs{tl_remove_all:Nn} \meta{tl~var} \Arg{tokens} @@ -1169,10 +1189,14 @@ % % \begin{function}[updated = 2015-08-11] % { -% \tl_set_rescan:Nnn, \tl_set_rescan:NnV, \tl_set_rescan:Nno, \tl_set_rescan:Nnx, -% \tl_set_rescan:cnn, \tl_set_rescan:cnV, \tl_set_rescan:cno, \tl_set_rescan:cnx, -% \tl_gset_rescan:Nnn, \tl_gset_rescan:NnV, \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, -% \tl_gset_rescan:cnn, \tl_gset_rescan:cnV, \tl_gset_rescan:cno, \tl_gset_rescan:cnx +% \tl_set_rescan:Nnn, \tl_set_rescan:NnV, \tl_set_rescan:Nne, +% \tl_set_rescan:Nno, +% \tl_set_rescan:cnn, \tl_set_rescan:cnV, \tl_set_rescan:cne, +% \tl_set_rescan:cno, +% \tl_gset_rescan:Nnn, \tl_gset_rescan:NnV, \tl_gset_rescan:Nne, +% \tl_gset_rescan:Nno, +% \tl_gset_rescan:cnn, \tl_gset_rescan:cnV, \tl_gset_rescan:cne, +% \tl_gset_rescan:cno, % } % \begin{syntax} % \cs{tl_set_rescan:Nnn} \meta{tl~var} \Arg{setup} \Arg{tokens} @@ -1300,12 +1324,12 @@ % % \subsection{Functions} % -% \begin{macro}{\__kernel_tl_set:Nx,\__kernel_tl_gset:Nx} +% \begin{macro}{\__kernel_tl_set:Ne,\__kernel_tl_gset:Ne} % These two are supplied to get better performance for macros which would -% otherwise use \cs{tl_set:Nx} or \cs{tl_gset:Nx} internally. +% otherwise use \cs{tl_set:Ne} or \cs{tl_gset:Ne} internally. % \begin{macrocode} -\cs_new_eq:NN \__kernel_tl_set:Nx \cs_set_nopar:Npx -\cs_new_eq:NN \__kernel_tl_gset:Nx \cs_gset_nopar:Npx +\cs_new_eq:NN \__kernel_tl_set:Ne \cs_set_nopar:Npe +\cs_new_eq:NN \__kernel_tl_gset:Ne \cs_gset_nopar:Npe % \end{macrocode} % \end{macro} % @@ -1322,23 +1346,22 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\tl_const:Nn, \tl_const:Nx, \tl_const:cn, \tl_const:cx} -% Constants are also easy to generate. They use \cs{cs_gset_nopar:Npx} instead -% of \cs{__kernel_tl_gset:Nx} so that the correct scope checking is applied if +% \begin{macro} +% { +% \tl_const:Nn, \tl_const:Ne, \tl_const:Nx, +% \tl_const:cn, \tl_const:ce, \tl_const:cx +% } +% Constants are also easy to generate. They use \cs{cs_gset_nopar:Npe} instead +% of \cs{__kernel_tl_gset:Ne} so that the correct scope checking is applied if % \pkg{l3debug} is used. % \begin{macrocode} \cs_new_protected:Npn \tl_const:Nn #1#2 { \__kernel_chk_if_free_cs:N #1 - \cs_gset_nopar:Npx #1 { \__kernel_exp_not:w {#2} } - } -\cs_new_protected:Npn \tl_const:Nx #1#2 - { - \__kernel_chk_if_free_cs:N #1 - \cs_gset_nopar:Npx #1 {#2} + \cs_gset_nopar:Npe #1 { \__kernel_exp_not:w {#2} } } -\cs_generate_variant:Nn \tl_const:Nn { c } -\cs_generate_variant:Nn \tl_const:Nx { c } +\cs_generate_variant:Nn \tl_const:Nn { Ne , c , ce } +\cs_generate_variant:Nn \tl_const:Nn { Nx , cx } % \end{macrocode} % \end{macro} % @@ -1396,7 +1419,7 @@ % \begin{macrocode} \cs_new_protected:Npn \tl_concat:NNN #1#2#3 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#3} @@ -1404,7 +1427,7 @@ } \cs_new_protected:Npn \tl_gconcat:NNN #1#2#3 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#3} @@ -1439,7 +1462,7 @@ % \begin{macrocode} \group_begin: \tex_catcode:D `- = 11 ~ -\tl_const:Nx \c_novalue_tl { - NoValue \token_to_str:N - } +\tl_const:Ne \c_novalue_tl { - NoValue \token_to_str:N - } \group_end: % \end{macrocode} % \end{variable} @@ -1471,173 +1494,203 @@ % by hand as it is used quite a lot. % \begin{macrocode} \cs_new_protected:Npn \tl_set:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w {#2} } } + { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w {#2} } } \cs_new_protected:Npn \tl_set:No #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_set:Nx #1#2 - { \__kernel_tl_set:Nx #1 {#2} } + { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } \cs_new_protected:Npn \tl_gset:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w {#2} } } + { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w {#2} } } \cs_new_protected:Npn \tl_gset:No #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_gset:Nx #1#2 - { \__kernel_tl_gset:Nx #1 {#2} } + { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } \cs_generate_variant:Nn \tl_set:Nn { NV , Nv , Ne , Nf } \cs_generate_variant:Nn \tl_set:Nn { c, cV , cv , ce , cf } -\cs_generate_variant:Nn \tl_set:Nx { c } \cs_generate_variant:Nn \tl_set:No { c } +\cs_generate_variant:Nn \tl_set:Nn { Nx , cx } \cs_generate_variant:Nn \tl_gset:Nn { NV , Nv , Ne , Nf } \cs_generate_variant:Nn \tl_gset:Nn { c, cV , cv , ce , cf } -\cs_generate_variant:Nn \tl_gset:Nx { c } \cs_generate_variant:Nn \tl_gset:No { c } +\cs_generate_variant:Nn \tl_gset:Nn { Nx , cx } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro} % { -% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:Nv, \tl_put_left:No, \tl_put_left:Nx, -% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:cv, \tl_put_left:co, \tl_put_left:cx +% \tl_put_left:Nn, \tl_put_left:NV, \tl_put_left:Nv, \tl_put_left:Ne, +% \tl_put_left:No, \tl_put_left:Nx, +% \tl_put_left:cn, \tl_put_left:cV, \tl_put_left:cv, \tl_put_left:ce, +% \tl_put_left:co, \tl_put_left:cx % } % \begin{macro} % { -% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:Nv, \tl_gput_left:No, \tl_gput_left:Nx, -% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:co, \tl_gput_left:cx +% \tl_gput_left:Nn, \tl_gput_left:NV, \tl_gput_left:Nv, \tl_gput_left:Ne, +% \tl_gput_left:No, \tl_gput_left:Nx, +% \tl_gput_left:cn, \tl_gput_left:cV, \tl_gput_left:cv, \tl_gput_left:ce, +% \tl_gput_left:co, \tl_gput_left:cx % } % Adding to the left is done directly to gain a little performance. % \begin{macrocode} \cs_new_protected:Npn \tl_put_left:Nn #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_put_left:NV #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_put_left:Nv #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } +\cs_new_protected:Npn \tl_put_left:Ne #1#2 + { + \__kernel_tl_set:Ne #1 + { + \__kernel_exp_not:w \tex_expanded:D { {#2} } + \__kernel_exp_not:w \exp_after:wN {#1} + } + } \cs_new_protected:Npn \tl_put_left:No #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } -\cs_new_protected:Npn \tl_put_left:Nx #1#2 - { \__kernel_tl_set:Nx #1 { #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:Nn #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:NV #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:Nv #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } +\cs_new_protected:Npn \tl_gput_left:Ne #1#2 + { + \__kernel_tl_gset:Ne #1 + { + \__kernel_exp_not:w \tex_expanded:D { {#2} } + \__kernel_exp_not:w \exp_after:wN {#1} + } + } \cs_new_protected:Npn \tl_gput_left:No #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } -\cs_new_protected:Npn \tl_gput_left:Nx #1#2 - { \__kernel_tl_gset:Nx #1 { #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_generate_variant:Nn \tl_put_left:Nn { c } \cs_generate_variant:Nn \tl_put_left:NV { c } \cs_generate_variant:Nn \tl_put_left:Nv { c } +\cs_generate_variant:Nn \tl_put_left:Ne { c } \cs_generate_variant:Nn \tl_put_left:No { c } -\cs_generate_variant:Nn \tl_put_left:Nx { c } +\cs_generate_variant:Nn \tl_put_left:Nn { Nx, cx } \cs_generate_variant:Nn \tl_gput_left:Nn { c } \cs_generate_variant:Nn \tl_gput_left:NV { c } -\cs_generate_variant:Nn \tl_gput_left:NV { c } +\cs_generate_variant:Nn \tl_gput_left:Nv { c } +\cs_generate_variant:Nn \tl_gput_left:Ne { c } \cs_generate_variant:Nn \tl_gput_left:No { c } -\cs_generate_variant:Nn \tl_gput_left:Nx { c } +\cs_generate_variant:Nn \tl_gput_left:Nn { Nx , cx } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro} % { -% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:Nv, \tl_put_right:No, \tl_put_right:Nx, -% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:cv, \tl_put_right:co, \tl_put_right:cx +% \tl_put_right:Nn, \tl_put_right:NV, \tl_put_right:Nv, \tl_put_right:Ne, +% \tl_put_right:No, \tl_put_right:Nx, +% \tl_put_right:cn, \tl_put_right:cV, \tl_put_right:cv, \tl_put_right:ce, +% \tl_put_right:co, \tl_put_right:cx % } % \begin{macro} % { -% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:Nv, \tl_gput_right:No, -% \tl_gput_right:Nx, -% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:co, -% \tl_gput_right:cx +% \tl_gput_right:Nn, \tl_gput_right:NV, \tl_gput_right:Nv, \tl_gput_right:Ne, +% \tl_gput_right:No, \tl_gput_right:Nx, +% \tl_gput_right:cn, \tl_gput_right:cV, \tl_gput_right:cv, \tl_gput_right:ce, +% \tl_gput_right:co, \tl_gput_right:cx % } % The same on the right. % \begin{macrocode} \cs_new_protected:Npn \tl_put_right:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } + { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } \cs_new_protected:Npn \tl_put_right:NV #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } \cs_new_protected:Npn \tl_put_right:Nv #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } } +\cs_new_protected:Npn \tl_put_right:Ne #1#2 + { + \__kernel_tl_set:Ne #1 + { + \__kernel_exp_not:w \exp_after:wN {#1} + \__kernel_exp_not:w \tex_expanded:D { {#2} } + } + } \cs_new_protected:Npn \tl_put_right:No #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_put_right:Nx #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} #2 } } \cs_new_protected:Npn \tl_gput_right:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } + { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } \cs_new_protected:Npn \tl_gput_right:NV #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } \cs_new_protected:Npn \tl_gput_right:Nv #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } } +\cs_new_protected:Npn \tl_gput_right:Ne #1#2 + { + \__kernel_tl_gset:Ne #1 + { + \__kernel_exp_not:w \exp_after:wN {#1} + \__kernel_exp_not:w \tex_expanded:D { {#2} } + } + } \cs_new_protected:Npn \tl_gput_right:No #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_gput_right:Nx #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} #2 } } \cs_generate_variant:Nn \tl_put_right:Nn { c } \cs_generate_variant:Nn \tl_put_right:NV { c } \cs_generate_variant:Nn \tl_put_right:Nv { c } +\cs_generate_variant:Nn \tl_put_right:Ne { c } \cs_generate_variant:Nn \tl_put_right:No { c } -\cs_generate_variant:Nn \tl_put_right:Nx { c } +\cs_generate_variant:Nn \tl_put_right:Nn { Nx , cx } \cs_generate_variant:Nn \tl_gput_right:Nn { c } \cs_generate_variant:Nn \tl_gput_right:NV { c } \cs_generate_variant:Nn \tl_gput_right:Nv { c } +\cs_generate_variant:Nn \tl_gput_right:Ne { c } \cs_generate_variant:Nn \tl_gput_right:No { c } -\cs_generate_variant:Nn \tl_gput_right:Nx { c } +\cs_generate_variant:Nn \tl_gput_right:Nn { Nx, cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1679,19 +1732,23 @@ % codes: it cannot appear in the tokens being rescanned since all % colons have the same category code. % \begin{macrocode} -\tl_const:Nx \c_@@_rescan_marker_tl { : \token_to_str:N : } +\tl_const:Ne \c_@@_rescan_marker_tl { : \token_to_str:N : } % \end{macrocode} % \end{variable} % % \begin{macro} % { -% \tl_set_rescan:Nnn, \tl_set_rescan:NnV, \tl_set_rescan:Nno, \tl_set_rescan:Nnx, -% \tl_set_rescan:cnn, \tl_set_rescan:cnV, \tl_set_rescan:cno, \tl_set_rescan:cnx +% \tl_set_rescan:Nnn, \tl_set_rescan:NnV, \tl_set_rescan:Nne, +% \tl_set_rescan:Nno, \tl_set_rescan:Nnx, +% \tl_set_rescan:cnn, \tl_set_rescan:cnV, \tl_set_rescan:cne, +% \tl_set_rescan:cno, \tl_set_rescan:cnx, % } % \begin{macro} % { -% \tl_gset_rescan:Nnn, \tl_gset_rescan:NnV, \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, -% \tl_gset_rescan:cnn, \tl_gset_rescan:cnV, \tl_gset_rescan:cno, \tl_gset_rescan:cnx +% \tl_gset_rescan:Nnn, \tl_gset_rescan:NnV, \tl_gset_rescan:Nne, +% \tl_gset_rescan:Nno, \tl_gset_rescan:Nnx, +% \tl_gset_rescan:cnn, \tl_gset_rescan:cnV, \tl_gset_rescan:cne, +% \tl_gset_rescan:cno, \tl_gset_rescan:cnx % } % \begin{macro}{\tl_rescan:nn, \tl_rescan:nV} % \begin{macro}{\@@_rescan_aux:} @@ -1790,10 +1847,10 @@ \group_end: #1 #2 {#3} } -\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV , Nno , Nnx } -\cs_generate_variant:Nn \tl_set_rescan:Nnn { c , cnV , cno , cnx } -\cs_generate_variant:Nn \tl_gset_rescan:Nnn { NnV , Nno , Nnx } -\cs_generate_variant:Nn \tl_gset_rescan:Nnn { c , cnV , cno , cnx } +\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV , Nne , c , cnV , cne } +\cs_generate_variant:Nn \tl_set_rescan:Nnn { Nno , Nnx , cno , cnx } +\cs_generate_variant:Nn \tl_gset_rescan:Nnn { NnV , Nne , c , cnV , cne } +\cs_generate_variant:Nn \tl_gset_rescan:Nnn { Nno , Nnx , cno , cnx } % \end{macrocode} % \end{macro} % \end{macro} @@ -1913,59 +1970,75 @@ % % \begin{macro} % { -% \tl_replace_all:Nnn, \tl_replace_all:NVn, \tl_replace_all:NnV, -% \tl_replace_all:Nxn, \tl_replace_all:Nnx, \tl_replace_all:Nxx, -% \tl_replace_all:cnn, \tl_replace_all:cVn, \tl_replace_all:cnV, -% \tl_replace_all:cxn, \tl_replace_all:cnx, \tl_replace_all:cxx +% \tl_replace_once:Nnn, \tl_replace_once:NVn, \tl_replace_once:NnV, +% \tl_replace_once:Nen, \tl_replace_once:Nne, \tl_replace_once:Nee, +% \tl_replace_once:Nxn, \tl_replace_once:Nnx, \tl_replace_once:Nxx, +% \tl_replace_once:cnn, \tl_replace_once:cVn, \tl_replace_once:cnV, +% \tl_replace_once:cen, \tl_replace_once:cne, \tl_replace_once:cee, +% \tl_replace_once:cxn, \tl_replace_once:cnx, \tl_replace_once:cxx % } % \begin{macro} % { -% \tl_greplace_all:Nnn, \tl_greplace_all:NVn, \tl_greplace_all:NnV, -% \tl_greplace_all:Nxn, \tl_greplace_all:Nnx, \tl_greplace_all:Nxx, -% \tl_greplace_all:cnn, \tl_greplace_all:cVn, \tl_greplace_all:cnV, -% \tl_greplace_all:cxn, \tl_greplace_all:cnx, \tl_greplace_all:cxx +% \tl_greplace_once:Nnn, \tl_greplace_once:NVn, \tl_greplace_once:NnV, +% \tl_greplace_once:Nen, \tl_greplace_once:Nne, \tl_greplace_once:Nee, +% \tl_greplace_once:Nxn, \tl_greplace_once:Nnx, \tl_greplace_once:Nxx, +% \tl_greplace_once:cnn, \tl_greplace_once:cVn, \tl_greplace_once:cnV, +% \tl_greplace_once:cen, \tl_greplace_once:cne, \tl_greplace_once:cee, +% \tl_greplace_once:cxn, \tl_greplace_once:cnx, \tl_greplace_once:cxx % } % \begin{macro} % { -% \tl_replace_once:Nnn, \tl_replace_once:NVn, \tl_replace_once:NnV, -% \tl_replace_once:Nxn, \tl_replace_once:Nnx, \tl_replace_once:Nxx, -% \tl_replace_once:cnn, \tl_replace_once:cVn, \tl_replace_once:cnV, -% \tl_replace_once:cxn, \tl_replace_once:cnx, \tl_replace_once:cxx +% \tl_replace_all:Nnn, \tl_replace_all:NVn, \tl_replace_all:NnV, +% \tl_replace_all:Nen, \tl_replace_all:Nne, \tl_replace_all:Nee, +% \tl_replace_all:Nxn, \tl_replace_all:Nnx, \tl_replace_all:Nxx, +% \tl_replace_all:cnn, \tl_replace_all:cVn, \tl_replace_all:cnV, +% \tl_replace_all:cen, \tl_replace_all:cne, \tl_replace_all:cee, +% \tl_replace_all:cxn, \tl_replace_all:cnx, \tl_replace_all:cxx % } % \begin{macro} % { -% \tl_greplace_once:Nnn, \tl_greplace_once:NVn, \tl_replace_once:NnV, -% \tl_greplace_once:Nxn, \tl_greplace_once:Nnx, \tl_greplace_once:Nxx, -% \tl_greplace_once:cnn, \tl_greplace_once:cVn, \tl_replace_once:cnV, -% \tl_greplace_once:cxn, \tl_greplace_once:cnx, \tl_greplace_once:cxx +% \tl_greplace_all:Nnn, \tl_greplace_all:NVn, \tl_greplace_all:NnV, +% \tl_greplace_all:Nen, \tl_greplace_all:Nne, \tl_greplace_all:Nee, +% \tl_greplace_all:Nxn, \tl_greplace_all:Nnx, \tl_greplace_all:Nxx, +% \tl_greplace_all:cnn, \tl_greplace_all:cVn, \tl_greplace_all:cnV, +% \tl_greplace_all:cen, \tl_greplace_all:cne, \tl_greplace_all:cee, +% \tl_greplace_all:cxn, \tl_greplace_all:cnx, \tl_greplace_all:cxx % } % All of the \texttt{replace} functions call \cs{@@_replace:NnNNNnn} % with appropriate arguments. The first two arguments are explained % later. The next controls whether the replacement function calls % itself (\cs{@@_replace_next:w}) or stops (\cs{@@_replace_wrap:w}) -% after the first replacement. Next comes an \texttt{x}-type -% assignment function \cs{tl_set:Nx} or \cs{tl_gset:Nx} for local or +% after the first replacement. Next comes an \texttt{e}-type +% assignment function \cs{tl_set:Ne} or \cs{tl_gset:Ne} for local or % global replacements. Finally, the three arguments \meta{tl~var} % \Arg{pattern} \Arg{replacement} provided by the user. When % describing the auxiliary functions below, we denote the contents of % the \meta{tl~var} by \meta{token list}. % \begin{macrocode} \cs_new_protected:Npn \tl_replace_once:Nnn - { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_wrap:w \__kernel_tl_set:Nx } + { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_wrap:w \__kernel_tl_set:Ne } \cs_new_protected:Npn \tl_greplace_once:Nnn - { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_wrap:w \__kernel_tl_gset:Nx } + { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_wrap:w \__kernel_tl_gset:Ne } \cs_new_protected:Npn \tl_replace_all:Nnn - { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_next:w \__kernel_tl_set:Nx } + { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_next:w \__kernel_tl_set:Ne } \cs_new_protected:Npn \tl_greplace_all:Nnn - { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_next:w \__kernel_tl_gset:Nx } + { \@@_replace:NnNNNnn \q_@@_mark ? \@@_replace_next:w \__kernel_tl_gset:Ne } +\cs_generate_variant:Nn \tl_replace_once:Nnn + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } \cs_generate_variant:Nn \tl_replace_once:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { Nx , Nnx , Nxx , cxn , cnx , cxx } \cs_generate_variant:Nn \tl_greplace_once:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } +\cs_generate_variant:Nn \tl_greplace_once:Nnn + { Nx , Nnx , Nxx , cxn , cnx , cxx } +\cs_generate_variant:Nn \tl_replace_all:Nnn + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } \cs_generate_variant:Nn \tl_replace_all:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { Nx , Nnx , Nxx , cxn , cnx , cxx } \cs_generate_variant:Nn \tl_greplace_all:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } +\cs_generate_variant:Nn \tl_greplace_all:Nnn + { Nx , Nnx , Nxx , cxn , cnx , cxx } % \end{macrocode} % \end{macro} % \end{macro} @@ -2046,7 +2119,7 @@ { \tl_if_empty:nTF {#6} { - \msg_error:nnx { kernel } { empty-search-pattern } + \msg_error:nne { kernel } { empty-search-pattern } { \tl_to_str:n {#7} } } { @@ -2124,7 +2197,7 @@ \group_align_safe_begin: \cs_set:Npn \@@_replace_wrap:w ##1 #1 ##2 { \__kernel_exp_not:w \exp_after:wN { \use_none:nn ##1 } ##2 } - \cs_set:Npx \@@_replace_next:w ##1 #5 + \cs_set:Npe \@@_replace_next:w ##1 #5 { \exp_not:N \@@_replace_wrap:w ##1 \exp_not:n { #1 } @@ -2152,13 +2225,13 @@ % % \begin{macro} % { -% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Nx, -% \tl_remove_once:cn, \tl_remove_once:cV, \tl_remove_once:cx +% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Ne, +% \tl_remove_once:cn, \tl_remove_once:cV, \tl_remove_once:ce % } % \begin{macro} % { -% \tl_gremove_once:Nn, \tl_gremove_once:NV, \tl_gremove_once:Nx, -% \tl_gremove_once:cn, \tl_gremove_once:cV, \tl_gremove_once:cx +% \tl_gremove_once:Nn, \tl_gremove_once:NV, +% \tl_gremove_once:cn, \tl_gremove_once:cV, % } % Removal is just a special case of replacement. % \begin{macrocode} @@ -2166,21 +2239,25 @@ { \tl_replace_once:Nnn #1 {#2} { } } \cs_new_protected:Npn \tl_gremove_once:Nn #1#2 { \tl_greplace_once:Nnn #1 {#2} { } } -\cs_generate_variant:Nn \tl_remove_once:Nn { NV , Nx , c , cV , cx } -\cs_generate_variant:Nn \tl_gremove_once:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \tl_remove_once:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \tl_gremove_once:Nn { NV , Ne , c , cV , ce } % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro} % { -% \tl_remove_all:Nn, \tl_remove_all:NV, \tl_remove_all:Nx, -% \tl_remove_all:cn, \tl_remove_all:cV, \tl_remove_all:cx +% \tl_remove_all:Nn, \tl_remove_all:NV, \tl_remove_all:Ne, +% \tl_remove_all:Nx, +% \tl_remove_all:cn, \tl_remove_all:cV, \tl_remove_all:ce, +% \tl_remove_all:cx, % } % \begin{macro} % { -% \tl_gremove_all:Nn, \tl_gremove_all:NV, \tl_gremove_all:Nx, -% \tl_gremove_all:cn, \tl_gremove_all:cV, \tl_gremove_all:cx +% \tl_gremove_all:Nn, \tl_gremove_all:NV, \tl_gremove_all:Ne, +% \tl_gremove_all:Nx, +% \tl_gremove_all:cn, \tl_gremove_all:cV, \tl_gremove_all:ce, +% \tl_gremove_all:cx, % } % Removal is just a special case of replacement. % \begin{macrocode} @@ -2188,8 +2265,10 @@ { \tl_replace_all:Nnn #1 {#2} { } } \cs_new_protected:Npn \tl_gremove_all:Nn #1#2 { \tl_greplace_all:Nnn #1 {#2} { } } -\cs_generate_variant:Nn \tl_remove_all:Nn { NV , Nx , c , cV , cx } -\cs_generate_variant:Nn \tl_gremove_all:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \tl_remove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \tl_remove_all:Nn { Nx , cx } +\cs_generate_variant:Nn \tl_gremove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \tl_gremove_all:Nn { Nx , cx } % \end{macrocode} % \end{macro} % \end{macro} @@ -2328,7 +2407,12 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[TF]{\tl_if_eq:nn, \tl_if_eq:Vn, \tl_if_eq:nV, \tl_if_eq:xn, \tl_if_eq:nx} +% \begin{macro}[TF] +% { +% \tl_if_eq:nn, \tl_if_eq:nV, \tl_if_eq:ne, \tl_if_eq:Vn, \tl_if_eq:en, +% \tl_if_eq:ee, +% \tl_if_eq:xn, \tl_if_eq:nx, \tl_if_eq:xx, +% } % A simple store and compare routine. % \begin{macrocode} \prg_new_protected_conditional:Npnn \tl_if_eq:nn #1#2 { T , F , TF } @@ -2344,7 +2428,9 @@ \prg_return_false: \fi: } -\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { V , nV , x , nx } { TF , T , F } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn + { nV , ne , nx , e , ee , x , xx } + { TF , T , F } % \end{macrocode} % \end{macro} % @@ -2423,13 +2509,14 @@ % \end{macro} % \end{macro} % -% \begin{macro}[EXP,pTF]{\tl_if_single:N} +% \begin{macro}[EXP,pTF]{\tl_if_single:N, \tl_if_single:c} % Expand the token list and feed it to \cs{tl_if_single:nTF}. % \begin{macrocode} \cs_new:Npn \tl_if_single_p:N { \exp_args:No \tl_if_single_p:n } \cs_new:Npn \tl_if_single:NT { \exp_args:No \tl_if_single:nT } \cs_new:Npn \tl_if_single:NF { \exp_args:No \tl_if_single:nF } \cs_new:Npn \tl_if_single:NTF { \exp_args:No \tl_if_single:nTF } +\prg_generate_conditional_variant:Nnn \tl_if_single:N {c} { p , T , F , TF } % \end{macrocode} % \end{macro} % @@ -2751,7 +2838,12 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\tl_trim_spaces:n, \tl_trim_spaces:o} +% \begin{macro} +% { +% \tl_trim_spaces:n, \tl_trim_spaces:V, \tl_trim_spaces:v, +% \tl_trim_spaces:e, +% \tl_trim_spaces:o, +% } % \begin{macro}{\tl_trim_spaces_apply:nN, \tl_trim_spaces_apply:oN} % \begin{macro} % { @@ -2774,14 +2866,14 @@ { \@@_trim_mark: #1 } { \__kernel_exp_not:w \exp_after:wN } } -\cs_generate_variant:Nn \tl_trim_spaces:n { o } +\cs_generate_variant:Nn \tl_trim_spaces:n { V , v , e , o } \cs_new:Npn \tl_trim_spaces_apply:nN #1#2 { \@@_trim_spaces:nn { \@@_trim_mark: #1 } { \exp_args:No #2 } } \cs_generate_variant:Nn \tl_trim_spaces_apply:nN { o } \cs_new_protected:Npn \tl_trim_spaces:N #1 - { \__kernel_tl_set:Nx #1 { \exp_args:No \tl_trim_spaces:n {#1} } } + { \__kernel_tl_set:Ne #1 { \exp_args:No \tl_trim_spaces:n {#1} } } \cs_new_protected:Npn \tl_gtrim_spaces:N #1 - { \__kernel_tl_gset:Nx #1 { \exp_args:No \tl_trim_spaces:n {#1} } } + { \__kernel_tl_gset:Ne #1 { \exp_args:No \tl_trim_spaces:n {#1} } } \cs_generate_variant:Nn \tl_trim_spaces:N { c } \cs_generate_variant:Nn \tl_gtrim_spaces:N { c } % \end{macrocode} @@ -3237,7 +3329,7 @@ % or with a space, making sure that % \cs{@@_act_space:wwNNN} gobbles the space. % \begin{macrocode} -\exp_args:Nnx \use:n { \cs_new:Npn \@@_act_loop:w #1 \s_@@_act_stop } +\exp_args:Nne \use:n { \cs_new:Npn \@@_act_loop:w #1 \s_@@_act_stop } { \exp_not:o { \@@_act_if_head_is_space:nTF {#1} } \exp_not:N \@@_act_space:wwNNN @@ -3346,9 +3438,9 @@ % which stops the \texttt{f}-expansion. % \begin{macrocode} \cs_new_protected:Npn \tl_reverse:N #1 - { \__kernel_tl_set:Nx #1 { \exp_args:No \tl_reverse:n { #1 } } } + { \__kernel_tl_set:Ne #1 { \exp_args:No \tl_reverse:n { #1 } } } \cs_new_protected:Npn \tl_greverse:N #1 - { \__kernel_tl_gset:Nx #1 { \exp_args:No \tl_reverse:n { #1 } } } + { \__kernel_tl_gset:Ne #1 { \exp_args:No \tl_reverse:n { #1 } } } \cs_generate_variant:Nn \tl_reverse:N { c } \cs_generate_variant:Nn \tl_greverse:N { c } % \end{macrocode} @@ -3563,7 +3655,7 @@ { \token_to_str:N #2 = \__kernel_exp_not:w \exp_after:wN {#2} } } { - \msg_error:nnxxx { kernel } { bad-type } + \msg_error:nneee { kernel } { bad-type } { \token_to_str:N #2 } { \token_to_meaning:N #2 } { tl } } } @@ -3571,7 +3663,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\tl_show:n, \tl_show:x, \@@_show:n} +% \begin{macro}{\tl_show:n, \tl_show:e, \tl_show:x, \@@_show:n} % \begin{macro}[EXP]{\@@_show:w} % Many |show| functions are based on \cs{tl_show:n}. % The argument of \cs{tl_show:n} is line-wrapped using @@ -3591,7 +3683,7 @@ % \begin{macrocode} \cs_new_protected:Npn \tl_show:n #1 { \iow_wrap:nnnN { >~ \tl_to_str:n {#1} . } { } { } \@@_show:n } -\cs_generate_variant:Nn \tl_show:n { x } +\cs_generate_variant:Nn \tl_show:n { e , x } \cs_new_protected:Npn \@@_show:n #1 { \tl_set:Nf \l_@@_internal_a_tl { \@@_show:w #1 \s_@@_stop } @@ -3609,13 +3701,13 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\tl_log:n, \tl_log:x} +% \begin{macro}{\tl_log:n, \tl_log:e, \tl_log:x} % Logging is much easier, simply line-wrap. The |>~| and trailing % period is there to match the output of \cs{tl_show:n}. % \begin{macrocode} \cs_new_protected:Npn \tl_log:n #1 { \iow_wrap:nnnN { > ~ \tl_to_str:n {#1} . } { } { } \iow_log:n } -\cs_generate_variant:Nn \tl_log:n { x } +\cs_generate_variant:Nn \tl_log:n { e , x } % \end{macrocode} % \end{macro} % @@ -3635,17 +3727,17 @@ \exp_args:Nf \tl_if_empty:nTF { \cs_prefix_spec:N #1 \cs_parameter_spec:N #1 } { - \tl_set:Nx \l_@@_internal_a_tl {#3} + \tl_set:Ne \l_@@_internal_a_tl {#3} \tl_if_eq:NNTF #1 \l_@@_internal_a_tl {#4} { - \msg_error:nnxxxx { kernel } { bad-type } + \msg_error:nneeee { kernel } { bad-type } { \token_to_str:N #1 } { \tl_to_str:N #1 } {#2} { \tl_to_str:N \l_@@_internal_a_tl } } } { - \msg_error:nnxxx { kernel } { bad-type } + \msg_error:nneee { kernel } { bad-type } { \token_to_str:N #1 } { \token_to_meaning:N #1 } {#2} } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index ce274f9583d..aedde780987 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -1490,7 +1490,7 @@ \char_set_lccode:nn { `\^^@ } { ##1 } \tex_lowercase:D { \group_end: #2 ^^@ } } - \cs_new_protected:cpx { #1 :NN } ##1 + \cs_new_protected:cpe { #1 :NN } ##1 { \exp_not:c { #1 : nN } { `##1 } } } \@@_tmp:nN { char_set_active_eq } \cs_set_eq:NN @@ -1614,7 +1614,7 @@ \char_set_catcode_math_superscript:n { 0 } \tl_put_right:Nn \l_@@_tmp_tl { ^^@ \exp_not:N \or: } \char_set_catcode_parameter:n { 0 } - \tl_put_right:Nn \l_@@_tmp_tl { ^^@^^@ \exp_not:N \or: } + \tl_put_right:Nn \l_@@_tmp_tl { ^^@ \exp_not:N \or: } \tl_put_right:Nn \l_@@_tmp_tl { { \if_false: } \fi: \exp_not:N \or: } \char_set_catcode_alignment:n { 0 } \tl_put_right:Nn \l_@@_tmp_tl { ^^@ \exp_not:N \or: } @@ -1627,16 +1627,16 @@ % \end{macrocode} % Convert the above temporary list into a series of constant token % lists, one for each character code, using \cs{tex_lowercase:D} to -% convert |^^@| in each case. The \texttt{x}-type expansion ensures +% convert |^^@| in each case. The \texttt{e}-type expansion ensures % that \cs{tex_lowercase:D} receives the contents of the token list. % \begin{macrocode} \cs_set_protected:Npn \@@_tmp:n #1 { \char_set_lccode:nn { 0 } {#1} \char_set_lccode:nn { 32 } {#1} - \exp_args:Nx \tex_lowercase:D + \exp_args:Ne \tex_lowercase:D { - \tl_const:Nx + \tl_const:Ne \exp_not:c { c_@@_ \@@_int_to_roman:w #1 _tl } { \exp_not:o \l_@@_tmp_tl } } @@ -1848,7 +1848,7 @@ % \begin{macro}{\c_catcode_other_space_tl} % Create a space with category code $12$: an \enquote{other} space. % \begin{macrocode} -\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } } +\tl_const:Ne \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } } % \end{macrocode} % \end{macro} % @@ -2127,17 +2127,17 @@ % detokenized. % % \begin{macrocode} -\use:x +\use:e { - \prg_new_conditional:Npnn \exp_not:N \token_if_macro:N ##1 + \prg_new_conditional:Npnn \exp_not:N \token_if_macro:N #1 { p , T , F , TF } { \exp_not:N \exp_after:wN \exp_not:N \@@_if_macro_p:w - \exp_not:N \token_to_meaning:N ##1 \tl_to_str:n { ma : } + \exp_not:N \token_to_meaning:N #1 \tl_to_str:n { ma : } \s_@@_stop } \cs_new:Npn \exp_not:N \@@_if_macro_p:w - ##1 \tl_to_str:n { ma } ##2 \c_colon_str ##3 \s_@@_stop + #1 \tl_to_str:n { ma } #2 \c_colon_str #3 \s_@@_stop } { \str_if_eq:nnTF { #2 } { cro } @@ -2208,11 +2208,11 @@ \group_begin: \cs_set_protected:Npn \@@_tmp:w #1 { - \use:x + \use:e { \cs_new:Npn \exp_not:c { @@_delimit_by_ #1 :w } - ####1 \tl_to_str:n {#1} ####2 \s_@@_stop - { ####1 \tl_to_str:n {#1} } + ##1 \tl_to_str:n {#1} ##2 \s_@@_stop + { ##1 \tl_to_str:n {#1} } } } \@@_tmp:w { char" } @@ -2283,17 +2283,17 @@ \group_begin: \cs_set_protected:Npn \@@_tmp:w #1#2#3 { - \use:x + \use:e { - \prg_new_conditional:Npnn \exp_not:c { token_if_ #1 :N } ####1 + \prg_new_conditional:Npnn \exp_not:c { token_if_ #1 :N } ##1 { p , T , F , TF } { \cs_if_exist:cT { tex_ #2 :D } { - \exp_not:N \if_meaning:w ####1 \exp_not:c { tex_ #2 :D } + \exp_not:N \if_meaning:w ##1 \exp_not:c { tex_ #2 :D } \exp_not:N \prg_return_false: \exp_not:N \else: - \exp_not:N \if_meaning:w ####1 \exp_not:c { tex_ #2 def:D } + \exp_not:N \if_meaning:w ##1 \exp_not:c { tex_ #2 def:D } \exp_not:N \prg_return_false: \exp_not:N \else: } @@ -2301,7 +2301,7 @@ { \exp_not:N \exp_after:wN \exp_not:c { @@_delimit_by_ #2 :w } - \exp_not:N \token_to_meaning:N ####1 + \exp_not:N \token_to_meaning:N ##1 ? \tl_to_str:n {#2} \s_@@_stop } { \exp_not:n {#3} } @@ -2464,26 +2464,26 @@ end } { \tex_chardef:D \c_@@_A_int = `A ~ % - \use:x + \use:e { - \prg_new_conditional:Npnn \exp_not:N \token_if_primitive:N ##1 + \prg_new_conditional:Npnn \exp_not:N \token_if_primitive:N #1 { p , T , F , TF } { - \exp_not:N \token_if_macro:NTF ##1 + \exp_not:N \token_if_macro:NTF #1 \exp_not:N \prg_return_false: { \exp_not:N \exp_after:wN \exp_not:N \@@_if_primitive:NNw - \exp_not:N \token_to_meaning:N ##1 - \tl_to_str:n { : : : } \s_@@_stop ##1 + \exp_not:N \token_to_meaning:N #1 + \tl_to_str:n { : : : } \s_@@_stop #1 } } \cs_new:Npn \exp_not:N \@@_if_primitive:NNw - ##1##2 ##3 \c_colon_str ##4 \s_@@_stop + #1#2 #3 \c_colon_str #4 \s_@@_stop { \exp_not:N \tl_if_empty:oTF - { \exp_not:N \@@_if_primitive_space:w ##3 ~ } + { \exp_not:N \@@_if_primitive_space:w #3 ~ } { - \exp_not:N \@@_if_primitive_loop:N ##3 + \exp_not:N \@@_if_primitive_loop:N #3 \c_colon_str \s_@@_stop } { \exp_not:N \@@_if_primitive_nullfont:N } @@ -2694,7 +2694,7 @@ end % \begin{macrocode} \cs_new_protected:Npn \peek_remove_spaces:n #1 { - \cs_set:Npx \@@_false:w { \exp_not:n {#1} } + \cs_set:Npe \@@_false:w { \exp_not:n {#1} } \group_align_safe_begin: \cs_set:Npn \@@_true_aux:w { \peek_after:Nw \@@_remove_spaces: } \@@_true_aux:w @@ -2723,7 +2723,7 @@ end \cs_new_protected:Npn \peek_remove_filler:n #1 { \cs_set:Npn \@@_true_aux:w { \@@_remove_filler:w } - \cs_set:Npx \@@_false:w + \cs_set:Npe \@@_false:w { \exp_not:N \group_align_safe_end: \exp_not:n {#1} @@ -2786,13 +2786,13 @@ end \group_align_safe_begin: \cs_set_eq:NN \l_@@_search_token #3 \tl_set:Nn \l_@@_search_tl {#3} - \cs_set:Npx \@@_true_aux:w + \cs_set:Npe \@@_true_aux:w { \exp_not:N \group_align_safe_end: \exp_not:n {#4} } \cs_set_eq:NN \@@_true:w #1 - \cs_set:Npx \@@_false:w + \cs_set:Npe \@@_false:w { \exp_not:N \group_align_safe_end: \exp_not:n {#5} @@ -2928,7 +2928,7 @@ end { \tl_map_inline:nn { { TF } { T } { F } } { - \cs_new_protected:cpx { peek_ #1 ##1 :N ####1 } + \cs_new_protected:cpe { peek_ #1 ##1 :N ####1 } { \exp_not:c { @@_token ##1 _generic:NN ####1 } \exp_not:c { @@_execute_branches_ #1 : } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index f79fc63e5a3..2161e0963ef 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 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -549,7 +549,7 @@ } \cs_set_protected:Npn \@@_data_auxii:w #1 ; #2 ~ #3 \q_stop { - \tl_const:cx + \tl_const:ce { c_@@_nfd_ \codepoint_str_generate:n {"#1} _tl } { {"#2} @@ -607,11 +607,11 @@ \@@_add:nn { lowercase } {#5} \int_compare:nNnF {#4} = { \@@_data_offset:nn {#1} {#6} } { - \tl_const:cx + \tl_const:ce { c_@@_titlecase_ \codepoint_str_generate:n {"#1} _tl } { {"#6} { } { } } } - \tl_set:Nx \l_@@_next_codepoint_fint_tl + \tl_set:Ne \l_@@_next_codepoint_fint_tl { \int_eval:n { "#1 + 1 } } } \cs_set_protected:Npn \@@_add:nn #1#2 @@ -626,7 +626,7 @@ % The general category for unassigned characters is \texttt{Cn}, so we % find the correct value once and then use that. % \begin{macrocode} - \cs_set_protected:Npx \@@_data_auxv:nnnnw #1#2#3#4#5 Last> #6 \q_stop + \cs_set_protected:Npe \@@_data_auxv:nnnnw #1#2#3#4#5 Last> #6 \q_stop { \exp_not:N \tl_if_blank:nTF {#6} { @@ -679,7 +679,7 @@ \int_compare:nNnF { \int_div_truncate:nn { #2 - #1 } \c_@@_block_size_int } = 0 { - \tl_set:cx { l_@@_ #3 _block_clist } + \tl_set:ce { l_@@_ #3 _block_clist } { \exp_args:NNe \use:nn \use_none:n { \prg_replicate:nn { \c_@@_block_size_int } { , #4 } } @@ -689,7 +689,7 @@ } \prg_replicate:nn { \int_mod:nn { #2 - #1 } \c_@@_block_size_int } - { \clist_put_right:cx { l_@@_ #3 _block_clist } {#4} } + { \clist_put_right:ce { l_@@_ #3 _block_clist } {#4} } } % \end{macrocode} % To allow rapid comparison, each completed block is stored locally as a @@ -716,12 +716,12 @@ \tl_use:c { l_@@_ #1 _block_tl } _clist } { l_@@_ #1 _block_clist } - \tl_set:cx { l_@@_ #1 _block_tl } + \tl_set:ce { l_@@_ #1 _block_tl } { \int_eval:n { \tl_use:c { l_@@_ #1 _block_tl } + 1 } } } \prg_replicate:nn {#2} { - \tl_set:cx { l_@@_ #1 _pos_tl } + \tl_set:ce { l_@@_ #1 _pos_tl } { \int_eval:n { \tl_use:c { l_@@_ #1 _pos_tl } + 1 } } \exp_args:Nc \__kernel_intarray_gset:Nnn { g_@@_ #1 _index_intarray } @@ -846,7 +846,7 @@ \reverse_if:N \if_int_compare:w \int_eval:n { \__kernel_codepoint_data:nn { lowercase } {"#1} + "#1 } = "#3 ~ - \tl_const:cx + \tl_const:ce { c_@@_casefold_ \codepoint_str_generate:n {"#1} _tl } { {"#3} { } { } } \fi: @@ -862,7 +862,7 @@ % \begin{macrocode} \cs_set_protected:Npn \@@_data_auxii:w #1 ~ #2 ~ #3 ~ #4 \q_stop { - \tl_const:cx { c_@@_casefold_ \codepoint_str_generate:n {"#1} _tl } + \tl_const:ce { c_@@_casefold_ \codepoint_str_generate:n {"#1} _tl } { {"#2} {"#3} @@ -895,7 +895,7 @@ { \tl_if_empty:nF {#4} { - \tl_const:cx { c_@@_ #2 case_ \codepoint_str_generate:n {"#1} _tl } + \tl_const:ce { c_@@_ #2 case_ \codepoint_str_generate:n {"#1} _tl } { {"#3} {"#4} @@ -994,7 +994,7 @@ { \str_if_empty:NF \l_@@_tmpb_str { - \clist_const:cx { c_@@_grapheme_ \l_@@_tmpb_str _clist } + \clist_const:ce { c_@@_grapheme_ \l_@@_tmpb_str _clist } { \exp_after:wN \use_none:n \l_@@_tmpa_str } \cs_set_nopar:Npn \l_@@_tmpa_str { } } @@ -1004,7 +1004,7 @@ } \cs_set_protected:Npn \@@_data_auxii:w #1 .. #2 .. #3 \q_stop { - \cs_set_nopar:Npx \l_@@_tmpa_str + \cs_set_nopar:Npe \l_@@_tmpa_str { \l_@@_tmpa_str , \tl_trim_spaces:n {#1} .. \tl_trim_spaces:n {#2} diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx index 13fd652eaa2..376cb136acb 100644 --- a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx +++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx @@ -62,7 +62,7 @@ % }^^A % } % -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -154,7 +154,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{l3keys2e}{2023-08-29}{} +\ProvidesExplPackage{l3keys2e}{2023-10-10}{} {LaTeX2e option processing using LaTeX3 keys} % \end{macrocode} % @@ -206,7 +206,7 @@ { unknown .code:n = { - \msg_error:nnxx { keyvalue } { option-unknown } + \msg_error:nnee { keyvalue } { option-unknown } { \l_keys_key_str } { \@currname } } } @@ -264,7 +264,7 @@ { \clist_map_inline:cn { opt@ \@currname . \@currext } { - \keys_if_exist:nxTF {#1} { \@@_latexe_remove_equals:n {##1} } + \keys_if_exist:neTF {#1} { \@@_latexe_remove_equals:n {##1} } { \clist_put_right:Nn \l_@@_latexe_options_clist {##1} } { \clist_put_right:Nn \@unusedoptionlist {##1} } } @@ -284,7 +284,7 @@ { \clist_map_inline:Nn \@classoptionslist { - \keys_if_exist:nxT {#1} { \@@_latexe_remove_equals:n {##1} } + \keys_if_exist:neT {#1} { \@@_latexe_remove_equals:n {##1} } { \clist_put_right:Nn \l_@@_latexe_options_clist {##1} \clist_remove_all:Nn \@unusedoptionlist {##1} diff --git a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx index 44fccd9271f..2c3a5bf7329 100644 --- a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -171,7 +171,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfp}{2023-08-29}{} +\ProvidesExplPackage{xfp}{2023-10-10}{} {L3 Floating point unit} % \end{macrocode} % diff --git a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx index 70981e871a7..6bce5f93ee9 100644 --- a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx @@ -65,7 +65,7 @@ % }^^A % } % -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -535,7 +535,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xfrac}{2023-08-29}{} +\ProvidesExplPackage{xfrac}{2023-10-10}{} {L3 Experimental split-level fractions} % \end{macrocode} % @@ -784,11 +784,11 @@ \mode_if_math:TF { \cs_set_eq:NN \@@_text_or_math:n \text - \cs_set:Npx \@@_denominator_font_change: + \cs_set:Npe \@@_denominator_font_change: { \tex_fam:D \l_@@_denominator_font_tl } - \cs_set:Npx \@@_numerator_font_change: + \cs_set:Npe \@@_numerator_font_change: { \tex_fam:D \l_@@_numerator_font_tl } - \cs_set:Npx \@@_slash_symbol_font_change: + \cs_set:Npe \@@_slash_symbol_font_change: { \tex_fam:D \l_@@_slash_symbol_font_tl } } { diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx index 72a31e68718..ba98987d7fe 100644 --- a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx @@ -67,7 +67,7 @@ % }^^A % } % -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -1064,7 +1064,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xparse}{2023-08-29}{} +\ProvidesExplPackage{xparse}{2023-10-10}{} {L3 Experimental document command parser} % \end{macrocode} % @@ -1091,7 +1091,7 @@ { \msg_redirect_module:nnn {#1} { info } { none } } \cs_new_protected:Npn \@@_unknown_argument_type_error:n ##1 { - \msg_error:nnxx {#1} { unknown-argument-type } + \msg_error:nnee {#1} { unknown-argument-type } { \@@_environment_or_command: } { \tl_to_str:n {##1} } } } @@ -1126,7 +1126,7 @@ % These argument types are aliases of more general ones, for example % with the default argument |-NoValue-|. % \begin{macrocode} -\cs_new_protected:Npx \@@_normalize_type_g:w +\cs_new_protected:Npe \@@_normalize_type_g:w { \exp_not:N \@@_normalize_type_G:w { \exp_not:V \c_novalue_tl } } % \end{macrocode} % \end{macro} @@ -1399,7 +1399,7 @@ \cs_gset_protected:Npn \@@_get_arg_spec_error:n #1 { \bool_set_true:N \l_@@_environment_bool - \str_set:Nx \l_@@_environment_str {#1} + \str_set:Ne \l_@@_environment_str {#1} \@@_get_arg_spec_error_aux:n { \cs_if_exist:cTF { \l_@@_environment_str } } } @@ -1407,11 +1407,11 @@ { #1 { - \msg_error:nnx { cmd } { non-xparse } + \msg_error:nne { cmd } { non-xparse } { \@@_environment_or_command: } } { - \msg_error:nnx { cmd } { unknown } + \msg_error:nne { cmd } { unknown } { \@@_environment_or_command: } } } @@ -1427,7 +1427,7 @@ { \__kernel_cmd_if_xparse:NTF #1 { - \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } } + \tl_set:Ne \ArgumentSpecification { \tl_item:Nn #1 { 2 } } #2 } {#3} diff --git a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx index 8386be5d984..5080d94b0fd 100644 --- a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx +++ b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx @@ -63,7 +63,7 @@ % }^^A % } % -% \date{Released 2023-08-29} +% \date{Released 2023-10-10} % % \maketitle % @@ -711,15 +711,10 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{xtemplate}{2023-08-29}{} +\ProvidesExplPackage{xtemplate}{2023-10-10}{} {L3 Experimental prototype document functions} % \end{macrocode} % -% \begin{macrocode} -\cs_generate_variant:Nn \keys_define:nn { nx } -\cs_generate_variant:Nn \tl_trim_spaces:n { e } -% \end{macrocode} -% % \subsection{Variables and constants} % % \begin{variable}{\c_@@_code_root_tl} @@ -943,7 +938,7 @@ \int_compare:nNnTF {#2} = \l_@@_tmp_tl {#3} { - \msg_error:nnxxx { xtemplate } + \msg_error:nneee { xtemplate } { argument-number-mismatch } {#1} { \l_@@_tmp_tl } {#2} } } @@ -959,7 +954,7 @@ \cs_if_exist:cTF { \c_@@_code_root_tl #1 / #2 } {#3} { - \msg_error:nnxx { xtemplate } { no-template-code } + \msg_error:nnee { xtemplate } { no-template-code } {#1} {#2} } } @@ -976,7 +971,7 @@ { \cs_if_exist:cTF { @@_store_value_ #1 :n } {#2} - { \msg_error:nnx { xtemplate } { unknown-keytype } {#1} } + { \msg_error:nne { xtemplate } { unknown-keytype } {#1} } } \cs_generate_variant:Nn \@@_execute_if_keytype_exist:nT { o } % \end{macrocode} @@ -990,7 +985,7 @@ { \prop_if_in:NnTF \g_@@_object_type_prop {#1} {#2} - { \msg_error:nnx { xtemplate } { unknown-object-type } {#1} } + { \msg_error:nne { xtemplate } { unknown-object-type } {#1} } } % \end{macrocode} % \end{macro} @@ -1005,7 +1000,7 @@ \cs_if_exist:cTF { \c_@@_keytypes_root_tl #1 / #2 } {#3} { - \msg_error:nnxx { xtemplate } { unknown-template } + \msg_error:nnee { xtemplate } { unknown-template } {#1} {#2} } } @@ -1191,13 +1186,13 @@ \int_set:Nn \l_@@_tmp_int {#2} \int_compare:nTF { 0 <= \l_@@_tmp_int <= 9 } { - \msg_info:nnxx { xtemplate } { declare-object-type } - {#1} { \exp_not:V \l_@@_tmp_int } + \msg_info:nnnV { xtemplate } { declare-object-type } + {#1} \l_@@_tmp_int \prop_gput:NnV \g_@@_object_type_prop {#1} \l_@@_tmp_int } { - \msg_error:nnxx { xtemplate } { bad-number-of-arguments } + \msg_error:nnee { xtemplate } { bad-number-of-arguments } {#1} { \exp_not:V \l_@@_tmp_int } } } @@ -1266,7 +1261,7 @@ \seq_if_in:NoTF \l_@@_key_order_seq \l_@@_key_name_tl { - \msg_error:nnx { xtemplate } + \msg_error:nne { xtemplate } { duplicate-key-interface } { \l_@@_key_name_tl } } @@ -1281,7 +1276,7 @@ { \tl_if_empty:NT \l_@@_keytype_arg_tl { - \msg_error:nnx { xtemplate } + \msg_error:nne { xtemplate } { keytype-requires-argument } {#1} \bool_set_true:N \l_@@_error_bool \seq_map_break: @@ -1290,7 +1285,7 @@ } \cs_new:Npn \@@_parse_keys_elt_aux: { - \tl_set:Nx \l_@@_tmp_tl + \tl_set:Ne \l_@@_tmp_tl { \l_@@_keytype_tl \tl_if_empty:NF \l_@@_keytype_arg_tl @@ -1331,7 +1326,7 @@ % that, the standard delimited argument method is used to separate the % two parts. % \begin{macrocode} -\cs_new_protected:Npx \@@_split_keytype:n #1 +\cs_new_protected:Npe \@@_split_keytype:n #1 { \exp_not:N \bool_set_false:N \exp_not:N \l_@@_error_bool \tl_set:Nn \exp_not:N \l_@@_tmp_tl {#1} @@ -1347,32 +1342,32 @@ } { \exp_not:N \bool_set_true:N \exp_not:N \l_@@_error_bool - \msg_error:nnx { xtemplate } { missing-keytype } {#1} + \msg_error:nne { xtemplate } { missing-keytype } {#1} } } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \@@_split_keytype_aux:w - ##1 \token_to_str:N : ##2 \s_@@_stop + #1 \token_to_str:N : #2 \s_@@_stop { - \tl_put_right:Nx \exp_not:N \l_@@_key_name_tl + \tl_put_right:Ne \exp_not:N \l_@@_key_name_tl { \exp_not:N \tl_trim_spaces:e - { \exp_not:N \tl_to_str:n {##1} } + { \exp_not:N \tl_to_str:n {#1} } } - \tl_if_in:nnTF {##2} { \token_to_str:N : } + \tl_if_in:nnTF {#2} { \token_to_str:N : } { \tl_put_right:Nn \exp_not:N \l_@@_key_name_tl { \token_to_str:N : } - \exp_not:N \@@_split_keytype_aux:w ##2 \s_@@_stop + \exp_not:N \@@_split_keytype_aux:w #2 \s_@@_stop } { \exp_not:N \tl_if_empty:NTF \exp_not:N \l_@@_key_name_tl { - \msg_error:nnx { xtemplate } { empty-key-name } - { \token_to_str:N : ##2 } + \msg_error:nne { xtemplate } { empty-key-name } + { \token_to_str:N : #2 } } - { \exp_not:N \@@_split_keytype_arg:n {##2} } + { \exp_not:N \@@_split_keytype_arg:n {#2} } } } } @@ -1395,7 +1390,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_split_keytype_arg:n #1 { - \tl_set:Nx \l_@@_keytype_tl { \tl_trim_spaces:n {#1} } + \tl_set:Ne \l_@@_keytype_tl { \tl_trim_spaces:n {#1} } \tl_clear:N \l_@@_keytype_arg_tl \cs_set_protected:Npn \@@_split_keytype_arg_aux:n ##1 { @@ -1406,11 +1401,11 @@ { \tl_if_blank:nT {####1} { - \tl_set:Nx \l_@@_keytype_tl + \tl_set:Ne \l_@@_keytype_tl { \tl_trim_spaces:n {##1} } \tl_if_blank:nF {####2} { - \tl_set:Nx \l_@@_keytype_arg_tl + \tl_set:Ne \l_@@_keytype_arg_tl { \use:n ####2 } } \seq_map_break: @@ -1548,7 +1543,7 @@ \@@_store_restrictions:n { #1 / #2 } \prop_map_inline:Nn \l_@@_keytypes_prop { - \msg_error:nnxxx { xtemplate } { key-not-implemented } + \msg_error:nneee { xtemplate } { key-not-implemented } {##1} {#2} {#1} } } @@ -1560,7 +1555,7 @@ % this is an error function. % \begin{macrocode} \cs_new_protected:Npn \@@_parse_vars_elt:n #1 - { \msg_error:nnx { xtemplate } { key-no-variable } {#1} } + { \msg_error:nne { xtemplate } { key-no-variable } {#1} } % \end{macrocode} % \end{macro} % @@ -1572,7 +1567,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_parse_vars_elt:nnn #1#2#3 { - \tl_set:Nx \l_@@_key_name_tl + \tl_set:Ne \l_@@_key_name_tl { \tl_trim_spaces:e { \tl_to_str:n {#2} } } \prop_get:NoNTF \l_@@_keytypes_prop @@ -1583,7 +1578,7 @@ \@@_parse_vars_elt_aux:nn {#1} {#3} \prop_remove:NV \l_@@_keytypes_prop \l_@@_key_name_tl } - { \msg_error:nnx { xtemplate } { unknown-key } {#2} } + { \msg_error:nne { xtemplate } { unknown-key } {#2} } } % \end{macrocode} % \end{macro} @@ -1606,7 +1601,7 @@ { \tl_if_blank:nTF {#2} { - \exp_args:Nnnx \@@_parse_vars_elt_aux:nnn + \exp_args:Nnne \@@_parse_vars_elt_aux:nnn {#1} { global } { \tl_trim_spaces:n {#3} } } { \msg_error:nnn { xtemplate } { bad-variable } { #2 global #3 } } @@ -1630,7 +1625,7 @@ \exp_not:c { cs_ \str_if_eq:nnT {#1} { global } { g } set:Npn } { \exp_not:o \l_@@_keytype_arg_tl } - {####1} + {##1} } } \prop_put:Non \l_@@_vars_prop @@ -1644,7 +1639,7 @@ { \exp_not:c { cs_ \str_if_eq:nnT {#1} { global } { g } set:Npn } - \exp_not:N #3 { \UseInstance {####1} } + \exp_not:N #3 { \UseInstance {##1} } } } \prop_put:Non \l_@@_vars_prop @@ -1665,12 +1660,12 @@ \prop_put:Non \l_@@_vars_prop \l_@@_key_name_tl {#2#3} } - { \msg_error:nnx { xtemplate } { bad-variable } { #2#3 } } + { \msg_error:nne { xtemplate } { bad-variable } { #2#3 } } } } \cs_new_protected:Npn \@@_parse_vars_elt_key:nn #1#2 { - \keys_define:nx { template / #1 } + \keys_define:ne { template / #1 } { \l_@@_key_name_tl #2 } } % \end{macrocode} @@ -1708,7 +1703,7 @@ { \clist_set:No \l_@@_tmp_clist { \l_@@_keytype_arg_tl } \prop_put:Non \l_@@_vars_prop \l_@@_key_name_tl { } - \keys_define:nx { template / #1 } { \l_@@_key_name_tl .choice: } + \keys_define:ne { template / #1 } { \l_@@_key_name_tl .choice: } \keyval_parse:nnn { \@@_implement_choice_elt:n } { \@@_implement_choice_elt:nnn {#1} } @@ -1720,7 +1715,7 @@ { \clist_map_inline:Nn \l_@@_tmp_clist { - \msg_error:nnx { xtemplate } { choice-not-implemented } + \msg_error:nne { xtemplate } { choice-not-implemented } {##1} } } @@ -1731,11 +1726,11 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_implement_choices_default: { - \tl_set:Nx \l_@@_tmp_tl + \tl_set:Ne \l_@@_tmp_tl { \l_@@_key_name_tl \c_space_tl \l_@@_tmp_tl } \prop_if_in:NoF \l_@@_vars_prop \l_@@_tmp_tl { - \tl_set:Nx \l_@@_tmp_tl + \tl_set:Ne \l_@@_tmp_tl { \l_@@_key_name_tl \c_space_tl \l_@@_tmp_tl } \prop_if_in:NoF \l_@@_vars_prop \l_@@_tmp_tl { @@ -1744,7 +1739,7 @@ \@@_split_keytype_arg:o \l_@@_tmp_tl \prop_get:NoN \l_@@_values_prop \l_@@_key_name_tl \l_@@_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-default-choice } + \msg_error:nneee { xtemplate } { unknown-default-choice } { \l_@@_key_name_tl } { \l_@@_key_name_tl } { \l_@@_keytype_arg_tl } } @@ -1772,7 +1767,7 @@ \prop_get:NoN \l_@@_keytypes_prop \l_@@_key_name_tl \l_@@_tmp_tl \@@_split_keytype_arg:o \l_@@_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-choice } + \msg_error:nneee { xtemplate } { unknown-choice } { \l_@@_key_name_tl } {#2} { \l_@@_keytype_arg_tl } } @@ -1787,7 +1782,7 @@ \prop_get:NoN \l_@@_keytypes_prop \l_@@_key_name_tl \l_@@_tmp_tl \@@_split_keytype_arg:o \l_@@_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-choice } + \msg_error:nneee { xtemplate } { unknown-choice } { \l_@@_key_name_tl } {#2} { \l_@@_keytype_arg_tl } } @@ -1795,15 +1790,15 @@ } \cs_new_protected:Npn \@@_implement_choice_elt_aux:nnn #1#2#3 { - \keys_define:nx { template / #1 } + \keys_define:ne { template / #1 } { \l_@@_key_name_tl / #2 .code:n = { \exp_not:n {#3} } } - \tl_set:Nx \l_@@_tmp_tl + \tl_set:Ne \l_@@_tmp_tl { \l_@@_key_name_tl \c_space_tl #2 } \prop_put:Non \l_@@_vars_prop \l_@@_tmp_tl {#3} } \cs_new_protected:Npn \@@_implement_choice_elt:n #1 { - \msg_error:nnxxx { xtemplate } { choice-requires-code } + \msg_error:nneee { xtemplate } { choice-requires-code } { \l_@@_key_name_tl } {#1} } % \end{macrocode} @@ -1886,7 +1881,7 @@ \cs_new_protected:Npn \@@_parse_values_elt:n #1 { \bool_set_true:N \l_@@_error_bool - \msg_error:nnx { xtemplate } { key-no-value } {#1} + \msg_error:nne { xtemplate } { key-no-value } {#1} } % \end{macrocode} % \end{macro} @@ -1900,7 +1895,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_parse_values_elt:nn #1#2 { - \tl_set:Nx \l_@@_key_name_tl + \tl_set:Ne \l_@@_key_name_tl { \tl_trim_spaces:e { \tl_to_str:n {#1} } } \prop_get:NoNTF \l_@@_keytypes_prop \l_@@_key_name_tl \l_@@_tmp_tl @@ -1914,7 +1909,7 @@ { \@@_parse_values_elt_aux:n {#2} } } { - \msg_error:nnx { xtemplate } { unknown-key } + \msg_error:nne { xtemplate } { unknown-key } { \l_@@_key_name_tl } } } @@ -1978,7 +1973,7 @@ \prop_put:Nnn \l_@@_values_prop { from~template } {#2} \@@_store_values:n { #1 / #3 / #4 } \@@_convert_to_assignments: - \cs_set_protected:cpx { \c_@@_instances_root_tl #1 / #3 / #4 } + \cs_set_protected:cpe { \c_@@_instances_root_tl #1 / #3 / #4 } { \exp_not:N \@@_assignments_push:n { \exp_not:o \l_@@_assignments_tl } @@ -2009,7 +2004,7 @@ { \c_@@_instances_root_tl #1 / #2 / #3 } } { - \msg_error:nnxx { xtemplate } { unknown-instance } + \msg_error:nnee { xtemplate } { unknown-instance } {#1} {#3} } } @@ -2035,7 +2030,7 @@ {#2} {#3} {#4} } { - \msg_error:nnxx { xtemplate } { unknown-instance } + \msg_error:nnee { xtemplate } { unknown-instance } {#1} {#3} } } @@ -2094,7 +2089,7 @@ \tl_set:Nn \l_@@_key_name_tl {#1} \use:c { @@_assign_ \l_@@_keytype_tl : } } - { \msg_error:nnx { xtemplate } { unknown-attribute } {#1} } + { \msg_error:nne { xtemplate } { unknown-attribute } {#1} } } } \cs_generate_variant:Nn \@@_convert_to_assignments_aux:nn { no } @@ -2170,7 +2165,7 @@ \@@_if_key_value:oTF \l_@@_value_tl { \@@_key_to_value: - \tl_put_right:Nx \l_@@_assignments_tl + \tl_put_right:Ne \l_@@_assignments_tl { \exp_not:c { #1 _eq:NN } \exp_not:o \l_@@_var_tl @@ -2178,7 +2173,7 @@ } } { - \tl_put_right:Nx \l_@@_assignments_tl + \tl_put_right:Ne \l_@@_assignments_tl { \exp_not:c { #1 _ \l_@@_value_tl :N } \exp_not:o \l_@@_var_tl @@ -2197,16 +2192,16 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_assign_choice: { - \@@_assign_choice_aux:xF + \@@_assign_choice_aux:eF { \l_@@_key_name_tl \c_space_tl \l_@@_value_tl } { - \@@_assign_choice_aux:xF + \@@_assign_choice_aux:eF { \l_@@_key_name_tl \c_space_tl unknown } { \prop_get:NoN \l_@@_keytypes_prop \l_@@_key_name_tl \l_@@_tmp_tl \@@_split_keytype_arg:o \l_@@_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-choice } + \msg_error:nneee { xtemplate } { unknown-choice } { \l_@@_key_name_tl } { \l_@@_value_tl } { \l_@@_keytype_arg_tl } } @@ -2220,7 +2215,7 @@ \l_@@_tmp_tl { \tl_put_right:No \l_@@_assignments_tl \l_@@_tmp_tl } } -\cs_generate_variant:Nn \@@_assign_choice_aux:nF { x } +\cs_generate_variant:Nn \@@_assign_choice_aux:nF { e } % \end{macrocode} % \end{macro} % \end{macro} @@ -2237,7 +2232,7 @@ } \cs_new_protected:Npn \@@_assign_function_aux:N #1 { - \tl_put_right:Nx \l_@@_assignments_tl + \tl_put_right:Ne \l_@@_assignments_tl { \cs_generate_from_arg_count:NNnn \exp_not:o \l_@@_var_tl @@ -2264,7 +2259,7 @@ } \cs_new_protected:Npn \@@_assign_instance_aux:N #1 { - \tl_put_right:Nx \l_@@_assignments_tl + \tl_put_right:Ne \l_@@_assignments_tl { \exp_not:N #1 \exp_not:o \l_@@_var_tl { @@ -2340,14 +2335,14 @@ \@@_if_key_value:oTF \l_@@_value_tl { \@@_key_to_value: - \tl_put_right:Nx \l_@@_assignments_tl + \tl_put_right:Ne \l_@@_assignments_tl { #1 \exp_not:o \l_@@_var_tl \exp_not:o \l_@@_value_tl } } { - \tl_put_right:Nx \l_@@_assignments_tl + \tl_put_right:Ne \l_@@_assignments_tl { #2 \exp_not:o \l_@@_var_tl { \exp_not:o \l_@@_value_tl } @@ -2379,7 +2374,7 @@ { \@@_if_key_value:oT \l_@@_value_tl { \@@_key_to_value: } - \tl_put_right:Nx \l_@@_assignments_tl + \tl_put_right:Ne \l_@@_assignments_tl { #1 \exp_not:o \l_@@_var_tl { \exp_not:o \l_@@_value_tl } @@ -2403,7 +2398,7 @@ { \exp_after:wN \@@_key_to_value_auxi:w \l_@@_value_tl } \cs_new_protected:Npn \@@_key_to_value_auxi:w \KeyValue #1 { - \tl_set:Nx \l_@@_tmp_tl { \tl_trim_spaces:e { \tl_to_str:n {#1} } } + \tl_set:Ne \l_@@_tmp_tl { \tl_trim_spaces:e { \tl_to_str:n {#1} } } \prop_get:NoNTF \l_@@_vars_prop \l_@@_tmp_tl @@ -2413,7 +2408,7 @@ \s_@@_mark global \q_@@_nil \s_@@_stop } { - \msg_error:nnx { xtemplate } { unknown-attribute } + \msg_error:nne { xtemplate } { unknown-attribute } { \l_@@_tmp_tl } } } @@ -2450,7 +2445,7 @@ { \str_if_eq:nnTF {#1} {#3} { \@@_use_template:nnn {#3} {#4} {#5} } - { \msg_error:nnxx { xtemplate } { type-mismatch } {#1} {#3} } + { \msg_error:nnee { xtemplate } { type-mismatch } {#1} {#3} } } \cs_new_protected:Npn \@@_use_instance_aux:nn #1#2 { @@ -2468,7 +2463,7 @@ \@@_if_instance_exist:nnnTF {#1} { } {#2} { \use:c { \c_@@_instances_root_tl #1 / / #2 } } { - \msg_error:nnxx { xtemplate } { unknown-instance } + \msg_error:nnee { xtemplate } { unknown-instance } {#1} {#2} } } @@ -2570,7 +2565,7 @@ } \cs_new_protected:Npn \@@_show:Nnnn #1#2#3#4 { - \msg_show:nnxxxx { xtemplate } { show-attribute } + \msg_show:nneeee { xtemplate } { show-attribute } { \tl_to_str:n {#2} } { \tl_to_str:n {#3} } { \tl_to_str:n {#4} } @@ -2589,7 +2584,7 @@ \@@_if_instance_exist:nnnT {#1} {#2} {#3} { \@@_recover_values:n { #1 / #2 / #3 } - \msg_show:nnxxxx { xtemplate } { show-values } + \msg_show:nneeee { xtemplate } { show-values } { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } { \tl_to_str:n {#3} } diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index 4f3eb45eb97..62fb5d14cfe 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2023-04-19}{} + {l3backend-dvipdfmx.def}{2023-10-10}{} {L3 backend support: dvipdfmx} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -45,7 +45,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } \cs_if_exist:NTF \@ifl@t@r { \@ifl@t@r \fmtversion { 2020-10-01 } @@ -58,7 +57,7 @@ { \cs_new_eq:NN \__kernel_backend_first_shipout:n \use:n } \cs_new_protected:Npn \__kernel_backend_literal_pdf:n #1 { \__kernel_backend_literal:n { pdf:literal~ #1 } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } \cs_new_protected:Npn \__kernel_backend_literal_page:n #1 { \__kernel_backend_literal:n { pdf:literal~direct~ #1 } } \cs_new_protected:Npn \__kernel_backend_scope_begin: @@ -82,7 +81,7 @@ \msg_new:nnn { color } { unknown-named-color } { Named~color~'#1'~is~not~known. } \prop_new:N \g__color_backend_colorant_prop -\cs_new:Npx \__color_backend_devicen_colorants:n #1 +\cs_new:Npe \__color_backend_devicen_colorants:n #1 { \exp_not:N \tl_if_blank:nF {#1} { @@ -108,7 +107,7 @@ \__color_backend_devicen_colorants:w } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 - { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } + { \__kernel_backend_literal:e { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn \cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn \cs_new_protected:Npn \__color_backend_init_resource:n #1 @@ -116,7 +115,7 @@ } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { - \pdf_object_unnamed_write:nx { dict } + \pdf_object_unnamed_write:ne { dict } { /FunctionType ~ 2 /Domain ~ [0 ~ 1] @@ -124,19 +123,19 @@ /C0 ~ [#4] ~ /C1 ~ [#5] /N ~ 1 } - \exp_args:Nx \__color_backend_separation_init:nn + \exp_args:Ne \__color_backend_separation_init:nn { \str_convert_pdfname:n {#1} } {#2} \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } \cs_new_protected:Npn \__color_backend_separation_init:nn #1#2 { - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: } } - \prop_gput:Nnx \g__color_backend_colorant_prop { /#1 } + \prop_gput:Nne \g__color_backend_colorant_prop { /#1 } { \pdf_object_ref_last: } } \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 @@ -144,7 +143,7 @@ \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } { \pdf_object_new:n { __color_illuminant_CIELAB_ #1 } - \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nne { __color_illuminant_CIELAB_ #1 } { array } { /Lab ~ << @@ -163,7 +162,7 @@ } \cs_new_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { - \pdf_object_unnamed_write:nx { stream } + \pdf_object_unnamed_write:ne { stream } { { /FunctionType ~ 4 ~ @@ -185,7 +184,7 @@ } { {#3} } } - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } @@ -210,7 +209,7 @@ \pdf_object_if_exist:nF { __color_icc_ #1 } { \pdf_object_new:n { __color_icc_ #1 } - \pdf_object_write:nnx { __color_icc_ #1 } { fstream } + \pdf_object_write:nne { __color_icc_ #1 } { fstream } { { /N ~ \exp_not:n { #2 } ~ @@ -219,7 +218,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } @@ -234,7 +233,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { Default #2 } } @@ -250,12 +249,12 @@ \cs_new_eq:NN \__color_backend_stroke_rgb:n \__color_backend_stroke:n \cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn @@ -266,7 +265,7 @@ \cs_new_protected:Npn \__box_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -283,7 +282,7 @@ \cs_new_protected:Npn \__box_backend_rotate_aux:Nn #1#2 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#2} = \c_zero_fp @@ -296,7 +295,7 @@ \cs_new_protected:Npn \__box_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ @@ -307,7 +306,7 @@ } %% File: l3backend-draw.dtx \cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_pdf:n -\cs_generate_variant:Nn \__draw_backend_literal:n { x } +\cs_generate_variant:Nn \__draw_backend_literal:n { e } \cs_new_protected:Npn \__draw_backend_begin: { \__draw_backend_scope_begin: } \cs_new_protected:Npn \__draw_backend_end: @@ -316,17 +315,17 @@ \cs_new_eq:NN \__draw_backend_scope_end: \__kernel_backend_scope_end: \cs_new_protected:Npn \__draw_backend_moveto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m } } \cs_new_protected:Npn \__draw_backend_lineto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l } } \cs_new_protected:Npn \__draw_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -336,7 +335,7 @@ } \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -356,24 +355,24 @@ { \__draw_backend_literal:n { s } } \cs_new_protected:Npn \__draw_backend_fill: { - \__draw_backend_literal:x + \__draw_backend_literal:e { f \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_fillstroke: { - \__draw_backend_literal:x + \__draw_backend_literal:e { B \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_clip: { - \__draw_backend_literal:x + \__draw_backend_literal:e { W \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_discardpath: { \__draw_backend_literal:n { n } } \cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { [ \exp_args:Nf \use:n @@ -386,11 +385,11 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \__draw_backend_linewidth:n #1 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { #1 ~ M } } + { \__draw_backend_literal:e { #1 ~ M } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -410,20 +409,20 @@ } \cs_new_protected:Npn \__draw_backend_cm_aux:nnnn #1#2#3#4 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#1} = \c_zero_fp { 0 } { \fp_eval:n { round ( -#1 , 5 ) } } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ \fp_eval:n { round ( #3 , 5 ) } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#4} = \c_zero_fp @@ -433,7 +432,7 @@ } \cs_new_protected:Npn \__draw_backend_cm_decompose:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \__draw_backend_cm_decompose_auxi:nnnnN { \fp_eval:n { (#1 + #4) / 2 } } @@ -445,7 +444,7 @@ } \cs_new_protected:Npn \__draw_backend_cm_decompose_auxi:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \__draw_backend_cm_decompose_auxii:nnnnN { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } @@ -457,7 +456,7 @@ } \cs_new_protected:Npn \__draw_backend_cm_decompose_auxii:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \__draw_backend_cm_decompose_auxiii:nnnnN { \fp_eval:n { ( #4 - #3 ) / 2 } } @@ -522,7 +521,7 @@ \int_new:N \g__graphics_track_int \cs_new_protected:Npn \__graphics_backend_include_eps:n #1 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { PSfile = #1 \c_space_tl llx = \dim_to_decimal_in_bp:n \l__graphics_llx_dim \c_space_tl @@ -541,7 +540,7 @@ { \__graphics_backend_include_auxi:nn {#1} { epdf } } \cs_new_protected:Npn \__graphics_backend_include_auxi:nn #1#2 { - \__graphics_backend_include_auxii:xnn + \__graphics_backend_include_auxii:enn { \tl_if_empty:NF \l__graphics_pagebox_tl { : \l__graphics_pagebox_tl } @@ -558,17 +557,17 @@ { \int_if_exist:cTF { c__graphics_ #2#1 _int } { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:usexobj~@graphic \int_use:c { c__graphics_ #2#1 _int } } } { \__graphics_backend_include_auxiii:nnn {#2} {#1} {#3} } } -\cs_generate_variant:Nn \__graphics_backend_include_auxii:nnn { x } +\cs_generate_variant:Nn \__graphics_backend_include_auxii:nnn { e } \cs_new_protected:Npn \__graphics_backend_include_auxiii:nnn #1#2#3 { \int_gincr:N \g__graphics_track_int \int_const:cn { c__graphics_ #1#2 _int } { \g__graphics_track_int } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:#3~ @graphic \int_use:c { c__graphics_ #1#2 _int } ~ @@ -601,9 +600,9 @@ { \cs_new_eq:NN \__graphics_backend_get_pagecount:n \__graphics_get_pagecount:n } %% File: l3backend-pdf.dtx \box_new:N \l__pdf_internal_box -\cs_new_protected:Npx \__pdf_backend:n #1 +\cs_new_protected:Npe \__pdf_backend:n #1 { \__kernel_backend_literal:n { pdf: #1 } } -\cs_generate_variant:Nn \__pdf_backend:n { x } +\cs_generate_variant:Nn \__pdf_backend:n { e } \cs_new_protected:Npn \__pdf_backend_catalog_gput:nn #1#2 { \__pdf_backend:n { put ~ @catalog << /#1 ~ #2 >> } } \cs_new_protected:Npn \__pdf_backend_info_gput:nn #1#2 @@ -624,15 +623,15 @@ \use:c { __pdf_backend_object_write_ #2 :nn } { \__pdf_backend_object_ref:n {#1} } {#3} } -\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nne } \cs_new_protected:Npn \__pdf_backend_object_write_array:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { obj ~ #1 ~ [ ~ \exp_not:n {#2} ~ ] } } \cs_new_protected:Npn \__pdf_backend_object_write_dict:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { obj ~ #1 ~ << ~ \exp_not:n {#2} ~ >> } } \cs_new_protected:Npn \__pdf_backend_object_write_fstream:nn #1#2 @@ -641,7 +640,7 @@ { \__pdf_backend_object_write_stream:nnnn { } {#1} #2 } \cs_new_protected:Npn \__pdf_backend_object_write_stream:nnnn #1#2#3#4 { - \__pdf_backend:x + \__pdf_backend:e { #1 stream ~ #2 ~ ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >> @@ -650,11 +649,11 @@ \cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2 { \int_gincr:N \g__pdf_backend_object_int - \exp_args:Nnx \use:c { __pdf_backend_object_write_ #1 :nn } + \exp_args:Nne \use:c { __pdf_backend_object_write_ #1 :nn } { @pdf.obj \int_use:N \g__pdf_backend_object_int } {#2} } -\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx } +\cs_generate_variant:Nn \__pdf_backend_object_now:nn { ne } \cs_new:Npn \__pdf_backend_object_last: { @pdf.obj \int_use:N \g__pdf_backend_object_int } \cs_new:Npn \__pdf_backend_pageobject_ref:n #1 @@ -664,7 +663,7 @@ { \int_gincr:N \g__pdf_backend_object_int \int_gset_eq:NN \g__pdf_backend_annotation_int \g__pdf_backend_object_int - \__pdf_backend:x + \__pdf_backend:e { ann ~ @pdf.obj \int_use:N \g__pdf_backend_object_int \c_space_tl width ~ \dim_eval:n {#1} ~ @@ -680,10 +679,10 @@ { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } \cs_new_protected:Npn \__pdf_backend_link_begin_user:nnw #1#2 { \__pdf_backend_link_begin:n {#1#2} } -\cs_new_protected:Npx \__pdf_backend_link_begin:n #1 +\cs_new_protected:Npe \__pdf_backend_link_begin:n #1 { \exp_not:N \int_gincr:N \exp_not:N \g__pdf_backend_link_int - \__pdf_backend:x + \__pdf_backend:e { bann ~ @pdf.lnk @@ -700,10 +699,10 @@ \cs_new:Npn \__pdf_backend_link_last: { @pdf.lnk \int_use:N \g__pdf_backend_link_int } \cs_new_protected:Npn \__pdf_backend_link_margin:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~g~ \dim_eval:n {#1} } } \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { dest ~ ( \exp_not:n {#1} ) [ @@ -762,7 +761,7 @@ \__kernel_kern:n { -#1 } } \cs_new_protected:Npn \__pdf_backend_compresslevel:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~z~ \int_eval:n {#1} } } \cs_new_protected:Npn \__pdf_backend_compress_objects:n #1 { \bool_if:nF {#1} @@ -770,13 +769,13 @@ } \cs_new_protected:Npn \__pdf_backend_version_major_gset:n #1 { - \cs_gset:Npx \__pdf_backend_version_major: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:majorversion~ \__pdf_backend_version_major: } + \cs_gset:Npe \__pdf_backend_version_major: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:majorversion~ \__pdf_backend_version_major: } } \cs_new_protected:Npn \__pdf_backend_version_minor_gset:n #1 { - \cs_gset:Npx \__pdf_backend_version_minor: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:minorversion~ \__pdf_backend_version_minor: } + \cs_gset:Npe \__pdf_backend_version_minor: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:minorversion~ \__pdf_backend_version_minor: } } \cs_new:Npn \__pdf_backend_version_major: { 1 } \cs_new:Npn \__pdf_backend_version_minor: { 5 } @@ -808,7 +807,7 @@ \tl_new:N \l__opacity_backend_stroke_tl \cs_new_protected:Npn \__opacity_backend_select:n #1 { - \exp_args:Nx \__opacity_backend_select_aux:n + \exp_args:Ne \__opacity_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \__opacity_backend_select_aux:n #1 @@ -835,13 +834,13 @@ } \cs_new_protected:Npn \__opacity_backend_fill:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee { \fp_eval:n { min(max(0,#1),1) } } \l__opacity_backend_stroke_tl } \cs_new_protected:Npn \__opacity_backend_stroke:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee \l__opacity_backend_fill_tl { \fp_eval:n { min(max(0,#1),1) } } } @@ -863,7 +862,7 @@ \group_insert_after:N \__opacity_backend_reset: } } -\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx } +\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { ee } %% %% %% End of file `l3backend-dvipdfmx.def'. diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index 62287189df8..ede18214153 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2023-04-19}{} + {l3backend-dvips.def}{2023-10-10}{} {L3 backend support: dvips} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -45,7 +45,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } \cs_if_exist:NTF \@ifl@t@r { \@ifl@t@r \fmtversion { 2020-10-01 } @@ -58,10 +57,10 @@ { \cs_new_eq:NN \__kernel_backend_first_shipout:n \use:n } \cs_new_protected:Npn \__kernel_backend_literal_postscript:n #1 { \__kernel_backend_literal:n { ps:: #1 } } -\cs_generate_variant:Nn \__kernel_backend_literal_postscript:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_postscript:n { e } \cs_new_protected:Npn \__kernel_backend_postscript:n #1 { \__kernel_backend_literal:n { ps: SDict ~ begin ~ #1 ~ end } } -\cs_generate_variant:Nn \__kernel_backend_postscript:n { x } +\cs_generate_variant:Nn \__kernel_backend_postscript:n { e } \bool_if:NT \g__kernel_backend_header_bool { \__kernel_backend_first_shipout:n @@ -99,7 +98,7 @@ \cs_new_protected:Npn \__color_backend_reset: { \__kernel_backend_literal:n { color~pop } } \prop_new:N \g__color_backend_colorant_prop -\cs_new:Npx \__color_backend_devicen_colorants:n #1 +\cs_new:Npe \__color_backend_devicen_colorants:n #1 { \exp_not:N \tl_if_blank:nF {#1} { @@ -128,17 +127,17 @@ { \__color_backend_select:n { separation ~ #1 ~ #2 } } \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn \cs_new_protected:Npn \__color_backend_select_iccbased:nn #1#2 { } -\cs_new_protected:Npx \__color_backend_separation_init:nnnnn #1#2#3#4#5 +\cs_new_protected:Npe \__color_backend_separation_init:nnnnn #1#2#3#4#5 { \bool_if:NT \g__kernel_backend_header_bool { - \exp_args:Nx \__kernel_backend_first_shipout:n + \exp_not:N \exp_args:Ne \__kernel_backend_first_shipout:n { \exp_not:N \__color_backend_separation_init_aux:nnnnnn { \exp_not:N \int_use:N \g__color_model_int } {#1} {#2} {#3} {#4} {#5} } - \prop_gput:Nxx \exp_not:N \g__color_backend_colorant_prop + \prop_gput:Nee \exp_not:N \g__color_backend_colorant_prop { / \exp_not:N \str_convert_pdfname:n {#1} } { << ~ @@ -149,7 +148,7 @@ } } } -\cs_generate_variant:Nn \__color_backend_separation_init:nnnnn { nxx } +\cs_generate_variant:Nn \__color_backend_separation_init:nnnnn { nee } \cs_new_protected:Npn \__color_backend_separation_init_aux:nnnnnn #1#2#3#4#5#6 { \__kernel_backend_literal:e @@ -242,7 +241,7 @@ } \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 { - \__color_backend_separation_init:nxxnn + \__color_backend_separation_init:neenn {#2} { /CIEBasedABC ~ @@ -339,7 +338,7 @@ \__kernel_backend_literal_postscript:n { Resolution~72~div~VResolution~72~div~scale } \__kernel_backend_literal_postscript:n { DVImag~dup~scale } - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { 0 ~ \dim_to_decimal_in_bp:n { \box_dp:N #1 } ~ @@ -359,7 +358,7 @@ { \__kernel_backend_scope_begin: \__kernel_backend_align_begin: - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { \fp_compare:nNnTF {#2} = \c_zero_fp { 0 } @@ -374,7 +373,7 @@ { \__kernel_backend_scope_begin: \__kernel_backend_align_begin: - \__kernel_backend_literal_postscript:x + \__kernel_backend_literal_postscript:e { \fp_eval:n { round ( #2 , 5 ) } ~ \fp_eval:n { round ( #3 , 5 ) } ~ @@ -386,7 +385,7 @@ } %% File: l3backend-draw.dtx \cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_postscript:n -\cs_generate_variant:Nn \__draw_backend_literal:n { x } +\cs_generate_variant:Nn \__draw_backend_literal:n { e } \cs_new_protected:Npn \__draw_backend_begin: { \__kernel_backend_literal:n { ps::[begin] } @@ -403,7 +402,7 @@ { \__draw_backend_literal:n { restore } } \cs_new_protected:Npn \__draw_backend_moveto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ moveto @@ -411,7 +410,7 @@ } \cs_new_protected:Npn \__draw_backend_lineto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ lineto @@ -419,7 +418,7 @@ } \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#4} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ @@ -428,7 +427,7 @@ } \cs_new_protected:Npn \__draw_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -451,7 +450,7 @@ \__draw_backend_literal:n { grestore } \bool_if:NT \g__draw_draw_clip_bool { - \__draw_backend_literal:x + \__draw_backend_literal:e { \bool_if:NT \g__draw_draw_eor_bool { eo } clip @@ -467,14 +466,14 @@ } \cs_new_protected:Npn \__draw_backend_fill: { - \__draw_backend_literal:x + \__draw_backend_literal:e { \bool_if:NT \g__draw_draw_eor_bool { eo } fill } \bool_if:NT \g__draw_draw_clip_bool { - \__draw_backend_literal:x + \__draw_backend_literal:e { \bool_if:NT \g__draw_draw_eor_bool { eo } clip @@ -485,7 +484,7 @@ } \cs_new_protected:Npn \__draw_backend_fillstroke: { - \__draw_backend_literal:x + \__draw_backend_literal:e { \bool_if:NT \g__draw_draw_eor_bool { eo } fill @@ -496,7 +495,7 @@ \__draw_backend_literal:n { grestore } \bool_if:NT \g__draw_draw_clip_bool { - \__draw_backend_literal:x + \__draw_backend_literal:e { \bool_if:NT \g__draw_draw_eor_bool { eo } clip @@ -512,7 +511,7 @@ { \bool_if:NT \g__draw_draw_clip_bool { - \__draw_backend_literal:x + \__draw_backend_literal:e { \bool_if:NT \g__draw_draw_eor_bool { eo } clip @@ -523,7 +522,7 @@ } \cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { [ \exp_args:Nf \use:n @@ -536,7 +535,7 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \__draw_backend_linewidth:n #1 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ setlinewidth } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 @@ -599,7 +598,7 @@ } \cs_new_protected:Npn \__graphics_backend_include_eps:n #1 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { PSfile = #1 \c_space_tl llx = \dim_to_decimal_in_bp:n \l__graphics_llx_dim \c_space_tl @@ -615,7 +614,7 @@ \box_new:N \l__pdf_internal_box \cs_new_protected:Npn \__pdf_backend_pdfmark:n #1 { \__kernel_backend_postscript:n { mark #1 ~ pdfmark } } -\cs_generate_variant:Nn \__pdf_backend_pdfmark:n { x } +\cs_generate_variant:Nn \__pdf_backend_pdfmark:n { e } \cs_new_protected:Npn \__pdf_backend_catalog_gput:nn #1#2 { \__pdf_backend_pdfmark:n { { Catalog } << /#1 ~ #2 >> /PUT } } \cs_new_protected:Npn \__pdf_backend_info_gput:nn #1#2 @@ -636,10 +635,10 @@ { \__pdf_backend_object_ref:n {#1} } {#2} {#3} } -\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nne } \cs_new_protected:Npn \__pdf_backend_object_write_aux:nnn #1#2#3 { - \__pdf_backend_pdfmark:x + \__pdf_backend_pdfmark:e { /_objdef ~ #1 /type @@ -656,17 +655,17 @@ } \cs_new_protected:Npn \__pdf_backend_object_write_array:nn #1#2 { - \__pdf_backend_pdfmark:x + \__pdf_backend_pdfmark:e { #1 ~0~ [ ~ \exp_not:n {#2} ~ ] ~ /PUTINTERVAL } } \cs_new_protected:Npn \__pdf_backend_object_write_dict:nn #1#2 { - \__pdf_backend_pdfmark:x + \__pdf_backend_pdfmark:e { #1 << \exp_not:n {#2} >> /PUT } } \cs_new_protected:Npn \__pdf_backend_object_write_fstream:nn #1#2 { - \exp_args:Nx + \exp_args:Ne \__pdf_backend_object_write_fstream:nnn {#1} #2 } \cs_new_protected:Npn \__pdf_backend_object_write_fstream:nnn #1#2#3 @@ -681,7 +680,7 @@ } \cs_new_protected:Npn \__pdf_backend_object_write_stream:nn #1#2 { - \exp_args:Nx + \exp_args:Ne \__pdf_backend_object_write_stream:nnn {#1} #2 } \cs_new_protected:Npn \__pdf_backend_object_write_stream:nnn #1#2#3 @@ -699,7 +698,7 @@ { { pdf.obj \int_use:N \g__pdf_backend_object_int } } {#1} {#2} } -\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx } +\cs_generate_variant:Nn \__pdf_backend_object_now:nn { ne } \cs_new:Npn \__pdf_backend_object_last: { { pdf.obj \int_use:N \g__pdf_backend_object_int } } \cs_new:Npn \__pdf_backend_pageobject_ref:n #1 @@ -727,7 +726,7 @@ } \int_gincr:N \g__pdf_backend_object_int \int_gset_eq:NN \g__pdf_backend_annotation_int \g__pdf_backend_object_int - \__pdf_backend_pdfmark:x + \__pdf_backend_pdfmark:e { /_objdef { pdf.obj \int_use:N \g__pdf_backend_object_int } pdf.rect @@ -786,7 +785,7 @@ \hbox_set_end: \__pdf_backend_link_minima: \hbox_set:Nn \l__pdf_backend_model_box { Gg } - \exp_args:Nx \__pdf_backend_link_outerbox:n + \exp_args:Ne \__pdf_backend_link_outerbox:n { \int_if_odd:nTF { \value { page } } { \oddsidemargin } @@ -804,7 +803,7 @@ } \int_gincr:N \g__pdf_backend_object_int \int_gset_eq:NN \g__pdf_backend_link_int \g__pdf_backend_object_int - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { mark /_objdef { pdf.obj \int_use:N \g__pdf_backend_link_int } @@ -818,7 +817,7 @@ \cs_new_protected:Npn \__pdf_backend_link_minima: { \hbox_set:Nn \l__pdf_backend_model_box { Gg } - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.linkdp.pad ~ \dim_to_decimal:n @@ -846,7 +845,7 @@ } \cs_new_protected:Npn \__pdf_backend_link_outerbox:n #1 { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.outerbox [ @@ -886,9 +885,9 @@ { \tl_put_right:Nn \@makecol@hook { - \box_if_empty:NF \@cclv + \box_if_empty:NF \l_shipout_box { - \vbox_set:Nn \@cclv + \vbox_set:Nn \l_shipout_box { \__kernel_backend_postscript:n { @@ -896,7 +895,7 @@ { pdf.bordertracking.continue } if } - \vbox_unpack_drop:N \@cclv + \vbox_unpack_drop:N \l_shipout_box \__kernel_backend_postscript:n { pdf.bordertracking.endpage } } @@ -911,7 +910,7 @@ { { pdf.obj \int_use:N \g__pdf_backend_link_int } } \cs_new_protected:Npn \__pdf_backend_link_margin:n #1 { - \__kernel_backend_postscript:x + \__kernel_backend_postscript:e { /pdf.linkmargin { \dim_to_decimal:n {#1} ~ pdf.pt.dvi } def } @@ -919,7 +918,7 @@ \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2 { \__kernel_backend_postscript:n { pdf.dest.anchor } - \__pdf_backend_pdfmark:x + \__pdf_backend_pdfmark:e { /View [ @@ -1001,11 +1000,11 @@ } \cs_new_protected:Npn \__pdf_backend_version_major_gset:n #1 { - \cs_gset:Npx \__pdf_backend_version_major: { \int_eval:n {#1} } + \cs_gset:Npe \__pdf_backend_version_major: { \int_eval:n {#1} } } \cs_new_protected:Npn \__pdf_backend_version_minor_gset:n #1 { - \cs_gset:Npx \__pdf_backend_version_minor: { \int_eval:n {#1} } + \cs_gset:Npe \__pdf_backend_version_minor: { \int_eval:n {#1} } } \cs_new:Npn \__pdf_backend_version_major: { -1 } \cs_new:Npn \__pdf_backend_version_minor: { -1 } @@ -1026,7 +1025,7 @@ %% File: l3backend-opacity.dtx \cs_new_protected:Npn \__opacity_backend_select:n #1 { - \exp_args:Nx \__opacity_backend_select_aux:n + \exp_args:Ne \__opacity_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \__opacity_backend_select_aux:n #1 @@ -1036,14 +1035,14 @@ } \cs_new_protected:Npn \__opacity_backend_fill:n #1 { - \__opacity_backend:xnn + \__opacity_backend:enn { \fp_eval:n { min(max(0,#1),1) } } { fill } { ca } } \cs_new_protected:Npn \__opacity_backend_stroke:n #1 { - \__opacity_backend:xnn + \__opacity_backend:enn { \fp_eval:n { min(max(0,#1),1) } } { stroke } { CA } @@ -1067,7 +1066,7 @@ ifelse } } -\cs_generate_variant:Nn \__opacity_backend:nnn { x } +\cs_generate_variant:Nn \__opacity_backend:nnn { e } %% %% %% End of file `l3backend-dvips.def'. diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index def201f4e9d..3f087c52655 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2023-04-19}{} + {l3backend-dvisvgm.def}{2023-10-10}{} {L3 backend support: dvisvgm} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -45,7 +45,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } \cs_if_exist:NTF \@ifl@t@r { \@ifl@t@r \fmtversion { 2020-10-01 } @@ -58,7 +57,7 @@ { \cs_new_eq:NN \__kernel_backend_first_shipout:n \use:n } \cs_new_protected:Npn \__kernel_backend_literal_svg:n #1 { \__kernel_backend_literal:n { dvisvgm:raw~ #1 { ?nl } } } -\cs_generate_variant:Nn \__kernel_backend_literal_svg:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_svg:n { e } \int_new:N \g__kernel_backend_scope_int \int_new:N \l__kernel_backend_scope_int \cs_new_protected:Npn \__kernel_backend_scope_begin: @@ -89,13 +88,13 @@ \group_begin: \int_gset:Nn \g__kernel_backend_scope_int { 1 } } -\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { x } +\cs_generate_variant:Nn \__kernel_backend_scope_begin:n { e } \cs_new_protected:Npn \__kernel_backend_scope:n #1 { \__kernel_backend_literal_svg:n { <g ~ #1 > } \int_gincr:N \g__kernel_backend_scope_int } -\cs_generate_variant:Nn \__kernel_backend_scope:n { x } +\cs_generate_variant:Nn \__kernel_backend_scope:n { e } %% File: l3backend-color.dtx \cs_new_protected:Npn \__color_backend_select_cmyk:n #1 { \__color_backend_select:n { cmyk ~ #1 } } @@ -117,7 +116,7 @@ \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnnnnn #1#2#3 { } \cs_new_protected:Npn \__color_backend_select_iccbased:nn #1#2 { - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { <style> @color-profile ~ @@ -146,7 +145,7 @@ \cs_new_protected:Npn \__color_backend_stroke_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop { - \use:x + \use:e { \__color_backend:nnn { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } @@ -156,7 +155,7 @@ } \cs_new_protected:Npn \__color_backend_stroke_gray:n #1 { - \use:x + \use:e { \__color_backend_stroke_gray_aux:n { \fp_eval:n { 100 * (#1) } } @@ -169,7 +168,7 @@ \cs_new_protected:Npn \__color_backend_stroke_rgb:w #1 ~ #2 ~ #3 \s__color_stop { - \use:x + \use:e { \__color_backend:nnn { \fp_eval:n { 100 * (#1) } } @@ -177,7 +176,7 @@ { \fp_eval:n { 100 * (#3) } } } } -\cs_new_protected:Npx \__color_backend:nnn #1#2#3 +\cs_new_protected:Npe \__color_backend:nnn #1#2#3 { \__kernel_backend_scope:n { @@ -204,9 +203,9 @@ \cs_new_protected:Npn \__box_backend_clip:N #1 { \int_gincr:N \g__kernel_clip_path_int - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > } - \__kernel_backend_literal_svg:x + \__kernel_backend_literal_svg:e { < path ~ d = @@ -233,7 +232,7 @@ scale ( 1 , -1 ) " } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url ( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int ) " @@ -253,7 +252,7 @@ \int_new:N \g__kernel_clip_path_int \cs_new_protected:Npn \__box_backend_rotate:Nn #1#2 { - \__kernel_backend_scope_begin:x + \__kernel_backend_scope_begin:e { transform = " @@ -266,7 +265,7 @@ } \cs_new_protected:Npn \__box_backend_scale:Nnn #1#2#3 { - \__kernel_backend_scope_begin:x + \__kernel_backend_scope_begin:e { transform = " @@ -285,7 +284,7 @@ } %% File: l3backend-draw.dtx \cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_svg:n -\cs_generate_variant:Nn \__draw_backend_literal:n { x } +\cs_generate_variant:Nn \__draw_backend_literal:n { e } \cs_new_eq:NN \__draw_backend_scope_begin: \__kernel_backend_scope_begin: \cs_new_eq:NN \__draw_backend_scope_end: \__kernel_backend_scope_end: \cs_new_protected:Npn \__draw_backend_begin: @@ -327,7 +326,7 @@ } \cs_new_protected:Npn \__draw_backend_add_to_path:n #1 { - \tl_gset:Nx \g__draw_backend_path_tl + \tl_gset:Ne \g__draw_backend_path_tl { \g__draw_backend_path_tl \tl_if_empty:NF \g__draw_backend_path_tl { \c_space_tl } @@ -346,7 +345,7 @@ \bool_if:NTF \g__draw_draw_clip_bool { \int_gincr:N \g__kernel_clip_path_int - \__draw_backend_literal:x + \__draw_backend_literal:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } @@ -358,14 +357,14 @@ #1 /> } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" } } { - \__draw_backend_literal:x + \__draw_backend_literal:e { <path ~ d=" \g__draw_backend_path_tl " ~ #1 /> } } \tl_gclear:N \g__draw_backend_path_tl @@ -391,14 +390,14 @@ \bool_if:NT \g__draw_draw_clip_bool { \int_gincr:N \g__kernel_clip_path_int - \__draw_backend_literal:x + \__draw_backend_literal:e { < clipPath~id = " l3cp \int_use:N \g__kernel_clip_path_int " > { ?nl } <path~d=" \g__draw_backend_path_tl "/> { ?nl } < /clipPath > } - \__kernel_backend_scope:x + \__kernel_backend_scope:e { clip-path = "url( \c_hash_str l3cp \int_use:N \g__kernel_clip_path_int)" @@ -409,7 +408,7 @@ } \cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2 { - \use:x + \use:e { \__draw_backend_dash_aux:nn { \clist_map_function:nN {#1} \__draw_backend_dash:n } @@ -420,7 +419,7 @@ { , \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \__draw_backend_dash_aux:nn #1#2 { - \__kernel_backend_scope:x + \__kernel_backend_scope:e { stroke-dasharray = " @@ -432,9 +431,9 @@ } } \cs_new_protected:Npn \__draw_backend_linewidth:n #1 - { \__kernel_backend_scope:x { stroke-width=" \dim_to_decimal:n {#1} " } } + { \__kernel_backend_scope:e { stroke-width=" \dim_to_decimal:n {#1} " } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__kernel_backend_scope:x { stroke-miterlimit=" #1 " } } + { \__kernel_backend_scope:e { stroke-miterlimit=" #1 " } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__kernel_backend_scope:n { stroke-linecap="butt" } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -527,10 +526,10 @@ } \cs_new_protected:Npn \__graphics_backend_getbb_svg_auxi:nNn #1#2#3 { - \use:x + \use:e { \cs_set_protected:Npn \__graphics_backend_getbb_svg_auxii:w - ####1 \tl_to_str:n {#1} = ####2 \tl_to_str:n {#1} = ####3 + ##1 \tl_to_str:n {#1} = ##2 \tl_to_str:n {#1} = ##3 \s__graphics_stop } { @@ -549,7 +548,7 @@ ##2 \s__graphics_stop } } - \use:x + \use:e { \__graphics_backend_getbb_svg_auxii:w #3 \tl_to_str:n {#1} = \tl_to_str:n {#1} = @@ -596,7 +595,7 @@ { \__graphics_backend_include:nn { pdffile } {#1} } \cs_new_protected:Npn \__graphics_backend_include:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { #1 = #2 \c_space_tl llx = \dim_to_decimal_in_bp:n \l__graphics_llx_dim \c_space_tl @@ -611,7 +610,7 @@ { \hbox:n { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { dvisvgm:img~ \dim_to_decimal:n { \l__graphics_urx_dim } ~ @@ -635,7 +634,7 @@ \cs_new_protected:Npn \__pdf_backend_link_begin_user:nnw #1#2 { } \cs_new_protected:Npn \__pdf_backend_link_begin:nnnw #1#2#3 { } \cs_new_protected:Npn \__pdf_backend_link_end: { } -\cs_new:Npx \__pdf_backend_link_last: { } +\cs_new:Npe \__pdf_backend_link_last: { } \cs_new_protected:Npn \__pdf_backend_link_margin:n #1 { } \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2 { } \cs_new_protected:Npn \__pdf_backend_destination:nnnn #1#2#3#4 { } @@ -644,9 +643,9 @@ \cs_new_protected:Npn \__pdf_backend_object_new:nn #1 { } \cs_new:Npn \__pdf_backend_object_ref:n #1 { } \cs_new_protected:Npn \__pdf_backend_object_write:nnn #1#2#3 { } -\cs_new_protected:Npn \__pdf_backend_object_write:nnx #1#2#3 { } +\cs_new_protected:Npn \__pdf_backend_object_write:nne #1#2#3 { } \cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2 { } -\cs_new_protected:Npn \__pdf_backend_object_now:nx #1#2 { } +\cs_new_protected:Npn \__pdf_backend_object_now:ne #1#2 { } \cs_new:Npn \__pdf_backend_object_last: { } \cs_new:Npn \__pdf_backend_pageobject_ref:n #1 { } \cs_new_protected:Npn \__pdf_backend_compresslevel:n #1 { } @@ -666,7 +665,7 @@ \cs_new_protected:Npn \__opacity_backend_stroke:n #1 { \__opacity_backend:nn { {#1} } { stroke- } } \cs_new_protected:Npn \__opacity_backend:nn #1#2 - { \__kernel_backend_scope:x { #2 opacity = " \fp_eval:n { min(max(0,#1),1) } " } } + { \__kernel_backend_scope:e { #2 opacity = " \fp_eval:n { min(max(0,#1),1) } " } } %% %% %% End of file `l3backend-dvisvgm.def'. diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def index 040c5415daf..4207e02855e 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-luatex.def}{2023-04-19}{} + {l3backend-luatex.def}{2023-10-10}{} {L3 backend support: PDF output (LuaTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -45,7 +45,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } \cs_if_exist:NTF \@ifl@t@r { \@ifl@t@r \fmtversion { 2020-10-01 } @@ -61,12 +60,17 @@ \tex_pdfextension:D literal { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } \cs_new_protected:Npn \__kernel_backend_literal_page:n #1 { \tex_pdfextension:D literal ~ page { \exp_not:n {#1} } } +\cs_new_protected:Npn \__kernel_backend_literal_page:e #1 + { + \tex_pdfextension:D literal ~ + page {#1} + } \cs_new_protected:Npn \__kernel_backend_scope_begin: { \tex_pdfextension:D save \scan_stop: @@ -80,7 +84,7 @@ \tex_pdfextension:D setmatrix { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_matrix:n { x } +\cs_generate_variant:Nn \__kernel_backend_matrix:n { e } %% File: l3backend-color.dtx \int_new:N \l__color_backend_stack_int \cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3 @@ -121,7 +125,7 @@ \cs_new_protected:Npn \__color_backend_reset: { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int } \prop_new:N \g__color_backend_colorant_prop -\cs_new:Npx \__color_backend_devicen_colorants:n #1 +\cs_new:Npe \__color_backend_devicen_colorants:n #1 { \exp_not:N \tl_if_blank:nF {#1} { @@ -156,7 +160,7 @@ { \cs_if_exist_p:N \pdfmanagement_if_active_p: } { \pdfmanagement_if_active_p: } { - \use:x + \use:e { \pdfmanagement_add:nnn { Page / Resources / ColorSpace } @@ -167,7 +171,7 @@ } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { - \pdf_object_unnamed_write:nx { dict } + \pdf_object_unnamed_write:ne { dict } { /FunctionType ~ 2 /Domain ~ [0 ~ 1] @@ -175,19 +179,19 @@ /C0 ~ [#4] ~ /C1 ~ [#5] /N ~ 1 } - \exp_args:Nx \__color_backend_separation_init:nn + \exp_args:Ne \__color_backend_separation_init:nn { \str_convert_pdfname:n {#1} } {#2} \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } \cs_new_protected:Npn \__color_backend_separation_init:nn #1#2 { - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: } } - \prop_gput:Nnx \g__color_backend_colorant_prop { /#1 } + \prop_gput:Nne \g__color_backend_colorant_prop { /#1 } { \pdf_object_ref_last: } } \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 @@ -195,7 +199,7 @@ \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } { \pdf_object_new:n { __color_illuminant_CIELAB_ #1 } - \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nne { __color_illuminant_CIELAB_ #1 } { array } { /Lab ~ << @@ -214,7 +218,7 @@ } \cs_new_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { - \pdf_object_unnamed_write:nx { stream } + \pdf_object_unnamed_write:ne { stream } { { /FunctionType ~ 4 ~ @@ -236,7 +240,7 @@ } { {#3} } } - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } @@ -261,7 +265,7 @@ \pdf_object_if_exist:nF { __color_icc_ #1 } { \pdf_object_new:n { __color_icc_ #1 } - \pdf_object_write:nnx { __color_icc_ #1 } { fstream } + \pdf_object_write:nne { __color_icc_ #1 } { fstream } { { /N ~ \exp_not:n { #2 } ~ @@ -270,7 +274,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } @@ -285,7 +289,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { Default #2 } } @@ -326,7 +330,7 @@ \cs_new_protected:Npn \__box_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -348,7 +352,7 @@ \fp_compare:nNnT \l__box_backend_cos_fp = \c_zero_fp { \fp_zero:N \l__box_backend_cos_fp } \fp_set:Nn \l__box_backend_sin_fp { round ( sind ( #2 ) , 5 ) } - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_use:N \l__box_backend_cos_fp \c_space_tl \fp_compare:nNnTF \l__box_backend_sin_fp = \c_zero_fp @@ -369,7 +373,7 @@ \cs_new_protected:Npn \__box_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_eval:n { round ( #2 , 5 ) } ~ 0~0~ @@ -380,7 +384,7 @@ } %% File: l3backend-draw.dtx \cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_pdf:n -\cs_generate_variant:Nn \__draw_backend_literal:n { x } +\cs_generate_variant:Nn \__draw_backend_literal:n { e } \cs_new_protected:Npn \__draw_backend_begin: { \__draw_backend_scope_begin: } \cs_new_protected:Npn \__draw_backend_end: @@ -389,17 +393,17 @@ \cs_new_eq:NN \__draw_backend_scope_end: \__kernel_backend_scope_end: \cs_new_protected:Npn \__draw_backend_moveto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m } } \cs_new_protected:Npn \__draw_backend_lineto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l } } \cs_new_protected:Npn \__draw_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -409,7 +413,7 @@ } \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -429,24 +433,24 @@ { \__draw_backend_literal:n { s } } \cs_new_protected:Npn \__draw_backend_fill: { - \__draw_backend_literal:x + \__draw_backend_literal:e { f \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_fillstroke: { - \__draw_backend_literal:x + \__draw_backend_literal:e { B \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_clip: { - \__draw_backend_literal:x + \__draw_backend_literal:e { W \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_discardpath: { \__draw_backend_literal:n { n } } \cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { [ \exp_args:Nf \use:n @@ -459,11 +463,11 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \__draw_backend_linewidth:n #1 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { #1 ~ M } } + { \__draw_backend_literal:e { #1 ~ M } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -510,7 +514,7 @@ { \int_zero:N \l__graphics_page_int \tl_clear:N \l__graphics_pagebox_tl - \tl_set:Nx \l__graphics_attr_tl + \tl_set:Ne \l__graphics_attr_tl { \tl_if_empty:NF \l__graphics_decodearray_str { :D \l__graphics_decodearray_str } @@ -527,7 +531,7 @@ { \tl_clear:N \l__graphics_decodearray_str \bool_set_false:N \l__graphics_interpolate_bool - \tl_set:Nx \l__graphics_attr_tl + \tl_set:Ne \l__graphics_attr_tl { : \l__graphics_pagebox_tl \int_compare:nNnT \l__graphics_page_int > 1 @@ -539,7 +543,7 @@ } \cs_new_protected:Npn \__graphics_backend_getbb_auxi:n #1 { - \__graphics_bb_restore:xF { #1 \l__graphics_attr_tl } + \__graphics_bb_restore:eF { #1 \l__graphics_attr_tl } { \__graphics_backend_getbb_auxii:n {#1} } } \cs_new_protected:Npn \__graphics_backend_getbb_auxii:n #1 @@ -548,7 +552,7 @@ { \__graphics_backend_dequote:w #1 " #1 " \s__graphics_stop } \int_const:cn { c__graphics_ #1 \l__graphics_attr_tl _int } { \tex_the:D \tex_pdflastximage:D } - \__graphics_bb_save:x { #1 \l__graphics_attr_tl } + \__graphics_bb_save:e { #1 \l__graphics_attr_tl } } \cs_new_protected:Npn \__graphics_backend_getbb_auxiii:n #1 { @@ -599,7 +603,7 @@ \l__graphics_backend_dir_str \l__graphics_backend_name_str \l__graphics_backend_ext_str - \exp_args:Nx \__graphics_backend_getbb_eps:nn + \exp_args:Ne \__graphics_backend_getbb_eps:nn { \exp_args:Ne \__kernel_file_name_quote:n { @@ -625,7 +629,7 @@ { \file_parse_full_name:nNNN {#1} \l__graphics_backend_dir_str \l__graphics_backend_name_str \l__graphics_backend_ext_str - \exp_args:Nx \__graphics_backend_include_pdf:n + \exp_args:Ne \__graphics_backend_include_pdf:n { \exp_args:Ne \__kernel_file_name_quote:n { @@ -653,7 +657,7 @@ depth ~ \dim_eval:n {#3} ~ {#4} } -\cs_new:Npx \__pdf_backend_annotation_last: +\cs_new:Npe \__pdf_backend_annotation_last: { \exp_not:N \int_value:w \exp_not:N \tex_pdffeedback:D lastannot ~ @@ -673,7 +677,7 @@ { \tex_pdfextension:D endlink \scan_stop: } -\cs_new:Npx \__pdf_backend_link_last: +\cs_new:Npe \__pdf_backend_link_last: { \exp_not:N \int_value:w \exp_not:N \tex_pdffeedback:D lastlink ~ @@ -758,7 +762,7 @@ } } } -\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nne } \cs_new:Npn \__pdf_exp_not_i:nn #1#2 { \exp_not:n {#1} } \cs_new:Npn \__pdf_exp_not_ii:nn #1#2 { \exp_not:n {#2} } \cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2 @@ -766,14 +770,14 @@ \tex_immediate:D \tex_pdfextension:D obj ~ \__pdf_backend_object_write:nn {#1} {#2} } -\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx } -\cs_new:Npx \__pdf_backend_object_last: +\cs_generate_variant:Nn \__pdf_backend_object_now:nn { ne } +\cs_new:Npe \__pdf_backend_object_last: { \exp_not:N \int_value:w \exp_not:N \tex_pdffeedback:D lastobj ~ \c_space_tl 0 ~ R } -\cs_new:Npx \__pdf_backend_pageobject_ref:n #1 +\cs_new:Npe \__pdf_backend_pageobject_ref:n #1 { \exp_not:N \int_value:w \exp_not:N \tex_pdffeedback:D pageref @@ -797,7 +801,7 @@ \tex_pdfvariable:D objcompresslevel #1 \scan_stop: } -\cs_new_protected:Npx \__pdf_backend_version_major_gset:n #1 +\cs_new_protected:Npe \__pdf_backend_version_major_gset:n #1 { \int_compare:nNnT \tex_luatexversion:D > { 106 } { @@ -811,7 +815,7 @@ \tex_pdfvariable:D minorversion \int_eval:n {#1} \scan_stop: } -\cs_new:Npx \__pdf_backend_version_major: +\cs_new:Npe \__pdf_backend_version_major: { \int_compare:nNnTF \tex_luatexversion:D > { 106 } { \exp_not:N \tex_the:D \tex_pdfvariable:D majorversion } @@ -845,7 +849,7 @@ \tl_new:N \l__opacity_backend_stroke_tl \cs_new_protected:Npn \__opacity_backend_select:n #1 { - \exp_args:Nx \__opacity_backend_select_aux:n + \exp_args:Ne \__opacity_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \__opacity_backend_select_aux:n #1 @@ -871,13 +875,13 @@ } \cs_new_protected:Npn \__opacity_backend_fill:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee { \fp_eval:n { min(max(0,#1),1) } } \l__opacity_backend_stroke_tl } \cs_new_protected:Npn \__opacity_backend_stroke:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee \l__opacity_backend_fill_tl { \fp_eval:n { min(max(0,#1),1) } } } @@ -899,7 +903,7 @@ \group_insert_after:N \__opacity_backend_reset: } } -\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx } +\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { ee } %% %% %% End of file `l3backend-luatex.def'. diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def index 1592155c3c0..d5c64bc74a4 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdftex.def}{2023-04-19}{} + {l3backend-pdftex.def}{2023-10-10}{} {L3 backend support: PDF output (pdfTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -45,7 +45,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } \cs_if_exist:NTF \@ifl@t@r { \@ifl@t@r \fmtversion { 2020-10-01 } @@ -61,12 +60,17 @@ \tex_pdfliteral:D { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } \cs_new_protected:Npn \__kernel_backend_literal_page:n #1 { \tex_pdfliteral:D page { \exp_not:n {#1} } } +\cs_new_protected:Npn \__kernel_backend_literal_page:e #1 + { + \tex_pdfliteral:D + page {#1} + } \cs_new_protected:Npn \__kernel_backend_scope_begin: { \tex_pdfsave:D @@ -80,7 +84,7 @@ \tex_pdfsetmatrix:D { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_matrix:n { x } +\cs_generate_variant:Nn \__kernel_backend_matrix:n { e } %% File: l3backend-color.dtx \int_new:N \l__color_backend_stack_int \cs_new_protected:Npn \__kernel_color_backend_stack_init:Nnn #1#2#3 @@ -121,7 +125,7 @@ \cs_new_protected:Npn \__color_backend_reset: { \__kernel_color_backend_stack_pop:n \l__color_backend_stack_int } \prop_new:N \g__color_backend_colorant_prop -\cs_new:Npx \__color_backend_devicen_colorants:n #1 +\cs_new:Npe \__color_backend_devicen_colorants:n #1 { \exp_not:N \tl_if_blank:nF {#1} { @@ -156,7 +160,7 @@ { \cs_if_exist_p:N \pdfmanagement_if_active_p: } { \pdfmanagement_if_active_p: } { - \use:x + \use:e { \pdfmanagement_add:nnn { Page / Resources / ColorSpace } @@ -167,7 +171,7 @@ } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { - \pdf_object_unnamed_write:nx { dict } + \pdf_object_unnamed_write:ne { dict } { /FunctionType ~ 2 /Domain ~ [0 ~ 1] @@ -175,19 +179,19 @@ /C0 ~ [#4] ~ /C1 ~ [#5] /N ~ 1 } - \exp_args:Nx \__color_backend_separation_init:nn + \exp_args:Ne \__color_backend_separation_init:nn { \str_convert_pdfname:n {#1} } {#2} \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } \cs_new_protected:Npn \__color_backend_separation_init:nn #1#2 { - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: } } - \prop_gput:Nnx \g__color_backend_colorant_prop { /#1 } + \prop_gput:Nne \g__color_backend_colorant_prop { /#1 } { \pdf_object_ref_last: } } \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 @@ -195,7 +199,7 @@ \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } { \pdf_object_new:n { __color_illuminant_CIELAB_ #1 } - \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nne { __color_illuminant_CIELAB_ #1 } { array } { /Lab ~ << @@ -214,7 +218,7 @@ } \cs_new_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { - \pdf_object_unnamed_write:nx { stream } + \pdf_object_unnamed_write:ne { stream } { { /FunctionType ~ 4 ~ @@ -236,7 +240,7 @@ } { {#3} } } - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } @@ -261,7 +265,7 @@ \pdf_object_if_exist:nF { __color_icc_ #1 } { \pdf_object_new:n { __color_icc_ #1 } - \pdf_object_write:nnx { __color_icc_ #1 } { fstream } + \pdf_object_write:nne { __color_icc_ #1 } { fstream } { { /N ~ \exp_not:n { #2 } ~ @@ -270,7 +274,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } @@ -285,7 +289,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { Default #2 } } @@ -325,7 +329,7 @@ \cs_new_protected:Npn \__box_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -347,7 +351,7 @@ \fp_compare:nNnT \l__box_backend_cos_fp = \c_zero_fp { \fp_zero:N \l__box_backend_cos_fp } \fp_set:Nn \l__box_backend_sin_fp { round ( sind ( #2 ) , 5 ) } - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_use:N \l__box_backend_cos_fp \c_space_tl \fp_compare:nNnTF \l__box_backend_sin_fp = \c_zero_fp @@ -368,7 +372,7 @@ \cs_new_protected:Npn \__box_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_matrix:x + \__kernel_backend_matrix:e { \fp_eval:n { round ( #2 , 5 ) } ~ 0~0~ @@ -379,7 +383,7 @@ } %% File: l3backend-draw.dtx \cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_pdf:n -\cs_generate_variant:Nn \__draw_backend_literal:n { x } +\cs_generate_variant:Nn \__draw_backend_literal:n { e } \cs_new_protected:Npn \__draw_backend_begin: { \__draw_backend_scope_begin: } \cs_new_protected:Npn \__draw_backend_end: @@ -388,17 +392,17 @@ \cs_new_eq:NN \__draw_backend_scope_end: \__kernel_backend_scope_end: \cs_new_protected:Npn \__draw_backend_moveto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m } } \cs_new_protected:Npn \__draw_backend_lineto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l } } \cs_new_protected:Npn \__draw_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -408,7 +412,7 @@ } \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -428,24 +432,24 @@ { \__draw_backend_literal:n { s } } \cs_new_protected:Npn \__draw_backend_fill: { - \__draw_backend_literal:x + \__draw_backend_literal:e { f \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_fillstroke: { - \__draw_backend_literal:x + \__draw_backend_literal:e { B \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_clip: { - \__draw_backend_literal:x + \__draw_backend_literal:e { W \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_discardpath: { \__draw_backend_literal:n { n } } \cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { [ \exp_args:Nf \use:n @@ -458,11 +462,11 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \__draw_backend_linewidth:n #1 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { #1 ~ M } } + { \__draw_backend_literal:e { #1 ~ M } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -509,7 +513,7 @@ { \int_zero:N \l__graphics_page_int \tl_clear:N \l__graphics_pagebox_tl - \tl_set:Nx \l__graphics_attr_tl + \tl_set:Ne \l__graphics_attr_tl { \tl_if_empty:NF \l__graphics_decodearray_str { :D \l__graphics_decodearray_str } @@ -526,7 +530,7 @@ { \tl_clear:N \l__graphics_decodearray_str \bool_set_false:N \l__graphics_interpolate_bool - \tl_set:Nx \l__graphics_attr_tl + \tl_set:Ne \l__graphics_attr_tl { : \l__graphics_pagebox_tl \int_compare:nNnT \l__graphics_page_int > 1 @@ -538,7 +542,7 @@ } \cs_new_protected:Npn \__graphics_backend_getbb_auxi:n #1 { - \__graphics_bb_restore:xF { #1 \l__graphics_attr_tl } + \__graphics_bb_restore:eF { #1 \l__graphics_attr_tl } { \__graphics_backend_getbb_auxii:n {#1} } } \cs_new_protected:Npn \__graphics_backend_getbb_auxii:n #1 @@ -547,7 +551,7 @@ { \__graphics_backend_dequote:w #1 " #1 " \s__graphics_stop } \int_const:cn { c__graphics_ #1 \l__graphics_attr_tl _int } { \tex_the:D \tex_pdflastximage:D } - \__graphics_bb_save:x { #1 \l__graphics_attr_tl } + \__graphics_bb_save:e { #1 \l__graphics_attr_tl } } \cs_new_protected:Npn \__graphics_backend_getbb_auxiii:n #1 { @@ -598,7 +602,7 @@ \l__graphics_backend_dir_str \l__graphics_backend_name_str \l__graphics_backend_ext_str - \exp_args:Nx \__graphics_backend_getbb_eps:nn + \exp_args:Ne \__graphics_backend_getbb_eps:nn { \exp_args:Ne \__kernel_file_name_quote:n { @@ -624,7 +628,7 @@ { \file_parse_full_name:nNNN {#1} \l__graphics_backend_dir_str \l__graphics_backend_name_str \l__graphics_backend_ext_str - \exp_args:Nx \__graphics_backend_include_pdf:n + \exp_args:Ne \__graphics_backend_include_pdf:n { \exp_args:Ne \__kernel_file_name_quote:n { @@ -652,7 +656,7 @@ depth ~ \dim_eval:n {#3} ~ {#4} } -\cs_new:Npx \__pdf_backend_annotation_last: +\cs_new:Npe \__pdf_backend_annotation_last: { \exp_not:N \int_value:w \exp_not:N \tex_pdflastannot:D @@ -672,7 +676,7 @@ { \tex_pdfendlink:D } -\cs_new:Npx \__pdf_backend_link_last: +\cs_new:Npe \__pdf_backend_link_last: { \exp_not:N \int_value:w \exp_not:N \tex_pdflastlink:D @@ -757,7 +761,7 @@ } } } -\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nne } \cs_new:Npn \__pdf_exp_not_i:nn #1#2 { \exp_not:n {#1} } \cs_new:Npn \__pdf_exp_not_ii:nn #1#2 { \exp_not:n {#2} } \cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2 @@ -765,14 +769,14 @@ \tex_immediate:D \tex_pdfobj:D \__pdf_backend_object_write:nn {#1} {#2} } -\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx } -\cs_new:Npx \__pdf_backend_object_last: +\cs_generate_variant:Nn \__pdf_backend_object_now:nn { ne } +\cs_new:Npe \__pdf_backend_object_last: { \exp_not:N \int_value:w \exp_not:N \tex_pdflastobj:D \c_space_tl 0 ~ R } -\cs_new:Npx \__pdf_backend_pageobject_ref:n #1 +\cs_new:Npe \__pdf_backend_pageobject_ref:n #1 { \exp_not:N \int_value:w \exp_not:N \tex_pdfpageref:D @@ -796,7 +800,7 @@ \tex_pdfobjcompresslevel:D #1 \scan_stop: } -\cs_new_protected:Npx \__pdf_backend_version_major_gset:n #1 +\cs_new_protected:Npe \__pdf_backend_version_major_gset:n #1 { \cs_if_exist:NT \tex_pdfmajorversion:D { @@ -810,7 +814,7 @@ \tex_pdfminorversion:D \int_eval:n {#1} \scan_stop: } -\cs_new:Npx \__pdf_backend_version_major: +\cs_new:Npe \__pdf_backend_version_major: { \cs_if_exist:NTF \tex_pdfmajorversion:D { \exp_not:N \tex_the:D \tex_pdfmajorversion:D } @@ -844,7 +848,7 @@ \tl_new:N \l__opacity_backend_stroke_tl \cs_new_protected:Npn \__opacity_backend_select:n #1 { - \exp_args:Nx \__opacity_backend_select_aux:n + \exp_args:Ne \__opacity_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \__opacity_backend_select_aux:n #1 @@ -870,13 +874,13 @@ } \cs_new_protected:Npn \__opacity_backend_fill:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee { \fp_eval:n { min(max(0,#1),1) } } \l__opacity_backend_stroke_tl } \cs_new_protected:Npn \__opacity_backend_stroke:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee \l__opacity_backend_fill_tl { \fp_eval:n { min(max(0,#1),1) } } } @@ -898,7 +902,7 @@ \group_insert_after:N \__opacity_backend_reset: } } -\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx } +\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { ee } %% %% %% End of file `l3backend-pdftex.def'. diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def index 1f9966125c4..acdc2e7942f 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xetex.def}{2023-04-19}{} + {l3backend-xetex.def}{2023-10-10}{} {L3 backend support: XeTeX} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -45,7 +45,6 @@ \cs_new_eq:NN \__kernel_backend_literal:e \tex_special:D \cs_new_protected:Npn \__kernel_backend_literal:n #1 { \__kernel_backend_literal:e { \exp_not:n {#1} } } -\cs_generate_variant:Nn \__kernel_backend_literal:n { x } \cs_if_exist:NTF \@ifl@t@r { \@ifl@t@r \fmtversion { 2020-10-01 } @@ -58,7 +57,7 @@ { \cs_new_eq:NN \__kernel_backend_first_shipout:n \use:n } \cs_new_protected:Npn \__kernel_backend_literal_pdf:n #1 { \__kernel_backend_literal:n { pdf:literal~ #1 } } -\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { x } +\cs_generate_variant:Nn \__kernel_backend_literal_pdf:n { e } \cs_new_protected:Npn \__kernel_backend_literal_page:n #1 { \__kernel_backend_literal:n { pdf:literal~direct~ #1 } } \cs_new_protected:Npn \__kernel_backend_scope_begin: @@ -82,7 +81,7 @@ \msg_new:nnn { color } { unknown-named-color } { Named~color~'#1'~is~not~known. } \prop_new:N \g__color_backend_colorant_prop -\cs_new:Npx \__color_backend_devicen_colorants:n #1 +\cs_new:Npe \__color_backend_devicen_colorants:n #1 { \exp_not:N \tl_if_blank:nF {#1} { @@ -108,7 +107,7 @@ \__color_backend_devicen_colorants:w } \cs_new_protected:Npn \__color_backend_select_separation:nn #1#2 - { \__kernel_backend_literal:x { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } + { \__kernel_backend_literal:e { pdf : bc ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_eq:NN \__color_backend_select_devicen:nn \__color_backend_select_separation:nn \cs_new_eq:NN \__color_backend_select_iccbased:nn \__color_backend_select_separation:nn \cs_new_protected:Npn \__color_backend_init_resource:n #1 @@ -116,7 +115,7 @@ } \cs_new_protected:Npn \__color_backend_separation_init:nnnnn #1#2#3#4#5 { - \pdf_object_unnamed_write:nx { dict } + \pdf_object_unnamed_write:ne { dict } { /FunctionType ~ 2 /Domain ~ [0 ~ 1] @@ -124,19 +123,19 @@ /C0 ~ [#4] ~ /C1 ~ [#5] /N ~ 1 } - \exp_args:Nx \__color_backend_separation_init:nn + \exp_args:Ne \__color_backend_separation_init:nn { \str_convert_pdfname:n {#1} } {#2} \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } \cs_new_protected:Npn \__color_backend_separation_init:nn #1#2 { - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } { /Separation /#1 ~ #2 ~ \pdf_object_ref_last: } } - \prop_gput:Nnx \g__color_backend_colorant_prop { /#1 } + \prop_gput:Nne \g__color_backend_colorant_prop { /#1 } { \pdf_object_ref_last: } } \cs_new_protected:Npn \__color_backend_separation_init_CIELAB:nnn #1#2#3 @@ -144,7 +143,7 @@ \pdf_object_if_exist:nF { __color_illuminant_CIELAB_ #1 } { \pdf_object_new:n { __color_illuminant_CIELAB_ #1 } - \pdf_object_write:nnx { __color_illuminant_CIELAB_ #1 } { array } + \pdf_object_write:nne { __color_illuminant_CIELAB_ #1 } { array } { /Lab ~ << @@ -163,7 +162,7 @@ } \cs_new_protected:Npn \__color_backend_devicen_init:nnn #1#2#3 { - \pdf_object_unnamed_write:nx { stream } + \pdf_object_unnamed_write:ne { stream } { { /FunctionType ~ 4 ~ @@ -185,7 +184,7 @@ } { {#3} } } - \use:x + \use:e { \pdf_object_new:n { color \int_use:N \g__color_model_int } \pdf_object_write:nnn { color \int_use:N \g__color_model_int } { array } @@ -210,7 +209,7 @@ \pdf_object_if_exist:nF { __color_icc_ #1 } { \pdf_object_new:n { __color_icc_ #1 } - \pdf_object_write:nnx { __color_icc_ #1 } { fstream } + \pdf_object_write:nne { __color_icc_ #1 } { fstream } { { /N ~ \exp_not:n { #2 } ~ @@ -219,7 +218,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { color \int_use:N \g__color_model_int } } @@ -234,7 +233,7 @@ {#1} } } - \pdf_object_unnamed_write:nx { array } + \pdf_object_unnamed_write:ne { array } { /ICCBased ~ \pdf_object_ref:n { __color_icc_ #1 } } \__color_backend_init_resource:n { Default #2 } } @@ -250,12 +249,12 @@ \cs_new_eq:NN \__color_backend_stroke_rgb:n \__color_backend_stroke:n \cs_new_protected:Npn \__color_backend_fill_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ fill ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_protected:Npn \__color_backend_stroke_separation:nn #1#2 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf : bc ~ stroke ~ \pdf_object_ref:n {#1} ~ [ #2 ] } } \cs_new_eq:NN \__color_backend_fill_devicen:nn \__color_backend_fill_separation:nn @@ -266,7 +265,7 @@ \cs_new_protected:Npn \__box_backend_clip:N #1 { \__kernel_backend_scope_begin: - \__kernel_backend_literal_pdf:x + \__kernel_backend_literal_pdf:e { 0~ \dim_to_decimal_in_bp:n { -\box_dp:N #1 } ~ @@ -283,7 +282,7 @@ \cs_new_protected:Npn \__box_backend_rotate_aux:Nn #1#2 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#2} = \c_zero_fp @@ -296,7 +295,7 @@ \cs_new_protected:Npn \__box_backend_scale:Nnn #1#2#3 { \__kernel_backend_scope_begin: - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ @@ -307,7 +306,7 @@ } %% File: l3backend-draw.dtx \cs_new_eq:NN \__draw_backend_literal:n \__kernel_backend_literal_pdf:n -\cs_generate_variant:Nn \__draw_backend_literal:n { x } +\cs_generate_variant:Nn \__draw_backend_literal:n { e } \cs_new_protected:Npn \__draw_backend_begin: { \__draw_backend_scope_begin: } \cs_new_protected:Npn \__draw_backend_end: @@ -316,17 +315,17 @@ \cs_new_eq:NN \__draw_backend_scope_end: \__kernel_backend_scope_end: \cs_new_protected:Npn \__draw_backend_moveto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ m } } \cs_new_protected:Npn \__draw_backend_lineto:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ l } } \cs_new_protected:Npn \__draw_backend_curveto:nnnnnn #1#2#3#4#5#6 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -336,7 +335,7 @@ } \cs_new_protected:Npn \__draw_backend_rectangle:nnnn #1#2#3#4 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ \dim_to_decimal_in_bp:n {#2} ~ \dim_to_decimal_in_bp:n {#3} ~ \dim_to_decimal_in_bp:n {#4} ~ @@ -356,24 +355,24 @@ { \__draw_backend_literal:n { s } } \cs_new_protected:Npn \__draw_backend_fill: { - \__draw_backend_literal:x + \__draw_backend_literal:e { f \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_fillstroke: { - \__draw_backend_literal:x + \__draw_backend_literal:e { B \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_clip: { - \__draw_backend_literal:x + \__draw_backend_literal:e { W \bool_if:NT \g__draw_draw_eor_bool * } } \cs_new_protected:Npn \__draw_backend_discardpath: { \__draw_backend_literal:n { n } } \cs_new_protected:Npn \__draw_backend_dash_pattern:nn #1#2 { - \__draw_backend_literal:x + \__draw_backend_literal:e { [ \exp_args:Nf \use:n @@ -386,11 +385,11 @@ { ~ \dim_to_decimal_in_bp:n {#1} } \cs_new_protected:Npn \__draw_backend_linewidth:n #1 { - \__draw_backend_literal:x + \__draw_backend_literal:e { \dim_to_decimal_in_bp:n {#1} ~ w } } \cs_new_protected:Npn \__draw_backend_miterlimit:n #1 - { \__draw_backend_literal:x { #1 ~ M } } + { \__draw_backend_literal:e { #1 ~ M } } \cs_new_protected:Npn \__draw_backend_cap_butt: { \__draw_backend_literal:n { 0 ~ J } } \cs_new_protected:Npn \__draw_backend_cap_round: @@ -410,20 +409,20 @@ } \cs_new_protected:Npn \__draw_backend_cm_aux:nnnn #1#2#3#4 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#1} = \c_zero_fp { 0 } { \fp_eval:n { round ( -#1 , 5 ) } } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:scale~ \fp_eval:n { round ( #2 , 5 ) } ~ \fp_eval:n { round ( #3 , 5 ) } } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { x:rotate~ \fp_compare:nNnTF {#4} = \c_zero_fp @@ -433,7 +432,7 @@ } \cs_new_protected:Npn \__draw_backend_cm_decompose:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \__draw_backend_cm_decompose_auxi:nnnnN { \fp_eval:n { (#1 + #4) / 2 } } @@ -445,7 +444,7 @@ } \cs_new_protected:Npn \__draw_backend_cm_decompose_auxi:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \__draw_backend_cm_decompose_auxii:nnnnN { \fp_eval:n { 2 * sqrt ( #1 * #1 + #4 * #4 ) } } @@ -457,7 +456,7 @@ } \cs_new_protected:Npn \__draw_backend_cm_decompose_auxii:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \__draw_backend_cm_decompose_auxiii:nnnnN { \fp_eval:n { ( #4 - #3 ) / 2 } } @@ -507,7 +506,7 @@ \int_new:N \g__graphics_track_int \cs_new_protected:Npn \__graphics_backend_include_eps:n #1 { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { PSfile = #1 \c_space_tl llx = \dim_to_decimal_in_bp:n \l__graphics_llx_dim \c_space_tl @@ -524,7 +523,7 @@ \cs_new_eq:NN \__graphics_backend_include_bmp:n \__graphics_backend_include_jpg:n \cs_new_protected:Npn \__graphics_backend_include_auxi:nn #1#2 { - \__graphics_backend_include_auxii:xnn + \__graphics_backend_include_auxii:enn { \tl_if_empty:NF \l__graphics_pagebox_tl { : \l__graphics_pagebox_tl } @@ -541,17 +540,17 @@ { \int_if_exist:cTF { c__graphics_ #2#1 _int } { - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:usexobj~@graphic \int_use:c { c__graphics_ #2#1 _int } } } { \__graphics_backend_include_auxiii:nnn {#2} {#1} {#3} } } -\cs_generate_variant:Nn \__graphics_backend_include_auxii:nnn { x } +\cs_generate_variant:Nn \__graphics_backend_include_auxii:nnn { e } \cs_new_protected:Npn \__graphics_backend_include_auxiii:nnn #1#2#3 { \int_gincr:N \g__graphics_track_int \int_const:cn { c__graphics_ #1#2 _int } { \g__graphics_track_int } - \__kernel_backend_literal:x + \__kernel_backend_literal:e { pdf:#3~ @graphic \int_use:c { c__graphics_ #1#2 _int } ~ @@ -613,7 +612,7 @@ } \cs_new_protected:Npn \__graphics_backend_getbb_auxiv:nnNnn #1#2#3#4#5 { - \use:x + \use:e { \__graphics_backend_getbb_auxv:nNnn {#2} #3 { : #1 #4 } { @@ -655,9 +654,9 @@ } %% File: l3backend-pdf.dtx \box_new:N \l__pdf_internal_box -\cs_new_protected:Npx \__pdf_backend:n #1 +\cs_new_protected:Npe \__pdf_backend:n #1 { \__kernel_backend_literal:n { pdf: #1 } } -\cs_generate_variant:Nn \__pdf_backend:n { x } +\cs_generate_variant:Nn \__pdf_backend:n { e } \cs_new_protected:Npn \__pdf_backend_catalog_gput:nn #1#2 { \__pdf_backend:n { put ~ @catalog << /#1 ~ #2 >> } } \cs_new_protected:Npn \__pdf_backend_info_gput:nn #1#2 @@ -678,15 +677,15 @@ \use:c { __pdf_backend_object_write_ #2 :nn } { \__pdf_backend_object_ref:n {#1} } {#3} } -\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nnx } +\cs_generate_variant:Nn \__pdf_backend_object_write:nnn { nne } \cs_new_protected:Npn \__pdf_backend_object_write_array:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { obj ~ #1 ~ [ ~ \exp_not:n {#2} ~ ] } } \cs_new_protected:Npn \__pdf_backend_object_write_dict:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { obj ~ #1 ~ << ~ \exp_not:n {#2} ~ >> } } \cs_new_protected:Npn \__pdf_backend_object_write_fstream:nn #1#2 @@ -695,7 +694,7 @@ { \__pdf_backend_object_write_stream:nnnn { } {#1} #2 } \cs_new_protected:Npn \__pdf_backend_object_write_stream:nnnn #1#2#3#4 { - \__pdf_backend:x + \__pdf_backend:e { #1 stream ~ #2 ~ ( \exp_not:n {#4} ) ~ << \exp_not:n {#3} >> @@ -704,11 +703,11 @@ \cs_new_protected:Npn \__pdf_backend_object_now:nn #1#2 { \int_gincr:N \g__pdf_backend_object_int - \exp_args:Nnx \use:c { __pdf_backend_object_write_ #1 :nn } + \exp_args:Nne \use:c { __pdf_backend_object_write_ #1 :nn } { @pdf.obj \int_use:N \g__pdf_backend_object_int } {#2} } -\cs_generate_variant:Nn \__pdf_backend_object_now:nn { nx } +\cs_generate_variant:Nn \__pdf_backend_object_now:nn { ne } \cs_new:Npn \__pdf_backend_object_last: { @pdf.obj \int_use:N \g__pdf_backend_object_int } \cs_new:Npn \__pdf_backend_pageobject_ref:n #1 @@ -718,7 +717,7 @@ { \int_gincr:N \g__pdf_backend_object_int \int_gset_eq:NN \g__pdf_backend_annotation_int \g__pdf_backend_object_int - \__pdf_backend:x + \__pdf_backend:e { ann ~ @pdf.obj \int_use:N \g__pdf_backend_object_int \c_space_tl width ~ \dim_eval:n {#1} ~ @@ -734,10 +733,10 @@ { \__pdf_backend_link_begin:n { #1 /Subtype /Link /A << /S /GoTo /D ( #2 ) >> } } \cs_new_protected:Npn \__pdf_backend_link_begin_user:nnw #1#2 { \__pdf_backend_link_begin:n {#1#2} } -\cs_new_protected:Npx \__pdf_backend_link_begin:n #1 +\cs_new_protected:Npe \__pdf_backend_link_begin:n #1 { \exp_not:N \int_gincr:N \exp_not:N \g__pdf_backend_link_int - \__pdf_backend:x + \__pdf_backend:e { bann ~ @pdf.lnk @@ -754,10 +753,10 @@ \cs_new:Npn \__pdf_backend_link_last: { @pdf.lnk \int_use:N \g__pdf_backend_link_int } \cs_new_protected:Npn \__pdf_backend_link_margin:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~g~ \dim_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~g~ \dim_eval:n {#1} } } \cs_new_protected:Npn \__pdf_backend_destination:nn #1#2 { - \__pdf_backend:x + \__pdf_backend:e { dest ~ ( \exp_not:n {#1} ) [ @@ -816,7 +815,7 @@ \__kernel_kern:n { -#1 } } \cs_new_protected:Npn \__pdf_backend_compresslevel:n #1 - { \__kernel_backend_literal:x { dvipdfmx:config~z~ \int_eval:n {#1} } } + { \__kernel_backend_literal:e { dvipdfmx:config~z~ \int_eval:n {#1} } } \cs_new_protected:Npn \__pdf_backend_compress_objects:n #1 { \bool_if:nF {#1} @@ -824,13 +823,13 @@ } \cs_new_protected:Npn \__pdf_backend_version_major_gset:n #1 { - \cs_gset:Npx \__pdf_backend_version_major: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:majorversion~ \__pdf_backend_version_major: } + \cs_gset:Npe \__pdf_backend_version_major: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:majorversion~ \__pdf_backend_version_major: } } \cs_new_protected:Npn \__pdf_backend_version_minor_gset:n #1 { - \cs_gset:Npx \__pdf_backend_version_minor: { \int_eval:n {#1} } - \__kernel_backend_literal:x { pdf:minorversion~ \__pdf_backend_version_minor: } + \cs_gset:Npe \__pdf_backend_version_minor: { \int_eval:n {#1} } + \__kernel_backend_literal:e { pdf:minorversion~ \__pdf_backend_version_minor: } } \cs_new:Npn \__pdf_backend_version_major: { 1 } \cs_new:Npn \__pdf_backend_version_minor: { 5 } @@ -855,7 +854,7 @@ \tl_new:N \l__opacity_backend_stroke_tl \cs_new_protected:Npn \__opacity_backend_select:n #1 { - \exp_args:Nx \__opacity_backend_select_aux:n + \exp_args:Ne \__opacity_backend_select_aux:n { \fp_eval:n { min(max(0,#1),1) } } } \cs_new_protected:Npn \__opacity_backend_select_aux:n #1 @@ -882,13 +881,13 @@ } \cs_new_protected:Npn \__opacity_backend_fill:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee { \fp_eval:n { min(max(0,#1),1) } } \l__opacity_backend_stroke_tl } \cs_new_protected:Npn \__opacity_backend_stroke:n #1 { - \__opacity_backend_fill_stroke:xx + \__opacity_backend_fill_stroke:ee \l__opacity_backend_fill_tl { \fp_eval:n { min(max(0,#1),1) } } } @@ -910,7 +909,7 @@ \group_insert_after:N \__opacity_backend_reset: } } -\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { xx } +\cs_generate_variant:Nn \__opacity_backend_fill_stroke:nn { ee } %% %% %% End of file `l3backend-xetex.def'. diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty index 7bae352b6c0..209a440673c 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3benchmark/l3benchmark.sty @@ -20,7 +20,7 @@ %% %% File: l3benchmark.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3benchmark}{2023-05-11}{} +\ProvidesExplPackage{l3benchmark}{2023-10-10}{} {L3 Experimental benchmarking} \fp_new:N \g_benchmark_duration_target_fp \fp_gset:Nn \g_benchmark_duration_target_fp { 1 } @@ -73,13 +73,13 @@ } \cs_new_protected:Npn \__benchmark_raw_replicate_large:nnN #1#2 { - \cs_set:Npx \__benchmark_tmp:w ##1 { \prg_replicate:nn { 5000 } {##1} } + \cs_set:Npe \__benchmark_tmp:w ##1 { \prg_replicate:nn { 5000 } {##1} } \exp_args:Nno \__benchmark_raw_replicate:nnN { #1 / 5000 } { \__benchmark_tmp:w {#2} } } \cs_new_protected:Npn \__benchmark_raw_replicate_small:nnN #1#2 { - \cs_set:Npx \__benchmark_tmp:w ##1##2 { \prg_replicate:nn {#1} {##1} } + \cs_set:Npe \__benchmark_tmp:w ##1##2 { \prg_replicate:nn {#1} {##1} } \__benchmark_raw:nN { \__benchmark_tmp:w {#2} { } } \g__benchmark_time_int \exp_args:No \__benchmark_raw_replicate_aux:nnN { \int_use:N \g__benchmark_time_int } {#2} @@ -192,7 +192,7 @@ { \fp_to_tl:n { round(#2 * 1e-#1, 2) } e#1 } \cs_new_protected:Npn \__benchmark_display: { - \iow_term:x + \iow_term:e { \__benchmark_fp_to_tl:N \g_benchmark_time_fp \c_space_tl seconds \c_space_tl ( \__benchmark_fp_to_tl:N \g_benchmark_ops_fp \c_space_tl ops) @@ -208,7 +208,7 @@ } \cs_new_protected:Npn \benchmark_tic: { - \iow_term:x { \__benchmark_tictoc_prefix: TIC } + \iow_term:e { \__benchmark_tictoc_prefix: TIC } \exp_args:NNf \seq_gput_right:Nn \g__benchmark_tictoc_seq { \sys_timer: } \int_gincr:N \g__benchmark_tictoc_int } @@ -223,7 +223,7 @@ \int_gdecr:N \g__benchmark_tictoc_int \fp_gset:Nn \g_benchmark_time_fp { ( \sys_timer: - \l__benchmark_tictoc_pop_tl ) / 65536 } - \iow_term:x + \iow_term:e { \__benchmark_tictoc_prefix: TOC: \c_space_tl diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty index ceaae9744b0..25ef3d28d92 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3bitset/l3bitset.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3bitset.dtx -\ProvidesExplPackage{l3bitset}{2023-05-11}{} +\ProvidesExplPackage{l3bitset}{2023-10-10}{} {L3 Experimental bitset support} \cs_new_protected:Npn \bitset_new:N #1 { @@ -56,13 +56,13 @@ \bitset_if_exist:c \str_if_exist:c { p , T , F , TF } \cs_new_protected:Npn \__bitset_set_true:Nn #1#2 - { \__bitset_set:NNnN \str_set:Nx #1 {#2} 1 } + { \__bitset_set:NNnN \str_set:Ne #1 {#2} 1 } \cs_new_protected:Npn \__bitset_gset_true:Nn #1#2 - { \__bitset_set:NNnN \str_gset:Nx #1 {#2} 1 } + { \__bitset_set:NNnN \str_gset:Ne #1 {#2} 1 } \cs_new_protected:Npn \__bitset_set_false:Nn #1#2 - { \__bitset_set:NNnN \str_set:Nx #1 {#2} 0 } + { \__bitset_set:NNnN \str_set:Ne #1 {#2} 0 } \cs_new_protected:Npn \__bitset_gset_false:Nn #1#2 - { \__bitset_set:NNnN \str_gset:Nx #1 {#2} 0 } + { \__bitset_set:NNnN \str_gset:Ne #1 {#2} 0 } \cs_new_protected:Npn \__bitset_set:NNnN #1#2#3#4 { \int_compare:nNnT {#3} > { 0 } @@ -126,7 +126,7 @@ \prop_gput:cnn { g__bitset_ \cs_to_str:N #2 _name_prop } {#3} {#3} } { - \msg_warning:nnxx { bitset } { unknown-name } + \msg_warning:nnee { bitset } { unknown-name } { \token_to_str:N #2 } { \tl_to_str:n {#3} } } @@ -185,11 +185,11 @@ } \cs_generate_variant:Nn \bitset_item:Nn { c } -\cs_new_protected:Npn \bitset_show:N { \__bitset_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \bitset_show:N { \__bitset_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \bitset_show:N { c } -\cs_new_protected:Npn \bitset_log:N { \__bitset_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \bitset_log:N { \__bitset_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \bitset_log:N { c } -\cs_new_protected:Npn \bitset_show_named_index:N { \__bitset_show_named_index:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \bitset_show_named_index:N { \__bitset_show_named_index:NN \msg_show:nneeee } \cs_generate_variant:Nn \bitset_show_named_index:N { c } \cs_new_protected:Npn \__bitset_show:NN #1#2 { diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty index f82a7913338..cea22f9993d 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3draw/l3draw.sty @@ -28,7 +28,7 @@ %% %% File: l3draw.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3draw}{2023-05-11}{} +\ProvidesExplPackage{l3draw}{2023-10-10}{} {L3 Experimental core drawing support} \scan_new:N \s__draw_mark \scan_new:N \s__draw_stop @@ -62,7 +62,7 @@ \group_begin: \hbox_set:Nn \l__draw_tmp_box { - \use:x + \use:e { \__draw_backend_box_use:Nnnnn #1 { \fp_use:N \l__draw_matrix_a_fp } @@ -329,7 +329,7 @@ { \fp_set:Nn \l__draw_path_tmpa_fp { \c__draw_path_curveto_b_fp * #1 } \fp_set:Nn \l__draw_path_tmpb_fp { \c__draw_path_curveto_b_fp * #2 } - \use:x + \use:e { \__draw_path_mark_corner: \__draw_path_curveto:nnnnnn @@ -365,7 +365,7 @@ { \draw_path_arc:nnnn {#1} {#2} {#3} {#3} } \cs_new_protected:Npn \draw_path_arc:nnnn #1#2#3#4 { - \use:x + \use:e { \__draw_path_arc:nnnn { \fp_eval:n {#1} } @@ -412,7 +412,7 @@ } \cs_new_protected:Npn \__draw_path_arc_auxi:nnnnNnn #1#2#3#4#5#6#7 { - \use:x + \use:e { \__draw_path_arc_auxii:nnnNnnnn {#1} {#2} {#4} #5 {#6} {#7} @@ -493,7 +493,7 @@ } \cs_new_protected:Npn \__draw_path_arc_aux_add:nn #1#2 { - \tl_put_right:Nx \l__draw_path_tmp_tl + \tl_put_right:Ne \l__draw_path_tmp_tl { { \fp_to_dim:n {#1} } { \fp_to_dim:n {#2} } } } \fp_new:N \l__draw_path_arc_delta_fp @@ -517,7 +517,7 @@ } \cs_new_protected:Npn \__draw_path_ellipse:nnnnnn #1#2#3#4#5#6 { - \use:x + \use:e { \__draw_path_moveto:nn { \fp_to_dim:n { #1 + #3 } } { \fp_to_dim:n { #2 + #4 } } @@ -1356,7 +1356,7 @@ { \bool_if:NTF \l__draw_baseline_bool { - \use:x + \use:e { \exp_not:n {#1} \__draw_finalise_baseline:n { \dim_use:N \l__draw_baseline_dim } @@ -1422,7 +1422,7 @@ \bool_new:N \g__draw_softpath_corners_bool \cs_new_protected:Npn \__draw_softpath_add:n { \tl_build_gput_right:Nn \g__draw_softpath_main_tl } -\cs_generate_variant:Nn \__draw_softpath_add:n { o, x } +\cs_generate_variant:Nn \__draw_softpath_add:n { o, e } \cs_new_protected:Npn \__draw_softpath_use: { \tl_build_get:NN \g__draw_softpath_main_tl \l__draw_softpath_internal_tl @@ -1439,7 +1439,7 @@ \bool_gset_true:N \g__draw_softpath_move_bool \cs_new_protected:Npn \__draw_softpath_closepath: { - \__draw_softpath_add:x + \__draw_softpath_add:e { \__draw_softpath_close_op:nn { \dim_use:N \g__draw_softpath_lastx_dim } @@ -1638,13 +1638,13 @@ } \cs_new_protected:Npn \__draw_softpath_round_calc:NnnNnn #1#2#3#4#5#6 { - \tl_set:Nx \l__draw_softpath_curve_end_tl + \tl_set:Ne \l__draw_softpath_curve_end_tl { \draw_point_interpolate_distance:nnn \l__draw_softpath_cornerii_dim { #5 , #6 } { #2 , #3 } } - \tl_put_right:Nx \l__draw_softpath_part_tl + \tl_put_right:Ne \l__draw_softpath_part_tl { \exp_not:N #4 \__draw_softpath_round_calc:fVnnnn @@ -1697,11 +1697,11 @@ } \cs_new_protected:Npn \__draw_softpath_round_close:nn #1#2 { - \use:x + \use:e { \__draw_softpath_round_calc:NnnNnn { - \tl_set:Nx \exp_not:N \l__draw_softpath_move_tl + \tl_set:Ne \exp_not:N \l__draw_softpath_move_tl { \__draw_softpath_moveto_op:nn \exp_not:N \exp_after:wN @@ -1709,7 +1709,7 @@ \exp_not:N \l__draw_softpath_curve_end_tl \s__draw_stop } - \use:x + \use:e { \exp_not:N \exp_not:N \exp_not:N \use_i:nnnn { @@ -1752,7 +1752,7 @@ \seq_set_from_clist:Nn \l__draw_tmp_seq {#1} \seq_set_map:NNn \l__draw_tmp_seq \l__draw_tmp_seq { \fp_to_dim:n {##1} } - \use:x + \use:e { \__draw_backend_dash_pattern:nn { \seq_use:Nn \l__draw_tmp_seq { , } } @@ -1762,7 +1762,7 @@ } \seq_new:N \l__draw_tmp_seq \cs_new_protected:Npn \draw_miterlimit:n #1 - { \exp_args:Nx \__draw_backend_miterlimit:n { \fp_eval:n {#1} } } + { \exp_args:Ne \__draw_backend_miterlimit:n { \fp_eval:n {#1} } } \cs_new_protected:Npn \draw_cap_butt: { \__draw_backend_cap_butt: } \cs_new_protected:Npn \draw_cap_rectangle: { \__draw_backend_cap_rectangle: } \cs_new_protected:Npn \draw_cap_round: { \__draw_backend_cap_round: } @@ -1821,7 +1821,7 @@ } \cs_new_protected:Npn \draw_transform_matrix:nnnn #1#2#3#4 { - \use:x + \use:e { \__draw_transform:nnnn { \fp_eval:n {#1} } @@ -1832,7 +1832,7 @@ } \cs_new_protected:Npn \__draw_transform:nnnn #1#2#3#4 { - \use:x + \use:e { \draw_transform_matrix_absolute:nnnn { #1 * \l__draw_matrix_a_fp + #2 * \l__draw_matrix_c_fp } @@ -1897,7 +1897,7 @@ } \cs_new_protected:Npn \__draw_transform_triangle:nnnnnn #1#2#3#4#5#6 { - \use:x + \use:e { \draw_transform_matrix_absolute:nnnn { #3 - #1 } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty index bc32919cfe3..2c54e34557b 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3graphics/l3graphics.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3graphics.dtx -\ProvidesExplPackage{l3graphics}{2023-05-11}{} +\ProvidesExplPackage{l3graphics}{2023-10-10}{} {L3 Experimental graphics inclusion support} \dim_new:N \l__graphics_internal_dim \ior_new:N \l__graphics_internal_ior @@ -37,8 +37,8 @@ pagebox .choices:nn = { art , bleed , crop , media , trim } { - \tl_set:Nx \l__graphics_pagebox_tl - { \tl_use:N \l_keys_choice_tl box } + \tl_set:Ne \l__graphics_pagebox_tl + { \l_keys_choice_tl box } } , pagebox .initial:n = crop , @@ -66,7 +66,7 @@ \dim_const:cn { c__graphics_ #1 _ury_dim } { \l__graphics_ury_dim } } } -\cs_generate_variant:Nn \__graphics_bb_save:n { x } +\cs_generate_variant:Nn \__graphics_bb_save:n { e } \cs_new_protected:Npn \__graphics_bb_restore:nF #1#2 { \dim_if_exist:cTF { c__graphics_ #1 _urx_dim } @@ -82,7 +82,7 @@ } {#2} } -\cs_generate_variant:Nn \__graphics_bb_restore:nF { x } +\cs_generate_variant:Nn \__graphics_bb_restore:nF { e } \cs_new_protected:Npn \__graphics_extract_bb:n #1 { \int_compare:nNnTF \l__graphics_page_int > 0 @@ -119,7 +119,7 @@ \__graphics_bb_restore:nF {#1#2} { \__graphics_read_bb_auxii:nnnn {#3} {#4} {#1} {#2} } } -\cs_new_protected:Npx \__graphics_read_bb_auxii:nnnn #1#2#3#4 +\cs_new_protected:Npe \__graphics_read_bb_auxii:nnnn #1#2#3#4 { #1 \exp_not:N \ior_if_eof:NTF \exp_not:N \l__graphics_internal_ior @@ -134,22 +134,22 @@ } \ior_close:N \exp_not:N \l__graphics_internal_ior } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \__graphics_read_bb_auxiii:w - ##1 \c_colon_str ##2 \s__graphics_stop + #1 \c_colon_str #2 \s__graphics_stop { \exp_not:N \str_if_eq:nnT { \c_percent_str \c_percent_str BoundingBox } - {##1} - { \exp_not:N \__graphics_read_bb_auxiv:w ##2 ( ) \s__graphics_stop } + {#1} + { \exp_not:N \__graphics_read_bb_auxiv:w #2 ( ) \s__graphics_stop } } } \cs_new_protected:Npn \__graphics_read_bb_auxiv:w #1 ( #2 ) #3 \s__graphics_stop { \str_if_eq:nnF {#2} { atend } { - \tl_set_rescan:Nnx \l__graphics_internal_tl + \tl_set_rescan:Nne \l__graphics_internal_tl { \char_set_catcode_space:n { 9 } \char_set_catcode_space:n { 32 } @@ -219,7 +219,7 @@ \cs_if_exist:cTF { __graphics_backend_include_ #1 :n } { \tl_set_eq:NN \l__graphics_final_name_str \l__graphics_full_name_str - \str_set:Nx \l__graphics_full_name_str + \str_set:Ne \l__graphics_full_name_str { \exp_args:NV \__kernel_file_name_quote:n \l__graphics_full_name_str } \exp_args:NnV \use:c { __graphics_backend_getbb_ #1 :n } \l__graphics_full_name_str @@ -272,8 +272,8 @@ { \l__graphics_urx_dim - \l__graphics_llx_dim } \box_use_drop:N \l__graphics_internal_box } -\cs_new_protected:Npn \graphics_show_list: { \__graphics_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \graphics_log_list: { \__graphics_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \graphics_show_list: { \__graphics_list:N \msg_show:nneeee } +\cs_new_protected:Npn \graphics_log_list: { \__graphics_list:N \msg_log:nneeee } \cs_new_protected:Npn \__graphics_list:N #1 { \seq_remove_duplicates:N \g__graphics_record_seq @@ -345,7 +345,7 @@ \exp_args:NNNV \group_end: \tl_set:Nn #2 #2 } -\cs_new_protected:Npx \__graphics_get_pagecount:n #1 +\cs_new_protected:Npe \__graphics_get_pagecount:n #1 { \ior_shell_open:Nn \exp_not:N \l__graphics_internal_ior { extractbb~-O~#1 } @@ -362,16 +362,16 @@ } \ior_close:N \exp_not:N \l__graphics_internal_ior } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \__graphics_get_pagecount:nw - ##1##2 \c_colon_str ##3 \c_colon_str ##4 \s__graphics_stop + #1#2 \c_colon_str #3 \c_colon_str #4 \s__graphics_stop { \exp_not:N \str_if_eq:nnT { \c_percent_str \c_percent_str Pages } - {##2} + {#2} { - \int_const:cn { c__graphics_ ##1 _pages_int } {##3} + \int_const:cn { c__graphics_ #1 _pages_int } {#3} \exp_not:N \ior_map_break: } } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty index 2d0fc6b2df9..610407cb77e 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3opacity/l3opacity.sty @@ -20,7 +20,7 @@ %% %% File: l3opacity.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3opacity}{2023-05-11}{} +\ProvidesExplPackage{l3opacity}{2023-10-10}{} {L3 Experimental opacity support} \cs_new_protected:Npn \opacity_select:n #1 { \__opacity_select:nN {#1} \__opacity_backend_select:n } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty index 59b99914d8e..16faf6a9ff7 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty @@ -20,7 +20,7 @@ %% %% File: l3str-format.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3str-format}{2023-05-11}{} +\ProvidesExplPackage{l3str-format}{2023-10-10}{} {L3 Experimental string formatting} \cs_generate_variant:Nn \use:nn { nf } \cs_generate_variant:Nn \use:nnn { fnf } @@ -51,7 +51,7 @@ \exp_last_unbraced:Nf \__str_format_parse_auxi:NN { \__kernel_str_to_other:n {#1} } \s__str_stop \s__str_stop {#1} } -\cs_new:Npx \__str_format_parse_auxi:NN #1#2 +\cs_new:Npe \__str_format_parse_auxi:NN #1#2 { \exp_not:N \__str_format_if_in:nNTF { < > = ^ } #2 { \exp_not:N \__str_format_parse_auxiii:nN { #1 #2 } } @@ -66,7 +66,7 @@ { \__str_format_parse_auxiii:nN { #1 #2 } } { \__str_format_parse_auxiii:nN { #1 ? } #2 } } -\cs_new:Npx \__str_format_parse_auxiii:nN #1#2 +\cs_new:Npe \__str_format_parse_auxiii:nN #1#2 { \exp_not:N \__str_format_if_in:nNTF { + - \c_catcode_other_space_tl } diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty index a0e5cdd5438..2fe417c0258 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/l3sys-shell/l3sys-shell.sty @@ -20,7 +20,7 @@ %% %% File: l3sys-shell.dtx \RequirePackage{expl3} -\ProvidesExplPackage{l3sys-shell}{2023-05-11}{} +\ProvidesExplPackage{l3sys-shell}{2023-10-10}{} {L3 Experimental system shell functions} \scan_new:N \s__sys_stop \quark_new:N \q__sys_nil @@ -48,11 +48,11 @@ \__sys_path_to_win:N } } -\cs_new_protected:Npx \sys_shell_cp:nn #1#2 +\cs_new_protected:Npe \sys_shell_cp:nn #1#2 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { @@ -67,11 +67,11 @@ } } } -\cs_new_protected:Npx \sys_shell_mkdir:n #1 +\cs_new_protected:Npe \sys_shell_mkdir:n #1 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { mkdir~-p~ \exp_not:N \tl_to_str:n {#1} } @@ -84,11 +84,11 @@ } } } -\cs_new_protected:Npx \sys_shell_mv:nn #1#2 +\cs_new_protected:Npe \sys_shell_mv:nn #1#2 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { @@ -105,11 +105,11 @@ } } } -\cs_new_protected:Npx \sys_shell_rm:n #1 +\cs_new_protected:Npe \sys_shell_rm:n #1 { \sys_if_shell_unrestricted:T { - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { rm~-f~ \exp_not:N \tl_to_str:n {#1} } @@ -118,12 +118,12 @@ } } } -\cs_new_protected:Npx \sys_shell_rmdir:n #1 +\cs_new_protected:Npe \sys_shell_rmdir:n #1 { \sys_if_shell_unrestricted:T { \sys_shell_mkdir:n {#1} - \sys_shell_now:x + \sys_shell_now:e { \sys_if_platform_unix:T { rm~-rf~ \exp_not:N \tl_to_str:n {#1} } @@ -133,7 +133,7 @@ } } \tl_new:N \l__sys_tmp_tl -\cs_new_protected:Npx \sys_get_shell_pwd:N #1 +\cs_new_protected:Npe \sys_get_shell_pwd:N #1 { \sys_if_shell_unrestricted:T { @@ -154,7 +154,7 @@ \str_set:NV #1 \exp_not:N \l__sys_tmp_tl } } -\cs_new_protected:Npx \sys_shell_split_ls:nN #1#2 +\cs_new_protected:Npe \sys_shell_split_ls:nN #1#2 { \sys_if_shell_unrestricted:T { diff --git a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty index 043034a53e9..bb1f6c36925 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xcoffins/xcoffins.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: xcoffins.dtx -\ProvidesExplPackage{xcoffins}{2023-05-11}{} +\ProvidesExplPackage{xcoffins}{2023-10-10}{} {L3 Experimental design level coffins} \keys_define:nn { coffin } { @@ -74,7 +74,7 @@ { \group_begin: \__coffin_design_names:N #1 - \use:x + \use:e { \group_end: \coffin_set_horizontal_pole:Nnn #1 @@ -85,7 +85,7 @@ { \group_begin: \__coffin_design_names:N #1 - \use:x + \use:e { \group_end: \coffin_set_vertical_pole:Nnn #1 @@ -112,7 +112,7 @@ { \group_begin: \keys_set:nn { coffin } {#1} - \tl_set:Nx \l__coffin_tmp_tl + \tl_set:Ne \l__coffin_tmp_tl { \group_end: \bool_if:NTF \l__coffin_bound_box_grow_bool diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty index b10edcfbe3d..96f4c731f8f 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3galley}{2023-05-11}{} +\ProvidesExplPackage{l3galley}{2023-10-10}{} {L3 Experimental galley code} \int_new:N \l__galley_tmp_int \seq_new:N \g__galley_tmpa_seq @@ -300,7 +300,7 @@ { \tl_if_empty:NF #1 { - \tl_gput_right:Nx \g_galley_restore_running_tl + \tl_gput_right:Ne \g_galley_restore_running_tl { \int_gset:Nn \exp_not:N \g_galley_penalty_int { \int_use:N \g_galley_penalty_int } @@ -312,7 +312,7 @@ { \tl_if_empty:NF #1 { - \tl_gput_right:Nx \g_galley_restore_running_tl + \tl_gput_right:Ne \g_galley_restore_running_tl { \skip_gset:Nn \exp_not:N \g_galley_vspace_skip { \skip_use:N \g_galley_vspace_skip } @@ -523,7 +523,7 @@ { \seq_gpop_left:NNF #2 \l__galley_tmp_tl { \tl_set:Nn \l__galley_tmp_tl { 0pt } } - \seq_put_right:Nx \l__galley_tmp_seq + \seq_put_right:Ne \l__galley_tmp_seq { \dim_eval:n { ##1 + \l__galley_tmp_tl } } } } @@ -632,10 +632,10 @@ { \seq_put_right:NV #1 \l__galley_tmp_tl } } \cs_new_protected:Npn \galley_penalty_set_single:n #1 - { \tl_gset:Nx \g__galley_interpar_penalty_user_tl { \int_eval:n {#1} } } + { \tl_gset:Ne \g__galley_interpar_penalty_user_tl { \int_eval:n {#1} } } \cs_new_protected:Npn \galley_penalty_add_single:n #1 { - \tl_gset:Nx \g__galley_interpar_penalty_user_tl + \tl_gset:Ne \g__galley_interpar_penalty_user_tl { \int_eval:n { @@ -646,10 +646,10 @@ } } \cs_new_protected:Npn \galley_vspace_set_single:n #1 - { \tl_gset:Nx \g__galley_interpar_vspace_user_tl { \skip_eval:n {#1} } } + { \tl_gset:Ne \g__galley_interpar_vspace_user_tl { \skip_eval:n {#1} } } \cs_new_protected:Npn \galley_vspace_add_single:n #1 { - \tl_gset:Nx \g__galley_interpar_vspace_user_tl + \tl_gset:Ne \g__galley_interpar_vspace_user_tl { \skip_eval:n { @@ -848,7 +848,7 @@ { \clist_set_eq:NN #1 \l_galley_line_penalties_clist } \cs_new_protected:Npn \galley_save_display_club_penalties:N #1 { - \clist_set:Nx #1 + \clist_set:Ne #1 { \int_step_function:nN { \tex_clubpenalties:D 0 - 1 } \__galley_save_display_club_penalties:n @@ -858,7 +858,7 @@ { \int_value:w \tex_clubpenalties:D \int_eval:n {#1} , } \cs_new_protected:Npn \galley_save_display_widow_penalties:N #1 { - \clist_set:Nx #1 + \clist_set:Ne #1 { \int_step_function:nN { \tex_displaywidowpenalties:D 0 - 1 } \__galley_save_display_widow_penalties:n @@ -871,7 +871,7 @@ } \cs_new_protected:Npn \galley_save_widow_penalties:N #1 { - \clist_set:Nx #1 + \clist_set:Ne #1 { \int_step_function:nN { \tex_widowpenalties:D 0 - 1 } \__galley_save_widow_penalties:n diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty index 1ef6f04e008..74d706bff6b 100644 --- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty +++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/xgalley.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: xgalley.dtx -\ProvidesExplPackage{xgalley}{2023-05-11}{} +\ProvidesExplPackage{xgalley}{2023-10-10}{} {L3 Experimental galley} \RequirePackage{xtemplate,l3galley} \clist_new:N \l__galley_tmpa_clist @@ -222,7 +222,7 @@ stretch-last-line = \l_galley_par_stretch_last_bool } { - \tl_put_left:Nx \l__galley_justification_other_tl + \tl_put_left:Ne \l__galley_justification_other_tl { \skip_set:Nn \exp_not:N \l_galley_par_end_skip { \skip_use:N \l_galley_par_end_skip } @@ -411,7 +411,7 @@ { \tl_if_empty:NF \l__galley_interline_penalty_tl { - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \int_set:Nn \exp_not:N \l__galley_interline_penalty_int { \galley_interline_penalty: } @@ -421,7 +421,7 @@ } \tl_if_empty:NF \l__galley_parbreak_fuzz_tl { - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \dim_set:Nn \exp_not:N \l_galley_parbreak_fuzz_dim { \dim_use:N \l_galley_parbreak_fuzz_dim } @@ -432,7 +432,7 @@ { \tl_if_empty:cF { l_galley_ ##1 _tl } { - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \int_set:Nn \exp_not:c { l_galley_ ##1 _int } { \int_use:c { l_galley_ ##1 _int } } @@ -446,7 +446,7 @@ \tl_if_empty:cF { l_galley_ ##1 _tl } { \use:c { galley_save_ ##1 :N } \l__galley_tmpa_clist - \tl_gput_right:Nx \g_galley_par_reset_hook_tl + \tl_gput_right:Ne \g_galley_par_reset_hook_tl { \exp_not:c { galley_set_ ##1 :n } { \exp_not:o \l__galley_tmpa_clist } @@ -518,22 +518,22 @@ { \tl_if_empty:NF \l_galley_display_begin_par_vpenalty_tl { - \tl_set:Nx \l_galley_display_begin_par_vpenalty_tl + \tl_set:Ne \l_galley_display_begin_par_vpenalty_tl { \int_eval:n { \l_galley_display_begin_par_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_begin_par_vspace_tl { - \tl_set:Nx \l_galley_display_begin_par_vspace_tl + \tl_set:Ne \l_galley_display_begin_par_vspace_tl { \skip_eval:n { \l_galley_display_begin_par_vspace_tl } } } \tl_if_empty:NF \l_galley_display_begin_vpenalty_tl { - \tl_set:Nx \l_galley_display_begin_vpenalty_tl + \tl_set:Ne \l_galley_display_begin_vpenalty_tl { \int_eval:n { \l_galley_display_begin_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_begin_vspace_tl { - \tl_set:Nx \l_galley_display_begin_vspace_tl + \tl_set:Ne \l_galley_display_begin_vspace_tl { \skip_eval:n { \l_galley_display_begin_vspace_tl } } } } @@ -547,22 +547,22 @@ { \tl_if_empty:NF \l_galley_display_end_par_vpenalty_tl { - \tl_set:Nx \l_galley_display_end_par_vpenalty_tl + \tl_set:Ne \l_galley_display_end_par_vpenalty_tl { \int_eval:n { \l_galley_display_end_par_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_end_par_vspace_tl { - \tl_set:Nx \l_galley_display_end_par_vspace_tl + \tl_set:Ne \l_galley_display_end_par_vspace_tl { \skip_eval:n { \l_galley_display_end_par_vspace_tl } } } \tl_if_empty:NF \l_galley_display_end_vpenalty_tl { - \tl_set:Nx \l_galley_display_end_vpenalty_tl + \tl_set:Ne \l_galley_display_end_vpenalty_tl { \int_eval:n { \l_galley_display_end_vpenalty_tl } } } \tl_if_empty:NF \l_galley_display_end_vspace_tl { - \tl_set:Nx \l_galley_display_end_vspace_tl + \tl_set:Ne \l_galley_display_end_vspace_tl { \skip_eval:n { \l_galley_display_end_vspace_tl } } } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index ac67d0b7f43..0b57711f157 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -71,7 +71,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-08-29}% +\def\ExplFileDate{2023-10-10}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -236,7 +236,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_if:NF \l__kernel_expl_bool { - \cs_set_protected:Npx \ExplSyntaxOff + \cs_set_protected:Npe \ExplSyntaxOff { \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } } \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } } @@ -1508,33 +1508,41 @@ Type H <return> for immediate help}\def~{\errmessage{% \tex_fi:D \tex_fi:D \tex_let:D \cs_set_nopar:Npn \tex_def:D +\tex_let:D \cs_set_nopar:Npe \tex_edef:D \tex_let:D \cs_set_nopar:Npx \tex_edef:D \tex_protected:D \tex_long:D \tex_def:D \cs_set:Npn { \tex_long:D \tex_def:D } -\tex_protected:D \tex_long:D \tex_def:D \cs_set:Npx +\tex_protected:D \tex_long:D \tex_def:D \cs_set:Npe { \tex_long:D \tex_edef:D } +\tex_let:D \cs_set:Npx \cs_set:Npe \tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npn { \tex_protected:D \tex_def:D } -\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npx +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npe { \tex_protected:D \tex_edef:D } +\tex_let:D \cs_set_protected_nopar:Npx \cs_set_protected_nopar:Npe \tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npn { \tex_protected:D \tex_long:D \tex_def:D } -\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npx +\tex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npe { \tex_protected:D \tex_long:D \tex_edef:D } +\tex_let:D \cs_set_protected:Npx \cs_set_protected:Npe \tex_let:D \cs_gset_nopar:Npn \tex_gdef:D +\tex_let:D \cs_gset_nopar:Npe \tex_xdef:D \tex_let:D \cs_gset_nopar:Npx \tex_xdef:D \cs_set_protected:Npn \cs_gset:Npn { \tex_long:D \tex_gdef:D } -\cs_set_protected:Npn \cs_gset:Npx +\cs_set_protected:Npn \cs_gset:Npe { \tex_long:D \tex_xdef:D } +\tex_let:D \cs_gset:Npx \cs_gset:Npe \cs_set_protected:Npn \cs_gset_protected_nopar:Npn { \tex_protected:D \tex_gdef:D } -\cs_set_protected:Npn \cs_gset_protected_nopar:Npx +\cs_set_protected:Npn \cs_gset_protected_nopar:Npe { \tex_protected:D \tex_xdef:D } +\tex_let:D \cs_gset_protected_nopar:Npx \cs_gset_protected_nopar:Npe \cs_set_protected:Npn \cs_gset_protected:Npn { \tex_protected:D \tex_long:D \tex_gdef:D } -\cs_set_protected:Npn \cs_gset_protected:Npx +\cs_set_protected:Npn \cs_gset_protected:Npe { \tex_protected:D \tex_long:D \tex_xdef:D } +\tex_let:D \cs_gset_protected:Npx \cs_gset_protected:Npe \cs_set_nopar:Npn \l__exp_internal_tl { } \cs_set:Npn \use:c #1 { \cs:w #1 \cs_end: } \cs_set_protected:Npn \use:x #1 @@ -1649,7 +1657,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__prg_generate_conditional_parm:NNNpnn \cs_new_protected:Npn p } \cs_set_protected:Npn \__prg_generate_conditional_parm:NNNpnn #1#2#3#4# { - \use:x + \use:e { \__prg_generate_conditional:nnNNNnnn \cs_split_function:N #3 @@ -1670,7 +1678,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__prg_generate_conditional_count:NNNnn \cs_new_protected:Npn p } \cs_set_protected:Npn \__prg_generate_conditional_count:NNNnn #1#2#3 { - \use:x + \use:e { \__prg_generate_conditional_count:nnNNNnn \cs_split_function:N #3 @@ -1683,7 +1691,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__prg_generate_conditional:nnNNNnnn {#1} {#2} #3 #4 #5 } { \tl_count:n {#2} } { - \msg_error:nnxx { kernel } { bad-number-of-arguments } + \msg_error:nnee { kernel } { bad-number-of-arguments } { \token_to_str:c { #1 : #2 } } { \tl_count:n {#2} } \use_none:nn @@ -1692,11 +1700,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_protected:Npn \__prg_generate_conditional:nnNNNnnn #1#2#3#4#5#6#7#8 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \use_none:nn \fi: - \use:x + \use:e { \exp_not:N \__prg_generate_conditional:NNnnnnNw \exp_not:n { #4 #5 {#1} {#2} {#6} } @@ -1723,7 +1731,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \use:c { __prg_generate_ #8 _form:wNNnnnnN } \tl_if_empty:nF {#8} { - \msg_error:nnxx + \msg_error:nnee { kernel } { conditional-form-unknown } {#8} { \token_to_str:c { #3 : #4 } } } @@ -1747,7 +1755,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { #7 \__prg_p_true:w \fi: \c_false_bool } } { - \msg_error:nnx { kernel } { protected-predicate } + \msg_error:nne { kernel } { protected-predicate } { \token_to_str:c { #4 _p: #5 } } } } @@ -1787,7 +1795,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__prg_set_eq_conditional:NNNn \cs_new_eq:cc } \cs_set_protected:Npn \__prg_set_eq_conditional:NNNn #1#2#3#4 { - \use:x + \use:e { \exp_not:N \__prg_set_eq_conditional:nnNnnNNw \cs_split_function:N #2 @@ -1800,12 +1808,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_protected:Npn \__prg_set_eq_conditional:nnNnnNNw #1#2#3#4#5#6 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \__prg_use_none_delimit_by_q_recursion_stop:w \fi: \if_meaning:w \c_false_bool #6 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#4} } \exp_after:wN \__prg_use_none_delimit_by_q_recursion_stop:w \fi: @@ -1819,7 +1827,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \use:c { __prg_set_eq_conditional_ #6 _form:wNnnnn } \tl_if_empty:nF {#6} { - \msg_error:nnxx + \msg_error:nnee { kernel } { conditional-form-unknown } {#6} { \token_to_str:c { #1 : #2 } } } @@ -1935,7 +1943,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_if_exist:cTF {#1} { \use:c {#1} #2 } { } } \cs_set:Npn \cs_if_exist_use:c #1 { \cs_if_exist:cTF {#1} { \use:c {#1} } { } } -\cs_set_protected:Npn \msg_error:nnxx #1#2#3#4 +\cs_set_protected:Npn \msg_error:nnee #1#2#3#4 { \tex_newlinechar:D = `\^^J \scan_stop: \tex_errmessage:D @@ -1948,21 +1956,21 @@ Type H <return> for immediate help}\def~{\errmessage{% } \tex_end:D } -\cs_set_protected:Npn \msg_error:nnx #1#2#3 - { \msg_error:nnxx {#1} {#2} {#3} { } } +\cs_set_protected:Npn \msg_error:nne #1#2#3 + { \msg_error:nnee {#1} {#2} {#3} { } } \cs_set_protected:Npn \msg_error:nn #1#2 - { \msg_error:nnxx {#1} {#2} { } { } } + { \msg_error:nnee {#1} {#2} { } { } } \cs_set:Npn \msg_line_context: { on~line~ \tex_the:D \tex_inputlineno:D } -\cs_set_protected:Npn \iow_log:x +\cs_set_protected:Npn \iow_log:e { \tex_immediate:D \tex_write:D -1 } -\cs_set_protected:Npn \iow_term:x +\cs_set_protected:Npn \iow_term:e { \tex_immediate:D \tex_write:D 16 } \cs_set_protected:Npn \__kernel_chk_if_free_cs:N #1 { \cs_if_free:NF #1 { - \msg_error:nnxx { kernel } { command-already-defined } + \msg_error:nnee { kernel } { command-already-defined } { \token_to_str:N #1 } { \token_to_meaning:N #1 } } } @@ -1977,38 +1985,54 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \__cs_tmp:w \cs_new_nopar:Npn \cs_gset_nopar:Npn +\__cs_tmp:w \cs_new_nopar:Npe \cs_gset_nopar:Npe \__cs_tmp:w \cs_new_nopar:Npx \cs_gset_nopar:Npx \__cs_tmp:w \cs_new:Npn \cs_gset:Npn +\__cs_tmp:w \cs_new:Npe \cs_gset:Npe \__cs_tmp:w \cs_new:Npx \cs_gset:Npx \__cs_tmp:w \cs_new_protected_nopar:Npn \cs_gset_protected_nopar:Npn +\__cs_tmp:w \cs_new_protected_nopar:Npe \cs_gset_protected_nopar:Npe \__cs_tmp:w \cs_new_protected_nopar:Npx \cs_gset_protected_nopar:Npx \__cs_tmp:w \cs_new_protected:Npn \cs_gset_protected:Npn +\__cs_tmp:w \cs_new_protected:Npe \cs_gset_protected:Npe \__cs_tmp:w \cs_new_protected:Npx \cs_gset_protected:Npx \cs_set:Npn \__cs_tmp:w #1#2 { \cs_new_protected_nopar:Npn #1 { \exp_args:Nc #2 } } \__cs_tmp:w \cs_set_nopar:cpn \cs_set_nopar:Npn +\__cs_tmp:w \cs_set_nopar:cpe \cs_set_nopar:Npe \__cs_tmp:w \cs_set_nopar:cpx \cs_set_nopar:Npx \__cs_tmp:w \cs_gset_nopar:cpn \cs_gset_nopar:Npn +\__cs_tmp:w \cs_gset_nopar:cpe \cs_gset_nopar:Npe \__cs_tmp:w \cs_gset_nopar:cpx \cs_gset_nopar:Npx \__cs_tmp:w \cs_new_nopar:cpn \cs_new_nopar:Npn +\__cs_tmp:w \cs_new_nopar:cpe \cs_new_nopar:Npe \__cs_tmp:w \cs_new_nopar:cpx \cs_new_nopar:Npx \__cs_tmp:w \cs_set:cpn \cs_set:Npn +\__cs_tmp:w \cs_set:cpe \cs_set:Npe \__cs_tmp:w \cs_set:cpx \cs_set:Npx \__cs_tmp:w \cs_gset:cpn \cs_gset:Npn +\__cs_tmp:w \cs_gset:cpe \cs_gset:Npe \__cs_tmp:w \cs_gset:cpx \cs_gset:Npx \__cs_tmp:w \cs_new:cpn \cs_new:Npn +\__cs_tmp:w \cs_new:cpe \cs_new:Npe \__cs_tmp:w \cs_new:cpx \cs_new:Npx \__cs_tmp:w \cs_set_protected_nopar:cpn \cs_set_protected_nopar:Npn +\__cs_tmp:w \cs_set_protected_nopar:cpe \cs_set_protected_nopar:Npe \__cs_tmp:w \cs_set_protected_nopar:cpx \cs_set_protected_nopar:Npx \__cs_tmp:w \cs_gset_protected_nopar:cpn \cs_gset_protected_nopar:Npn +\__cs_tmp:w \cs_gset_protected_nopar:cpe \cs_gset_protected_nopar:Npe \__cs_tmp:w \cs_gset_protected_nopar:cpx \cs_gset_protected_nopar:Npx \__cs_tmp:w \cs_new_protected_nopar:cpn \cs_new_protected_nopar:Npn +\__cs_tmp:w \cs_new_protected_nopar:cpe \cs_new_protected_nopar:Npe \__cs_tmp:w \cs_new_protected_nopar:cpx \cs_new_protected_nopar:Npx \__cs_tmp:w \cs_set_protected:cpn \cs_set_protected:Npn +\__cs_tmp:w \cs_set_protected:cpe \cs_set_protected:Npe \__cs_tmp:w \cs_set_protected:cpx \cs_set_protected:Npx \__cs_tmp:w \cs_gset_protected:cpn \cs_gset_protected:Npn +\__cs_tmp:w \cs_gset_protected:cpe \cs_gset_protected:Npe \__cs_tmp:w \cs_gset_protected:cpx \cs_gset_protected:Npx \__cs_tmp:w \cs_new_protected:cpn \cs_new_protected:Npn +\__cs_tmp:w \cs_new_protected:cpe \cs_new_protected:Npe \__cs_tmp:w \cs_new_protected:cpx \cs_new_protected:Npx \cs_new_protected:Npn \cs_set_eq:NN #1 { \tex_let:D #1 =~ } \cs_new_protected:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN } @@ -2039,7 +2063,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_set_protected:Npn \__kernel_cs_parm_from_arg_count:nnF #1#2 { - \exp_args:Nx \__cs_parm_from_arg_count_test:nnF + \exp_args:Ne \__cs_parm_from_arg_count_test:nnF { \exp_after:wN \exp_not:n \if_case:w \int_eval:n {#2} @@ -2085,7 +2109,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__kernel_cs_parm_from_arg_count:nnF { \use:nnn #2 #1 } {#3} { - \msg_error:nnxx { kernel } { bad-number-of-arguments } + \msg_error:nnee { kernel } { bad-number-of-arguments } { \token_to_str:N #1 } { \int_eval:n {#3} } \use_none:n } @@ -2105,7 +2129,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__cs_generate_from_signature:NNn #1#2 { - \use:x + \use:e { \__cs_generate_from_signature:nnNNNn \cs_split_function:N #2 @@ -2120,14 +2144,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_map_function:nN {#2} \__cs_generate_from_signature:n } \tl_if_empty:oF \__cs_tmp:w { - \msg_error:nnxxx { kernel } { non-base-function } + \msg_error:nneee { kernel } { non-base-function } { \token_to_str:N #5 } {#2} { \__cs_tmp:w } } \cs_generate_from_arg_count:NNnn #5 #4 { \tl_count:n {#2} } {#6} } { - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:N #5 } } } @@ -2137,28 +2161,40 @@ Type H <return> for immediate help}\def~{\errmessage{% \if:w T #1 \else: \if:w F #1 \else: #1 \fi: \fi: \fi: \fi: } \__cs_tmp:w { set } { Nn } { Npn } +\__cs_tmp:w { set } { Ne } { Npe } \__cs_tmp:w { set } { Nx } { Npx } \__cs_tmp:w { set_nopar } { Nn } { Npn } +\__cs_tmp:w { set_nopar } { Ne } { Npe } \__cs_tmp:w { set_nopar } { Nx } { Npx } \__cs_tmp:w { set_protected } { Nn } { Npn } +\__cs_tmp:w { set_protected } { Ne } { Npe } \__cs_tmp:w { set_protected } { Nx } { Npx } \__cs_tmp:w { set_protected_nopar } { Nn } { Npn } +\__cs_tmp:w { set_protected_nopar } { Ne } { Npe } \__cs_tmp:w { set_protected_nopar } { Nx } { Npx } \__cs_tmp:w { gset } { Nn } { Npn } +\__cs_tmp:w { gset } { Ne } { Npe } \__cs_tmp:w { gset } { Nx } { Npx } \__cs_tmp:w { gset_nopar } { Nn } { Npn } +\__cs_tmp:w { gset_nopar } { Ne } { Npe } \__cs_tmp:w { gset_nopar } { Nx } { Npx } \__cs_tmp:w { gset_protected } { Nn } { Npn } +\__cs_tmp:w { gset_protected } { Ne } { Npe } \__cs_tmp:w { gset_protected } { Nx } { Npx } \__cs_tmp:w { gset_protected_nopar } { Nn } { Npn } +\__cs_tmp:w { gset_protected_nopar } { Ne } { Npe } \__cs_tmp:w { gset_protected_nopar } { Nx } { Npx } \__cs_tmp:w { new } { Nn } { Npn } +\__cs_tmp:w { new } { Ne } { Npe } \__cs_tmp:w { new } { Nx } { Npx } \__cs_tmp:w { new_nopar } { Nn } { Npn } +\__cs_tmp:w { new_nopar } { Ne } { Npe } \__cs_tmp:w { new_nopar } { Nx } { Npx } \__cs_tmp:w { new_protected } { Nn } { Npn } +\__cs_tmp:w { new_protected } { Ne } { Npe } \__cs_tmp:w { new_protected } { Nx } { Npx } \__cs_tmp:w { new_protected_nopar } { Nn } { Npn } +\__cs_tmp:w { new_protected_nopar } { Ne } { Npe } \__cs_tmp:w { new_protected_nopar } { Nx } { Npx } \cs_set:Npn \__cs_tmp:w #1#2 { @@ -2169,28 +2205,40 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \__cs_tmp:w { set } { n } +\__cs_tmp:w { set } { e } \__cs_tmp:w { set } { x } \__cs_tmp:w { set_nopar } { n } +\__cs_tmp:w { set_nopar } { e } \__cs_tmp:w { set_nopar } { x } \__cs_tmp:w { set_protected } { n } +\__cs_tmp:w { set_protected } { e } \__cs_tmp:w { set_protected } { x } \__cs_tmp:w { set_protected_nopar } { n } +\__cs_tmp:w { set_protected_nopar } { e } \__cs_tmp:w { set_protected_nopar } { x } \__cs_tmp:w { gset } { n } +\__cs_tmp:w { gset } { e } \__cs_tmp:w { gset } { x } \__cs_tmp:w { gset_nopar } { n } +\__cs_tmp:w { gset_nopar } { e } \__cs_tmp:w { gset_nopar } { x } \__cs_tmp:w { gset_protected } { n } +\__cs_tmp:w { gset_protected } { e } \__cs_tmp:w { gset_protected } { x } \__cs_tmp:w { gset_protected_nopar } { n } +\__cs_tmp:w { gset_protected_nopar } { e } \__cs_tmp:w { gset_protected_nopar } { x } \__cs_tmp:w { new } { n } +\__cs_tmp:w { new } { e } \__cs_tmp:w { new } { x } \__cs_tmp:w { new_nopar } { n } +\__cs_tmp:w { new_nopar } { e } \__cs_tmp:w { new_nopar } { x } \__cs_tmp:w { new_protected } { n } +\__cs_tmp:w { new_protected } { e } \__cs_tmp:w { new_protected } { x } \__cs_tmp:w { new_protected_nopar } { n } +\__cs_tmp:w { new_protected_nopar } { e } \__cs_tmp:w { new_protected_nopar } { x } \prg_new_conditional:Npnn \cs_if_eq:NN #1#2 { p , T , F , TF } { @@ -2214,7 +2262,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_if_exist:NTF #1 {#2} { - \msg_error:nnx { kernel } { variable-not-defined } + \msg_error:nne { kernel } { variable-not-defined } { \token_to_str:N #1 } } } @@ -2246,7 +2294,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \group_begin: \int_set:Nn \tex_escapechar:D { `\\ } - \exp_args:NNx + \exp_args:NNe \group_end: #1 { \token_to_str:N #2 = \cs_meaning:N #2 } } @@ -2256,7 +2304,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__kernel_group_show:NN \int_zero:N 0 } \cs_new_protected:Npn \__kernel_group_show:NN #1#2 { - \use:x + \use:e { #1 \tex_interactionmode:D \int_set:Nn \tex_tracingonline:D {#2} @@ -2271,7 +2319,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_use:N \tex_errorcontextlines:D } } } -\use:x +\use:e { \exp_not:n { \cs_new:Npn \__kernel_prefix_arg_replacement:wN #1 } \tl_to_str:n { macro : } \exp_not:n { #2 -> #3 \s__kernel_stop #4 } @@ -2345,7 +2393,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \use:nn { \cs_new_eq:NN \exp_stop_f: } { ~ } \cs_new_protected:Npn \::x #1 \::: #2#3 { - \cs_set_nopar:Npx \l__exp_internal_tl + \cs_set_nopar:Npe \l__exp_internal_tl { \exp_not:n { #1 \::: } { \exp_not:n {#2} {#3} } } \l__exp_internal_tl } @@ -2480,6 +2528,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #3 \exp_after:wN { \exp:w \__exp_eval_register:c {#4} } } +\cs_new:Npn \exp_args:NNNe #1#2#3#4 + { + \exp_after:wN #1 + \exp_after:wN #2 + \exp_after:wN #3 + \tex_expanded:D { {#4} } + } \cs_new:Npn \exp_args:NcNc #1#2#3#4 { \exp_after:wN #1 @@ -2525,7 +2580,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \::x_unbraced \::: #1#2 { - \cs_set_nopar:Npx \l__exp_internal_tl { \exp_not:n {#1} #2 } + \cs_set_nopar:Npe \l__exp_internal_tl { \exp_not:n {#1} #2 } \l__exp_internal_tl } \cs_new:Npn \exp_last_unbraced:No #1#2 { \exp_after:wN #1 #2 } @@ -2631,7 +2686,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \cs_generate_variant:Nn #1#2 { \__cs_generate_variant:N #1 - \use:x + \use:e { \__cs_generate_variant:nnNN \cs_split_function:N #1 @@ -2643,18 +2698,18 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \cs_generate_variant:cn { \exp_args:Nc \cs_generate_variant:Nn } -\cs_new_protected:Npx \__cs_generate_variant:N #1 +\cs_new_protected:Npe \__cs_generate_variant:N #1 { \exp_not:N \exp_after:wN \exp_not:N \if_meaning:w \exp_not:N \exp_not:N #1 #1 - \cs_set_eq:NN \exp_not:N \__cs_tmp:w \cs_new_protected:Npx + \cs_set_eq:NN \exp_not:N \__cs_tmp:w \cs_new_protected:Npe \exp_not:N \else: \exp_not:N \exp_after:wN \exp_not:N \__cs_generate_variant:ww \exp_not:N \token_to_meaning:N #1 \tl_to_str:n { ma } \s__cs_mark - \s__cs_mark \cs_new_protected:Npx + \s__cs_mark \cs_new_protected:Npe \tl_to_str:n { pr } - \s__cs_mark \cs_new:Npx + \s__cs_mark \cs_new:Npe \s__cs_stop \exp_not:N \fi: } @@ -2669,7 +2724,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__cs_generate_variant:nnNN #1#2#3#4 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \__cs_use_none_delimit_by_q_recursion_stop:w \fi: @@ -2680,7 +2735,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_meaning:w \scan_stop: #4 \exp_after:wN \__cs_use_none_delimit_by_q_recursion_stop:w \fi: - \use:x + \use:e { \exp_not:N \__cs_generate_variant:wwNN \__cs_generate_variant_loop:nNwN { } @@ -2754,7 +2809,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_not:n { \s__cs_mark - \msg_error:nnxx { kernel } { variant-too-long } + \msg_error:nnee { kernel } { variant-too-long } {#5} { \token_to_str:N #3 } \use_none:nnn \s__cs_stop @@ -2769,7 +2824,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_not:n { \s__cs_mark - \msg_error:nnxxxx { kernel } { invalid-variant } + \msg_error:nneeee { kernel } { invalid-variant } {#7} { \token_to_str:N #5 } {#1} {#2} \use_none:nnn \s__cs_stop @@ -2783,7 +2838,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #3 \s__cs_stop #4 #5 {#6} {#7} \exp_not:n { - \msg_error:nnxxxx + \msg_error:nneeee { kernel } { deprecated-variant } {#7} { \token_to_str:N #5 } {#1} {#2} } @@ -2811,11 +2866,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_end: } } -\cs_new_protected:Npx \__cs_generate_internal_variant:n #1 +\cs_new_protected:Npe \__cs_generate_internal_variant:n #1 { \exp_not:N \__cs_generate_internal_variant:wwnNwn #1 \s__cs_mark - { \cs_set_eq:NN \exp_not:N \__cs_tmp:w \cs_new_protected:Npx } + { \cs_set_eq:NN \exp_not:N \__cs_tmp:w \cs_new_protected:Npe } \cs_new_protected:cpn \use:x \token_to_str:N x \s__cs_mark @@ -2848,7 +2903,7 @@ Type H <return> for immediate help}\def~{\errmessage{% ##3 \s__cs_mark { - \use:x + \use:e { ##1 { exp_args:N ##3 } { \__cs_generate_internal_variant_loop:n ##3 { : \use_i:nn } } @@ -2920,7 +2975,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \prg_generate_conditional_variant:Nnn #1 { - \use:x + \use:e { \__cs_generate_variant:nnNnn \cs_split_function:N #1 @@ -2929,7 +2984,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__cs_generate_variant:nnNnn #1#2#3#4#5 { \if_meaning:w \c_false_bool #3 - \msg_error:nnx { kernel } { missing-colon } + \msg_error:nne { kernel } { missing-colon } { \token_to_str:c {#1} } \__cs_use_i_delimit_by_s_stop:nw \fi: @@ -2949,7 +3004,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_if_exist_use:cTF { __cs_generate_variant_#1_form:nnn } { {#3} {#4} {#5} } { - \msg_error:nnxx + \msg_error:nnee { kernel } { conditional-form-unknown } {#1} { \token_to_str:c { #3 : #4 } } } @@ -3137,18 +3192,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \__kernel_tl_to_str:w \exp_after:wN {#1} \q_nil } \cs_new_protected:Npn \__kernel_quark_new_test:N #1 - { \__quark_new_test_aux:Nx #1 { \__quark_module_name:N #1 } } + { \__quark_new_test_aux:Ne #1 { \__quark_module_name:N #1 } } \cs_new_protected:Npn \__quark_new_test_aux:Nn #1 #2 { \if_meaning:w \q_nil #2 \q_nil - \msg_error:nnx { quark } { invalid-function } + \msg_error:nne { quark } { invalid-function } { \token_to_str:N #1 } \else: \__quark_new_test:Nccn #1 { q__#2_recursion_tail } { q__#2_recursion_stop } { __#2 } \fi: } -\cs_generate_variant:Nn \__quark_new_test_aux:Nn { Nx } +\cs_generate_variant:Nn \__quark_new_test_aux:Nn { Ne } \cs_new_protected:Npn \__quark_new_test:NNNn #1 { \exp_last_unbraced:Nf \__quark_new_test_aux:nnNNnnnn @@ -3158,18 +3213,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \__quark_new_test:NNNn { Ncc } \cs_new_protected:Npn \__kernel_quark_new_conditional:Nn #1 { - \__quark_new_conditional:Nxxn #1 + \__quark_new_conditional:Neen #1 { \__quark_quark_conditional_name:N #1 } { \__quark_module_name:N #1 } } \cs_new_protected:Npn \__quark_new_conditional:Nnnn #1#2#3#4 { \if_meaning:w \q_nil #2 \q_nil - \msg_error:nnx { quark } { invalid-function } + \msg_error:nne { quark } { invalid-function } { \token_to_str:N #1 } \else: \if_meaning:w \q_nil #3 \q_nil - \msg_error:nnx { quark } { invalid-function } + \msg_error:nne { quark } { invalid-function } { \token_to_str:N #1 } \else: \exp_last_unbraced:Nf \__quark_new_test_aux:nnNNnnnn @@ -3179,12 +3234,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \fi: } -\cs_generate_variant:Nn \__quark_new_conditional:Nnnn { Nxx } +\cs_generate_variant:Nn \__quark_new_conditional:Nnnn { Nee } \cs_new_protected:Npn \__quark_new_test_aux:nnNNnnnn #1 #2 #3 #4 #5 { \cs_if_exist_use:cTF { __quark_new_#5_#2:Nnnn } { #4 } { - \msg_error:nnxx { quark } { invalid-function } + \msg_error:nnee { quark } { invalid-function } { \token_to_str:N #4 } {#2} \use_none:nnn } @@ -3312,7 +3367,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_in:NnTF \g__scan_marks_tl { #1 } { - \msg_error:nnx { scanmark } { already-defined } + \msg_error:nne { scanmark } { already-defined } { \token_to_str:N #1 } } { @@ -3330,8 +3385,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \use_none_delimit_by_s_stop:w #1 \s_stop { } %% File: l3tl.dtx -\cs_new_eq:NN \__kernel_tl_set:Nx \cs_set_nopar:Npx -\cs_new_eq:NN \__kernel_tl_gset:Nx \cs_gset_nopar:Npx +\cs_new_eq:NN \__kernel_tl_set:Ne \cs_set_nopar:Npe +\cs_new_eq:NN \__kernel_tl_gset:Ne \cs_gset_nopar:Npe \cs_new_protected:Npn \tl_new:N #1 { \__kernel_chk_if_free_cs:N #1 @@ -3341,15 +3396,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \tl_const:Nn #1#2 { \__kernel_chk_if_free_cs:N #1 - \cs_gset_nopar:Npx #1 { \__kernel_exp_not:w {#2} } - } -\cs_new_protected:Npn \tl_const:Nx #1#2 - { - \__kernel_chk_if_free_cs:N #1 - \cs_gset_nopar:Npx #1 {#2} + \cs_gset_nopar:Npe #1 { \__kernel_exp_not:w {#2} } } -\cs_generate_variant:Nn \tl_const:Nn { c } -\cs_generate_variant:Nn \tl_const:Nx { c } +\cs_generate_variant:Nn \tl_const:Nn { Ne , c , ce } +\cs_generate_variant:Nn \tl_const:Nn { Nx , cx } \cs_new_protected:Npn \tl_clear:N #1 { \tex_let:D #1 = ~ \c_empty_tl } \cs_new_protected:Npn \tl_gclear:N #1 @@ -3370,7 +3420,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \tl_gset_eq:NN { cN, Nc, cc } \cs_new_protected:Npn \tl_concat:NNN #1#2#3 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#3} @@ -3378,7 +3428,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_gconcat:NNN #1#2#3 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#3} @@ -3391,143 +3441,167 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_const:Nn \c_empty_tl { } \group_begin: \tex_catcode:D `- = 11 ~ -\tl_const:Nx \c_novalue_tl { - NoValue \token_to_str:N - } +\tl_const:Ne \c_novalue_tl { - NoValue \token_to_str:N - } \group_end: \tl_const:Nn \c_space_tl { ~ } \cs_new_protected:Npn \tl_set:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w {#2} } } + { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w {#2} } } \cs_new_protected:Npn \tl_set:No #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_set:Nx #1#2 - { \__kernel_tl_set:Nx #1 {#2} } + { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } \cs_new_protected:Npn \tl_gset:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w {#2} } } + { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w {#2} } } \cs_new_protected:Npn \tl_gset:No #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_gset:Nx #1#2 - { \__kernel_tl_gset:Nx #1 {#2} } + { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } \cs_generate_variant:Nn \tl_set:Nn { NV , Nv , Ne , Nf } \cs_generate_variant:Nn \tl_set:Nn { c, cV , cv , ce , cf } -\cs_generate_variant:Nn \tl_set:Nx { c } \cs_generate_variant:Nn \tl_set:No { c } +\cs_generate_variant:Nn \tl_set:Nn { Nx , cx } \cs_generate_variant:Nn \tl_gset:Nn { NV , Nv , Ne , Nf } \cs_generate_variant:Nn \tl_gset:Nn { c, cV , cv , ce , cf } -\cs_generate_variant:Nn \tl_gset:Nx { c } \cs_generate_variant:Nn \tl_gset:No { c } +\cs_generate_variant:Nn \tl_gset:Nn { Nx , cx } \cs_new_protected:Npn \tl_put_left:Nn #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_put_left:NV #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_put_left:Nv #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } +\cs_new_protected:Npn \tl_put_left:Ne #1#2 + { + \__kernel_tl_set:Ne #1 + { + \__kernel_exp_not:w \tex_expanded:D { {#2} } + \__kernel_exp_not:w \exp_after:wN {#1} + } + } \cs_new_protected:Npn \tl_put_left:No #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } -\cs_new_protected:Npn \tl_put_left:Nx #1#2 - { \__kernel_tl_set:Nx #1 { #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:Nn #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:NV #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:Nv #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } +\cs_new_protected:Npn \tl_gput_left:Ne #1#2 + { + \__kernel_tl_gset:Ne #1 + { + \__kernel_exp_not:w \tex_expanded:D { {#2} } + \__kernel_exp_not:w \exp_after:wN {#1} + } + } \cs_new_protected:Npn \tl_gput_left:No #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } -\cs_new_protected:Npn \tl_gput_left:Nx #1#2 - { \__kernel_tl_gset:Nx #1 { #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_generate_variant:Nn \tl_put_left:Nn { c } \cs_generate_variant:Nn \tl_put_left:NV { c } \cs_generate_variant:Nn \tl_put_left:Nv { c } +\cs_generate_variant:Nn \tl_put_left:Ne { c } \cs_generate_variant:Nn \tl_put_left:No { c } -\cs_generate_variant:Nn \tl_put_left:Nx { c } +\cs_generate_variant:Nn \tl_put_left:Nn { Nx, cx } \cs_generate_variant:Nn \tl_gput_left:Nn { c } \cs_generate_variant:Nn \tl_gput_left:NV { c } -\cs_generate_variant:Nn \tl_gput_left:NV { c } +\cs_generate_variant:Nn \tl_gput_left:Nv { c } +\cs_generate_variant:Nn \tl_gput_left:Ne { c } \cs_generate_variant:Nn \tl_gput_left:No { c } -\cs_generate_variant:Nn \tl_gput_left:Nx { c } +\cs_generate_variant:Nn \tl_gput_left:Nn { Nx , cx } \cs_new_protected:Npn \tl_put_right:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } + { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } \cs_new_protected:Npn \tl_put_right:NV #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } \cs_new_protected:Npn \tl_put_right:Nv #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } } +\cs_new_protected:Npn \tl_put_right:Ne #1#2 + { + \__kernel_tl_set:Ne #1 + { + \__kernel_exp_not:w \exp_after:wN {#1} + \__kernel_exp_not:w \tex_expanded:D { {#2} } + } + } \cs_new_protected:Npn \tl_put_right:No #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_put_right:Nx #1#2 - { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} #2 } } \cs_new_protected:Npn \tl_gput_right:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } + { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } \cs_new_protected:Npn \tl_gput_right:NV #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } \cs_new_protected:Npn \tl_gput_right:Nv #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } } +\cs_new_protected:Npn \tl_gput_right:Ne #1#2 + { + \__kernel_tl_gset:Ne #1 + { + \__kernel_exp_not:w \exp_after:wN {#1} + \__kernel_exp_not:w \tex_expanded:D { {#2} } + } + } \cs_new_protected:Npn \tl_gput_right:No #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \exp_after:wN {#2} } } -\cs_new_protected:Npn \tl_gput_right:Nx #1#2 - { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} #2 } } \cs_generate_variant:Nn \tl_put_right:Nn { c } \cs_generate_variant:Nn \tl_put_right:NV { c } \cs_generate_variant:Nn \tl_put_right:Nv { c } +\cs_generate_variant:Nn \tl_put_right:Ne { c } \cs_generate_variant:Nn \tl_put_right:No { c } -\cs_generate_variant:Nn \tl_put_right:Nx { c } +\cs_generate_variant:Nn \tl_put_right:Nn { Nx , cx } \cs_generate_variant:Nn \tl_gput_right:Nn { c } \cs_generate_variant:Nn \tl_gput_right:NV { c } \cs_generate_variant:Nn \tl_gput_right:Nv { c } +\cs_generate_variant:Nn \tl_gput_right:Ne { c } \cs_generate_variant:Nn \tl_gput_right:No { c } -\cs_generate_variant:Nn \tl_gput_right:Nx { c } +\cs_generate_variant:Nn \tl_gput_right:Nn { Nx, cx } \quark_new:N \q__tl_nil \quark_new:N \q__tl_mark \quark_new:N \q__tl_stop @@ -3535,7 +3609,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \quark_new:N \q__tl_recursion_stop \__kernel_quark_new_test:N \__tl_if_recursion_tail_break:nN \__kernel_quark_new_conditional:Nn \__tl_quark_if_nil:n { TF } -\tl_const:Nx \c__tl_rescan_marker_tl { : \token_to_str:N : } +\tl_const:Ne \c__tl_rescan_marker_tl { : \token_to_str:N : } \cs_new_protected:Npn \tl_rescan:nn #1#2 { \tl_set_rescan:Nnn \l__tl_internal_a_tl {#1} {#2} @@ -3576,10 +3650,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_end: #1 #2 {#3} } -\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV , Nno , Nnx } -\cs_generate_variant:Nn \tl_set_rescan:Nnn { c , cnV , cno , cnx } -\cs_generate_variant:Nn \tl_gset_rescan:Nnn { NnV , Nno , Nnx } -\cs_generate_variant:Nn \tl_gset_rescan:Nnn { c , cnV , cno , cnx } +\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV , Nne , c , cnV , cne } +\cs_generate_variant:Nn \tl_set_rescan:Nnn { Nno , Nnx , cno , cnx } +\cs_generate_variant:Nn \tl_gset_rescan:Nnn { NnV , Nne , c , cnV , cne } +\cs_generate_variant:Nn \tl_gset_rescan:Nnn { Nno , Nnx , cno , cnx } \cs_new_protected:Npn \__tl_set_rescan:nNN #1 { \int_compare:nNnTF \tex_newlinechar:D < 0 @@ -3636,26 +3710,34 @@ Type H <return> for immediate help}\def~{\errmessage{% \c__tl_rescan_marker_tl #2 { \use_i:nn \exp_end: #1 } \cs_new_protected:Npn \tl_replace_once:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_set:Nx } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_set:Ne } \cs_new_protected:Npn \tl_greplace_once:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_gset:Nx } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_gset:Ne } \cs_new_protected:Npn \tl_replace_all:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_set:Nx } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_set:Ne } \cs_new_protected:Npn \tl_greplace_all:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_gset:Nx } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_gset:Ne } +\cs_generate_variant:Nn \tl_replace_once:Nnn + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } \cs_generate_variant:Nn \tl_replace_once:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { Nx , Nnx , Nxx , cxn , cnx , cxx } \cs_generate_variant:Nn \tl_greplace_once:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } +\cs_generate_variant:Nn \tl_greplace_once:Nnn + { Nx , Nnx , Nxx , cxn , cnx , cxx } +\cs_generate_variant:Nn \tl_replace_all:Nnn + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } \cs_generate_variant:Nn \tl_replace_all:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { Nx , Nnx , Nxx , cxn , cnx , cxx } \cs_generate_variant:Nn \tl_greplace_all:Nnn - { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx } + { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } +\cs_generate_variant:Nn \tl_greplace_all:Nnn + { Nx , Nnx , Nxx , cxn , cnx , cxx } \cs_new_protected:Npn \__tl_replace:NnNNNnn #1#2#3#4#5#6#7 { \tl_if_empty:nTF {#6} { - \msg_error:nnx { kernel } { empty-search-pattern } + \msg_error:nne { kernel } { empty-search-pattern } { \tl_to_str:n {#7} } } { @@ -3684,7 +3766,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_align_safe_begin: \cs_set:Npn \__tl_replace_wrap:w ##1 #1 ##2 { \__kernel_exp_not:w \exp_after:wN { \use_none:nn ##1 } ##2 } - \cs_set:Npx \__tl_replace_next:w ##1 #5 + \cs_set:Npe \__tl_replace_next:w ##1 #5 { \exp_not:N \__tl_replace_wrap:w ##1 \exp_not:n { #1 } @@ -3711,14 +3793,16 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_replace_once:Nnn #1 {#2} { } } \cs_new_protected:Npn \tl_gremove_once:Nn #1#2 { \tl_greplace_once:Nnn #1 {#2} { } } -\cs_generate_variant:Nn \tl_remove_once:Nn { NV , Nx , c , cV , cx } -\cs_generate_variant:Nn \tl_gremove_once:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \tl_remove_once:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \tl_gremove_once:Nn { NV , Ne , c , cV , ce } \cs_new_protected:Npn \tl_remove_all:Nn #1#2 { \tl_replace_all:Nnn #1 {#2} { } } \cs_new_protected:Npn \tl_gremove_all:Nn #1#2 { \tl_greplace_all:Nnn #1 {#2} { } } -\cs_generate_variant:Nn \tl_remove_all:Nn { NV , Nx , c , cV , cx } -\cs_generate_variant:Nn \tl_gremove_all:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \tl_remove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \tl_remove_all:Nn { Nx , cx } +\cs_generate_variant:Nn \tl_gremove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \tl_gremove_all:Nn { Nx , cx } \prg_new_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF } { \if_meaning:w #1 \c_empty_tl @@ -3794,7 +3878,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_return_false: \fi: } -\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { V , nV , x , nx } { TF , T , F } +\prg_generate_conditional_variant:Nnn \tl_if_eq:nn + { nV , ne , nx , e , ee , x , xx } + { TF , T , F } \cs_new_protected:Npn \tl_if_in:NnT { \exp_args:No \tl_if_in:nnT } \cs_new_protected:Npn \tl_if_in:NnF { \exp_args:No \tl_if_in:nnF } \cs_new_protected:Npn \tl_if_in:NnTF { \exp_args:No \tl_if_in:nnTF } @@ -3829,6 +3915,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \tl_if_single:NT { \exp_args:No \tl_if_single:nT } \cs_new:Npn \tl_if_single:NF { \exp_args:No \tl_if_single:nF } \cs_new:Npn \tl_if_single:NTF { \exp_args:No \tl_if_single:nTF } +\prg_generate_conditional_variant:Nnn \tl_if_single:N {c} { p , T , F , TF } \prg_new_conditional:Npnn \tl_if_single:n #1 { p , T , F , TF } { \if:w \scan_stop: \exp_after:wN \__tl_if_single:nnw @@ -3990,14 +4077,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__tl_trim_mark: #1 } { \__kernel_exp_not:w \exp_after:wN } } -\cs_generate_variant:Nn \tl_trim_spaces:n { o } +\cs_generate_variant:Nn \tl_trim_spaces:n { V , v , e , o } \cs_new:Npn \tl_trim_spaces_apply:nN #1#2 { \__tl_trim_spaces:nn { \__tl_trim_mark: #1 } { \exp_args:No #2 } } \cs_generate_variant:Nn \tl_trim_spaces_apply:nN { o } \cs_new_protected:Npn \tl_trim_spaces:N #1 - { \__kernel_tl_set:Nx #1 { \exp_args:No \tl_trim_spaces:n {#1} } } + { \__kernel_tl_set:Ne #1 { \exp_args:No \tl_trim_spaces:n {#1} } } \cs_new_protected:Npn \tl_gtrim_spaces:N #1 - { \__kernel_tl_gset:Nx #1 { \exp_args:No \tl_trim_spaces:n {#1} } } + { \__kernel_tl_gset:Ne #1 { \exp_args:No \tl_trim_spaces:n {#1} } } \cs_generate_variant:Nn \tl_trim_spaces:N { c } \cs_generate_variant:Nn \tl_gtrim_spaces:N { c } \cs_set_protected:Npn \__tl_tmp:w #1 @@ -4201,7 +4288,7 @@ Type H <return> for immediate help}\def~{\errmessage{% {##1} } \__tl_tmp:w { ~ } -\exp_args:Nnx \use:n { \cs_new:Npn \__tl_act_loop:w #1 \s__tl_act_stop } +\exp_args:Nne \use:n { \cs_new:Npn \__tl_act_loop:w #1 \s__tl_act_stop } { \exp_not:o { \__tl_act_if_head_is_space:nTF {#1} } \exp_not:N \__tl_act_space:wwNNN @@ -4267,9 +4354,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__tl_reverse_space: { \__tl_act_reverse_output:n { ~ } } \cs_new_protected:Npn \tl_reverse:N #1 - { \__kernel_tl_set:Nx #1 { \exp_args:No \tl_reverse:n { #1 } } } + { \__kernel_tl_set:Ne #1 { \exp_args:No \tl_reverse:n { #1 } } } \cs_new_protected:Npn \tl_greverse:N #1 - { \__kernel_tl_gset:Nx #1 { \exp_args:No \tl_reverse:n { #1 } } } + { \__kernel_tl_gset:Ne #1 { \exp_args:No \tl_reverse:n { #1 } } } \cs_generate_variant:Nn \tl_reverse:N { c } \cs_generate_variant:Nn \tl_greverse:N { c } \cs_new:Npn \tl_item:nn #1#2 @@ -4415,14 +4502,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \token_to_str:N #2 = \__kernel_exp_not:w \exp_after:wN {#2} } } { - \msg_error:nnxxx { kernel } { bad-type } + \msg_error:nneee { kernel } { bad-type } { \token_to_str:N #2 } { \token_to_meaning:N #2 } { tl } } } } \cs_new_protected:Npn \tl_show:n #1 { \iow_wrap:nnnN { >~ \tl_to_str:n {#1} . } { } { } \__tl_show:n } -\cs_generate_variant:Nn \tl_show:n { x } +\cs_generate_variant:Nn \tl_show:n { e , x } \cs_new_protected:Npn \__tl_show:n #1 { \tl_set:Nf \l__tl_internal_a_tl { \__tl_show:w #1 \s__tl_stop } @@ -4438,7 +4525,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__tl_show:w #1 > #2 . \s__tl_stop {#2} \cs_new_protected:Npn \tl_log:n #1 { \iow_wrap:nnnN { > ~ \tl_to_str:n {#1} . } { } { } \iow_log:n } -\cs_generate_variant:Nn \tl_log:n { x } +\cs_generate_variant:Nn \tl_log:n { e , x } \cs_new_protected:Npn \__kernel_chk_tl_type:NnnT #1#2#3#4 { \__kernel_chk_defined:NT #1 @@ -4446,17 +4533,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_args:Nf \tl_if_empty:nTF { \cs_prefix_spec:N #1 \cs_parameter_spec:N #1 } { - \tl_set:Nx \l__tl_internal_a_tl {#3} + \tl_set:Ne \l__tl_internal_a_tl {#3} \tl_if_eq:NNTF #1 \l__tl_internal_a_tl {#4} { - \msg_error:nnxxxx { kernel } { bad-type } + \msg_error:nneeee { kernel } { bad-type } { \token_to_str:N #1 } { \tl_to_str:N #1 } {#2} { \tl_to_str:N \l__tl_internal_a_tl } } } { - \msg_error:nnxxx { kernel } { bad-type } + \msg_error:nneee { kernel } { bad-type } { \token_to_str:N #1 } { \token_to_meaning:N #1 } {#2} } } @@ -4510,12 +4597,13 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_blank:nF {#1} { - \cs_new_protected:cpx { str_ #1 :Nn } ##1##2 + \cs_new_protected:cpe { str_ #1 :Nn } ##1##2 { - \exp_not:c { tl_ #1 :Nx } ##1 + \exp_not:c { tl_ #1 :Ne } ##1 { \exp_not:N \tl_to_str:n {##2} } } - \cs_generate_variant:cn { str_ #1 :Nn } { NV , Nx , cn , cV , cx } + \cs_generate_variant:cn { str_ #1 :Nn } + { NV , Ne , Nx , cn , cV , ce , cx } \__str_tmp:n } } @@ -4530,13 +4618,13 @@ Type H <return> for immediate help}\def~{\errmessage{% { } \group_end: \cs_new_protected:Npn \str_replace_once:Nnn - { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_set:Nx } + { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_set:Ne } \cs_new_protected:Npn \str_greplace_once:Nnn - { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_gset:Nx } + { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_gset:Ne } \cs_new_protected:Npn \str_replace_all:Nnn - { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_set:Nx } + { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_set:Ne } \cs_new_protected:Npn \str_greplace_all:Nnn - { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_gset:Nx } + { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_gset:Ne } \cs_generate_variant:Nn \str_replace_once:Nnn { c } \cs_generate_variant:Nn \str_greplace_once:Nnn { c } \cs_generate_variant:Nn \str_replace_all:Nnn { c } @@ -4545,10 +4633,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_empty:nTF {#4} { - \msg_error:nnx { kernel } { empty-search-pattern } {#5} + \msg_error:nne { kernel } { empty-search-pattern } {#5} } { - \use:x + \use:e { \exp_not:n { \__str_replace_aux:NNNnnn #1 #2 #3 } { \tl_to_str:N #3 } @@ -4625,7 +4713,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { c , Nc , cc } { T , F , TF , p } \prg_new_protected_conditional:Npnn \str_if_in:Nn #1#2 { T , F , TF } { - \use:x + \use:e { \tl_if_in:nnTF { \tl_to_str:N #1 } { \tl_to_str:n {#2} } } { \prg_return_true: } { \prg_return_false: } } @@ -4633,7 +4721,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { c } { T , F , TF } \prg_new_protected_conditional:Npnn \str_if_in:nn #1#2 { T , F , TF } { - \use:x + \use:e { \tl_if_in:nnTF { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } } { \prg_return_true: } { \prg_return_false: } } @@ -4727,7 +4815,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_gincr:N \g__kernel_prg_map_int \cs_gset_protected:cpn { __str_map_ \int_use:N \g__kernel_prg_map_int :w } ##1 {#2} - \use:x + \use:e { \exp_not:N \__str_map_inline:NN \exp_not:c { __str_map_ \int_use:N \g__kernel_prg_map_int :w } @@ -4748,7 +4836,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \str_map_variable:nNn #1#2#3 { - \use:x + \use:e { \exp_not:n { \__str_map_variable:NnN #2 {#3} } \__kernel_str_to_other_fast:n {#1} @@ -5098,7 +5186,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__str_change_case_codepoint:nN #1#2 { \__str_change_case_char:fnn { \int_eval:n {`#2} } {#1} {#2} } \else: - \cs_new:Npx \__str_change_case_codepoint:nN #1#2 + \cs_new:Npe \__str_change_case_codepoint:nN #1#2 { \exp_not:N \int_compare:nNnTF {`#2} > { "80 } { @@ -5186,19 +5274,19 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \str_mdfive_hash:n #1 { \tex_mdfivesum:D { \tl_to_str:n {#1} } } \cs_new:Npn \str_mdfive_hash:e #1 { \tex_mdfivesum:D {#1} } -\str_const:Nx \c_ampersand_str { \cs_to_str:N \& } -\str_const:Nx \c_atsign_str { \cs_to_str:N \@ } -\str_const:Nx \c_backslash_str { \cs_to_str:N \\ } -\str_const:Nx \c_left_brace_str { \cs_to_str:N \{ } -\str_const:Nx \c_right_brace_str { \cs_to_str:N \} } -\str_const:Nx \c_circumflex_str { \cs_to_str:N \^ } -\str_const:Nx \c_colon_str { \cs_to_str:N \: } -\str_const:Nx \c_dollar_str { \cs_to_str:N \$ } -\str_const:Nx \c_hash_str { \cs_to_str:N \# } -\str_const:Nx \c_percent_str { \cs_to_str:N \% } -\str_const:Nx \c_tilde_str { \cs_to_str:N \~ } -\str_const:Nx \c_underscore_str { \cs_to_str:N \_ } -\str_const:Nx \c_zero_str { 0 } +\str_const:Ne \c_ampersand_str { \cs_to_str:N \& } +\str_const:Ne \c_atsign_str { \cs_to_str:N \@ } +\str_const:Ne \c_backslash_str { \cs_to_str:N \\ } +\str_const:Ne \c_left_brace_str { \cs_to_str:N \{ } +\str_const:Ne \c_right_brace_str { \cs_to_str:N \} } +\str_const:Ne \c_circumflex_str { \cs_to_str:N \^ } +\str_const:Ne \c_colon_str { \cs_to_str:N \: } +\str_const:Ne \c_dollar_str { \cs_to_str:N \$ } +\str_const:Ne \c_hash_str { \cs_to_str:N \# } +\str_const:Ne \c_percent_str { \cs_to_str:N \% } +\str_const:Ne \c_tilde_str { \cs_to_str:N \~ } +\str_const:Ne \c_underscore_str { \cs_to_str:N \_ } +\str_const:Ne \c_zero_str { 0 } \str_new:N \l_tmpa_str \str_new:N \l_tmpb_str \str_new:N \g_tmpa_str @@ -5258,22 +5346,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \seq_gset_eq:cc \tl_gset_eq:cc \cs_new_protected:Npn \seq_set_from_clist:NN #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \s__seq \clist_map_function:NN #2 \__seq_wrap_item:n } } \cs_new_protected:Npn \seq_set_from_clist:Nn #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n } } \cs_new_protected:Npn \seq_gset_from_clist:NN #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \s__seq \clist_map_function:NN #2 \__seq_wrap_item:n } } \cs_new_protected:Npn \seq_gset_from_clist:Nn #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n } } \cs_generate_variant:Nn \seq_set_from_clist:NN { Nc } @@ -5284,18 +5372,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \seq_gset_from_clist:Nn { c } \cs_new_protected:Npn \seq_const_from_clist:Nn #1#2 { - \tl_const:Nx #1 + \tl_const:Ne #1 { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n } } \cs_generate_variant:Nn \seq_const_from_clist:Nn { c } \cs_new_protected:Npn \seq_set_split:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_set:Nx \tl_trim_spaces:n } + { \__seq_set_split:NNNnn \__kernel_tl_set:Ne \tl_trim_spaces:n } \cs_new_protected:Npn \seq_gset_split:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_gset:Nx \tl_trim_spaces:n } + { \__seq_set_split:NNNnn \__kernel_tl_gset:Ne \tl_trim_spaces:n } \cs_new_protected:Npn \seq_set_split_keep_spaces:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_set:Nx \exp_not:n } + { \__seq_set_split:NNNnn \__kernel_tl_set:Ne \exp_not:n } \cs_new_protected:Npn \seq_gset_split_keep_spaces:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_gset:Nx \exp_not:n } + { \__seq_set_split:NNNnn \__kernel_tl_gset:Ne \exp_not:n } \cs_new_protected:Npn \__seq_set_split:NNNnn #1#2#3#4#5 { \tl_if_empty:nTF {#4} @@ -5315,7 +5403,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__seq_set_split_end: \__seq_set_split:Nw #2 \prg_do_nothing: } - \__kernel_tl_set:Nx \l__seq_internal_a_tl { \l__seq_internal_a_tl } + \__kernel_tl_set:Ne \l__seq_internal_a_tl { \l__seq_internal_a_tl } } #1 #3 { \s__seq \l__seq_internal_a_tl } } @@ -5327,8 +5415,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__seq_set_split:w #1 \__seq_set_split_end: { \__seq_wrap_item:n {#1} } -\cs_generate_variant:Nn \seq_set_split:Nnn { NV , NnV , NVV , Nnx , Nxx } -\cs_generate_variant:Nn \seq_gset_split:Nnn { NV , NnV , NVV , Nnx , Nxx } +\cs_generate_variant:Nn \seq_set_split:Nnn { NV , NnV , NVV , Nne , Nee } +\cs_generate_variant:Nn \seq_set_split:Nnn { Nnx , Nxx } +\cs_generate_variant:Nn \seq_gset_split:Nnn { NV , NnV , NVV , Nne , Nee } +\cs_generate_variant:Nn \seq_gset_split:Nnn { Nnx , Nxx } \cs_generate_variant:Nn \seq_set_split_keep_spaces:Nnn { NnV } \cs_generate_variant:Nn \seq_gset_split_keep_spaces:Nnn { NnV } \cs_new_protected:Npn \seq_concat:NNN #1#2#3 @@ -5343,7 +5433,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { TF , T , F , p } \cs_new_protected:Npn \seq_put_left:Nn #1#2 { - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \exp_not:n { \s__seq \__seq_item:n {#2} } \exp_not:f { \exp_after:wN \__seq_put_left_aux:w #1 } @@ -5351,25 +5441,25 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \seq_gput_left:Nn #1#2 { - \__kernel_tl_gset:Nx #1 + \__kernel_tl_gset:Ne #1 { \exp_not:n { \s__seq \__seq_item:n {#2} } \exp_not:f { \exp_after:wN \__seq_put_left_aux:w #1 } } } \cs_new:Npn \__seq_put_left_aux:w \s__seq { \exp_stop_f: } -\cs_generate_variant:Nn \seq_put_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_put_left:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \seq_gput_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_gput_left:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_put_left:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_put_left:Nn { c , cV , cv , ce , co ,cx } +\cs_generate_variant:Nn \seq_gput_left:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_gput_left:Nn { c , cV , cv , ce , co , cx } \cs_new_protected:Npn \seq_put_right:Nn #1#2 { \tl_put_right:Nn #1 { \__seq_item:n {#2} } } \cs_new_protected:Npn \seq_gput_right:Nn #1#2 { \tl_gput_right:Nn #1 { \__seq_item:n {#2} } } -\cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \seq_put_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_put_right:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_put_right:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_put_right:Nn { c , cV , cv , ce , co , cx } +\cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , Ne , No , Nx } +\cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , ce , co , cx } \cs_new:Npn \__seq_wrap_item:n #1 { \exp_not:n { \__seq_item:n {#1} } } \seq_new:N \l__seq_remove_seq \cs_new_protected:Npn \seq_remove_duplicates:N @@ -5389,9 +5479,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \seq_remove_duplicates:N { c } \cs_generate_variant:Nn \seq_gremove_duplicates:N { c } \cs_new_protected:Npn \seq_remove_all:Nn - { \__seq_remove_all_aux:NNn \__kernel_tl_set:Nx } + { \__seq_remove_all_aux:NNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gremove_all:Nn - { \__seq_remove_all_aux:NNn \__kernel_tl_gset:Nx } + { \__seq_remove_all_aux:NNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__seq_remove_all_aux:NNn #1#2#3 { \__seq_push_item_def:n @@ -5412,19 +5502,21 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 #2 {#2} \__seq_pop_item_def: } -\cs_generate_variant:Nn \seq_remove_all:Nn { NV , Nx , c , cV , cx } -\cs_generate_variant:Nn \seq_gremove_all:Nn { NV , Nx , c , cV , cx } +\cs_generate_variant:Nn \seq_remove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \seq_remove_all:Nn { Nx , cx } +\cs_generate_variant:Nn \seq_gremove_all:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \seq_gremove_all:Nn { Nx , cx } \cs_new_eq:NN \__seq_int_eval:w \tex_numexpr:D \cs_new_protected:Npn \seq_set_item:Nnn #1#2#3 - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_i:nn } + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Ne \use_i:nn } \cs_new_protected:Npn \seq_gset_item:Nnn #1#2#3 - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_i:nn } + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Ne \use_i:nn } \cs_generate_variant:Nn \seq_set_item:Nnn { c } \cs_generate_variant:Nn \seq_gset_item:Nnn { c } \prg_new_protected_conditional:Npnn \seq_set_item:Nnn #1#2#3 { TF , T , F } - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_ii:nn } + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Ne \use_ii:nn } \prg_new_protected_conditional:Npnn \seq_gset_item:Nnn #1#2#3 { TF , T , F } - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_ii:nn } + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Ne \use_ii:nn } \prg_generate_conditional_variant:Nnn \seq_set_item:Nnn { c } { TF , T , F } \prg_generate_conditional_variant:Nnn \seq_gset_item:Nnn { c } { TF , T , F } \cs_new_protected:Npn \__seq_set_item:NnnNN #1#2#3 @@ -5450,7 +5542,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { #6 { - \msg_error:nnxxx { seq } { item-too-large } + \msg_error:nneee { seq } { item-too-large } { \token_to_str:N #3 } {#2} {#1} } { \prg_return_false: } @@ -5481,9 +5573,9 @@ Type H <return> for immediate help}\def~{\errmessage{% #5 #2 } \cs_new_protected:Npn \seq_reverse:N - { \__seq_reverse:NN \__kernel_tl_set:Nx } + { \__seq_reverse:NN \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_greverse:N - { \__seq_reverse:NN \__kernel_tl_gset:Nx } + { \__seq_reverse:NN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__seq_reverse:NN #1 #2 { \cs_set_eq:NN \__seq_tmp:w \__seq_item:n @@ -5515,7 +5607,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_compare:nNnTF { \seq_count:N #2 } > \c_max_register_int { - \msg_error:nnx { seq } { shuffle-too-large } + \msg_error:nne { seq } { shuffle-too-large } { \token_to_str:N #2 } } { @@ -5528,7 +5620,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \seq_gclear:N \g__seq_internal_seq \int_step_inline:nn \l__seq_internal_a_int { - \seq_gput_right:Nx \g__seq_internal_seq + \seq_gput_right:Ne \g__seq_internal_seq { \tex_the:D \tex_toks:D ##1 } } \group_end: @@ -5567,7 +5659,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__seq_if_in: { \prg_break:n { \group_end: \prg_return_true: } } \prg_generate_conditional_variant:Nnn \seq_if_in:Nn - { NV , Nv , No , Nx , c , cV , cv , co , cx } { T , F , TF } + { NV , Nv , Ne , No , Nx , c , cV , cv , ce , co , cx } { T , F , TF } \cs_new_protected:Npn \__seq_pop:NNNN #1#2#3#4 { \if_meaning:w #3 \c_empty_seq @@ -5588,7 +5680,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \seq_get_left:NN #1#2 { - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \exp_after:wN \__seq_get_left:wnw #1 \__seq_item:n { \q_no_value } \s__seq_stop @@ -5613,7 +5705,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \seq_gpop_left:NN { c } \cs_new_protected:Npn \seq_get_right:NN #1#2 { - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \exp_after:wN \use_i_ii:nnn \exp_after:wN \__seq_get_right_loop:nw @@ -5630,9 +5722,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__seq_get_right_end:NnN #1#2#3 { \exp_not:n {#2} } \cs_generate_variant:Nn \seq_get_right:NN { c } \cs_new_protected:Npn \seq_pop_right:NN - { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_set:Nx } + { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gpop_right:NN - { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_gset:Nx } + { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__seq_pop_right:NNN #1#2#3 { \cs_set_eq:NN \__seq_tmp:w \__seq_item:n @@ -5644,7 +5736,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 { \if_false: { \fi: } - \__kernel_tl_set:Nx #3 + \__kernel_tl_set:Ne #3 } { } \use_none:nn \cs_set_eq:NN \__seq_item:n \__seq_tmp:w @@ -5672,10 +5764,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__seq_pop_TF:NNNN \__seq_pop_left:NNN \tl_gset:Nn #1 #2 } \prg_new_protected_conditional:Npnn \seq_pop_right:NN #1#2 { T , F , TF } - { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \__kernel_tl_set:Nx #1 #2 } + { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \__kernel_tl_set:Ne #1 #2 } \prg_new_protected_conditional:Npnn \seq_gpop_right:NN #1#2 { T , F , TF } - { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \__kernel_tl_gset:Nx #1 #2 } + { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \__kernel_tl_gset:Ne #1 #2 } \prg_generate_conditional_variant:Nnn \seq_pop_left:NN { c } { T , F , TF } \prg_generate_conditional_variant:Nnn \seq_gpop_left:NN { c } @@ -5747,10 +5839,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \__seq_push_item_def: \cs_gset:Npn \__seq_item:n ##1 } -\cs_new_protected:Npn \__seq_push_item_def:x +\cs_new_protected:Npn \__seq_push_item_def:e { \__seq_push_item_def: - \cs_gset:Npx \__seq_item:n ##1 + \cs_gset:Npe \__seq_item:n ##1 } \cs_new_protected:Npn \__seq_push_item_def: { @@ -5795,7 +5887,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \seq_map_variable:NNn #1#2#3 { - \__seq_push_item_def:x + \__seq_push_item_def:e { \tl_set:Nn \exp_not:N #2 {##1} \exp_not:n {#3} @@ -5861,9 +5953,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_generate_variant:Nn \seq_map_pairwise_function:NNN { Nc , c , cc } \cs_new_protected:Npn \seq_set_map_x:NNn - { \__seq_set_map_x:NNNn \__kernel_tl_set:Nx } + { \__seq_set_map_x:NNNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gset_map_x:NNn - { \__seq_set_map_x:NNNn \__kernel_tl_gset:Nx } + { \__seq_set_map_x:NNNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__seq_set_map_x:NNNn #1#2#3#4 { \__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} } @@ -5871,9 +5963,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__seq_pop_item_def: } \cs_new_protected:Npn \seq_set_map:NNn - { \__seq_set_map:NNNn \__kernel_tl_set:Nx } + { \__seq_set_map:NNNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gset_map:NNn - { \__seq_set_map:NNNn \__kernel_tl_gset:Nx } + { \__seq_set_map:NNNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__seq_set_map:NNNn #1#2#3#4 { \__seq_push_item_def:n { \exp_not:n { \__seq_item:n {#4} } } @@ -5941,26 +6033,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \seq_use:Nn #1#2 { \seq_use:Nnnn #1 {#2} {#2} {#2} } \cs_generate_variant:Nn \seq_use:Nn { c } -\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn -\cs_new_eq:NN \seq_push:NV \seq_put_left:NV -\cs_new_eq:NN \seq_push:Nv \seq_put_left:Nv -\cs_new_eq:NN \seq_push:No \seq_put_left:No -\cs_new_eq:NN \seq_push:Nx \seq_put_left:Nx -\cs_new_eq:NN \seq_push:cn \seq_put_left:cn -\cs_new_eq:NN \seq_push:cV \seq_put_left:cV -\cs_new_eq:NN \seq_push:cv \seq_put_left:cv -\cs_new_eq:NN \seq_push:co \seq_put_left:co -\cs_new_eq:NN \seq_push:cx \seq_put_left:cx +\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn +\cs_generate_variant:Nn \seq_push:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \seq_push:Nn { No , Nx , co , cx } \cs_new_eq:NN \seq_gpush:Nn \seq_gput_left:Nn -\cs_new_eq:NN \seq_gpush:NV \seq_gput_left:NV -\cs_new_eq:NN \seq_gpush:Nv \seq_gput_left:Nv -\cs_new_eq:NN \seq_gpush:No \seq_gput_left:No -\cs_new_eq:NN \seq_gpush:Nx \seq_gput_left:Nx -\cs_new_eq:NN \seq_gpush:cn \seq_gput_left:cn -\cs_new_eq:NN \seq_gpush:cV \seq_gput_left:cV -\cs_new_eq:NN \seq_gpush:cv \seq_gput_left:cv -\cs_new_eq:NN \seq_gpush:co \seq_gput_left:co -\cs_new_eq:NN \seq_gpush:cx \seq_gput_left:cx +\cs_generate_variant:Nn \seq_gpush:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \seq_gpush:Nn { No , Nx , co , cx } \cs_new_eq:NN \seq_get:NN \seq_get_left:NN \cs_new_eq:NN \seq_get:cN \seq_get_left:cN \cs_new_eq:NN \seq_pop:NN \seq_pop_left:NN @@ -5973,9 +6051,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_new_eq_conditional:NNn \seq_pop:cN \seq_pop_left:cN { T , F , TF } \prg_new_eq_conditional:NNn \seq_gpop:NN \seq_gpop_left:NN { T , F , TF } \prg_new_eq_conditional:NNn \seq_gpop:cN \seq_gpop_left:cN { T , F , TF } -\cs_new_protected:Npn \seq_show:N { \__seq_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \seq_show:N { \__seq_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \seq_show:N { c } -\cs_new_protected:Npn \seq_log:N { \__seq_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \seq_log:N { \__seq_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \seq_log:N { c } \cs_new_protected:Npn \__seq_show:NN #1#2 { @@ -6110,7 +6188,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_generate_variant:Nn \int_new:N { c } \cs_new_protected:Npn \int_const:Nn #1#2 - { \exp_args:Nx \__int_const:nN { \int_eval:n {#2} } #1 } + { \__int_const:eN { \int_eval:n {#2} } #1 } +\cs_generate_variant:Nn \int_const:Nn { c } \cs_new_protected:Npn \__int_const:nN #1#2 { \int_compare:nNnTF {#1} < \c_zero_int @@ -6131,7 +6210,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } #2 = \__int_eval:w #1 \__int_eval_end: } -\cs_generate_variant:Nn \int_const:Nn { c } +\cs_generate_variant:Nn \__int_const:nN { e } \if_int_odd:w 0 \cs_if_exist:NT \tex_luatexversion:D { 1 } \cs_if_exist:NT \tex_omathchardef:D { 1 } @@ -6436,7 +6515,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_gincr:N \g__kernel_prg_map_int \exp_args:NNc \__int_step:NNnnnn - \cs_gset_protected:Npx + \cs_gset_protected:Npe { __int_map_ \int_use:N \g__kernel_prg_map_int :w } {#1}{#2}{#3} { @@ -6456,7 +6535,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_compare:nNnTF {#1} > {#2} { - \exp_args:NNo \exp_args:No \__int_to_symbols:nnnn + \__int_to_symbols:ennn { \int_case:nn { 1 + \int_mod:nn { #1 - 1 } {#2} } @@ -6472,6 +6551,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_div_truncate:nn { #2 - 1 } {#3} } {#3} {#4} #1 } +\cs_generate_variant:Nn \__int_to_symbols:nnnn { e } \cs_new:Npn \int_to_alph:n #1 { \int_to_symbols:nnn {#1} { 26 } @@ -6859,7 +6939,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_args:Nc \__kernel_chk_defined:NT { flag~#2 } { - \exp_args:Nx #1 + \exp_args:Ne #1 { \tl_to_str:n { flag~#2~height } = \flag_height:n {#2} } } } @@ -6974,11 +7054,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \token_case_meaning:NnF #2 { - \c_true_bool { \exp_args:Nx #1 { \token_to_str:N #2 = true } } - \c_false_bool { \exp_args:Nx #1 { \token_to_str:N #2 = false } } + \c_true_bool { \exp_args:Ne #1 { \token_to_str:N #2 = true } } + \c_false_bool { \exp_args:Ne #1 { \token_to_str:N #2 = false } } } { - \msg_error:nnxxx { kernel } { bad-type } + \msg_error:nneee { kernel } { bad-type } { \token_to_str:N #2 } { \token_to_meaning:N #2 } { bool } } } @@ -7254,7 +7334,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:cN { #1 _p: } \c_false_bool } } -\str_const:Nx \c_sys_engine_str +\str_const:Ne \c_sys_engine_str { \cs_if_exist:NT \tex_luatexversion:D { luatex } \cs_if_exist:NT \tex_pdftexversion:D { pdftex } @@ -7273,7 +7353,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \group_begin: \cs_set_eq:NN \lua_now:e \tex_directlua:D - \str_const:Nx \c_sys_engine_exec_str + \str_const:Ne \c_sys_engine_exec_str { \sys_if_engine_pdftex:T { pdf } \sys_if_engine_xetex:T { xe } @@ -7291,7 +7371,7 @@ Type H <return> for immediate help}\def~{\errmessage{% tex } \group_end: -\str_const:Nx \c_sys_engine_format_str +\str_const:Ne \c_sys_engine_format_str { \cs_if_exist:NTF \fmtname { @@ -7323,7 +7403,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { unknown } } -\str_const:Nx \c_sys_engine_version_str +\str_const:Ne \c_sys_engine_version_str { \str_case:on \c_sys_engine_str { @@ -7392,7 +7472,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_if_blank:nF {#1} { \tl_gset:Nn \g__sys_backend_tl {#1} } \__sys_load_backend_check:N \g__sys_backend_tl - \str_const:Nx \c_sys_backend_str { \g__sys_backend_tl } + \str_const:Ne \c_sys_backend_str { \g__sys_backend_tl } \__kernel_sys_configuration_load:n { l3backend- \c_sys_backend_str } } @@ -7408,7 +7488,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { xetex } { } } { - \msg_error:nnxx { sys } { wrong-backend } + \msg_error:nnee { sys } { wrong-backend } #1 { xetex } \tl_gset:Nn #1 { xetex } } @@ -7427,7 +7507,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \str_if_eq_p:Vn #1 { luatex } } { \str_if_eq_p:Vn #1 { pdftex } } { - \msg_error:nnxx { sys } { wrong-backend } + \msg_error:nnee { sys } { wrong-backend } #1 { \sys_if_engine_luatex:TF { luatex } { pdftex } } \sys_if_engine_luatex:TF { \tl_gset:Nn #1 { luatex } } @@ -7443,7 +7523,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { dvisvgm } { } } { - \msg_error:nnxx { sys } { wrong-backend } + \msg_error:nnee { sys } { wrong-backend } #1 { dvips } \tl_gset:Nn #1 { dvips } } @@ -7463,7 +7543,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \bool_gset_true:N \g__sys_debug_bool } \tl_new:N \l__sys_internal_tl -\tl_const:Nx \c__sys_marker_tl { : \token_to_str:N : } +\tl_const:Ne \c__sys_marker_tl { : \token_to_str:N : } \cs_new_protected:Npn \sys_get_shell:nnN #1#2#3 { \sys_get_shell:nnNF {#1} {#2} #3 @@ -7479,7 +7559,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_in:nnTF {#1} { " } { - \msg_error:nnx + \msg_error:nne { kernel } { quote-in-shell } {#1} \prg_return_false: } @@ -7515,7 +7595,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \sys_shell_now:n #1 { \iow_now:Nn \c__sys_shell_stream_int {#1} } } -\cs_generate_variant:Nn \sys_shell_now:n { x } +\cs_generate_variant:Nn \sys_shell_now:n { e, x } \sys_if_engine_luatex:TF { \cs_new_protected:Npn \sys_shell_shipout:n #1 @@ -7525,7 +7605,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \sys_shell_shipout:n #1 { \iow_shipout:Nn \c__sys_shell_stream_int {#1} } } -\cs_generate_variant:Nn \sys_shell_shipout:n { x } +\cs_generate_variant:Nn \sys_shell_shipout:n { e , x } \cs_new_protected:Npn \sys_everyjob: { \tl_use:N \g__sys_everyjob_tl @@ -7570,7 +7650,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \__sys_everyjob:n { - \str_const:Nx \c_sys_timestamp_str + \str_const:Ne \c_sys_timestamp_str { \cs_if_exist:NTF \tex_directlua:D { \tex_directlua:D { tex.print(pdf.getcreationdate()) } } @@ -7643,7 +7723,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \g__sys_finalise_tl \__sys_finalise:n { - \str_const:Nx \c_sys_output_str + \str_const:Ne \c_sys_output_str { \int_compare:nNnTF { \cs_if_exist_use:NF \tex_pdfoutput:D { 0 } } > { 0 } @@ -7658,7 +7738,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \g__sys_backend_tl \__sys_finalise:n { - \__kernel_tl_gset:Nx \g__sys_backend_tl + \__kernel_tl_gset:Ne \g__sys_backend_tl { \sys_if_engine_xetex:TF { xetex } @@ -7756,8 +7836,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \clist_new:N \tl_new:N \cs_new_eq:NN \clist_new:c \tl_new:c \cs_new_protected:Npn \clist_const:Nn #1#2 - { \tl_const:Nx #1 { \__clist_sanitize:n {#2} } } -\cs_generate_variant:Nn \clist_const:Nn { c , Nx , cx } + { \tl_const:Ne #1 { \__clist_sanitize:n {#2} } } +\cs_generate_variant:Nn \clist_const:Nn { Ne , c , ce } +\cs_generate_variant:Nn \clist_const:Nn { Nx , cx } \cs_new_eq:NN \clist_clear:N \tl_clear:N \cs_new_eq:NN \clist_clear:c \tl_clear:c \cs_new_eq:NN \clist_gclear:N \tl_gclear:N @@ -7775,9 +7856,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \clist_gset_eq:cN \tl_gset_eq:cN \cs_new_eq:NN \clist_gset_eq:cc \tl_gset_eq:cc \cs_new_protected:Npn \clist_set_from_seq:NN - { \__clist_set_from_seq:NNNN \clist_clear:N \__kernel_tl_set:Nx } + { \__clist_set_from_seq:NNNN \clist_clear:N \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gset_from_seq:NN - { \__clist_set_from_seq:NNNN \clist_gclear:N \__kernel_tl_gset:Nx } + { \__clist_set_from_seq:NNNN \clist_gclear:N \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__clist_set_from_seq:NNNN #1#2#3#4 { \seq_if_empty:NTF #4 @@ -7802,9 +7883,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \clist_gset_from_seq:NN { Nc } \cs_generate_variant:Nn \clist_gset_from_seq:NN { c , cc } \cs_new_protected:Npn \clist_concat:NNN - { \__clist_concat:NNNN \__kernel_tl_set:Nx } + { \__clist_concat:NNNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gconcat:NNN - { \__clist_concat:NNNN \__kernel_tl_gset:Nx } + { \__clist_concat:NNNN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__clist_concat:NNNN #1#2#3#4 { #1 #2 @@ -7821,11 +7902,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_new_eq_conditional:NNn \clist_if_exist:c \cs_if_exist:c { TF , T , F , p } \cs_new_protected:Npn \clist_set:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \__clist_sanitize:n {#2} } } + { \__kernel_tl_set:Ne #1 { \__clist_sanitize:n {#2} } } \cs_new_protected:Npn \clist_gset:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \__clist_sanitize:n {#2} } } -\cs_generate_variant:Nn \clist_set:Nn { NV , No , Nx , c , cV , co , cx } -\cs_generate_variant:Nn \clist_gset:Nn { NV , No , Nx , c , cV , co , cx } + { \__kernel_tl_gset:Ne #1 { \__clist_sanitize:n {#2} } } +\cs_generate_variant:Nn \clist_set:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \clist_set:Nn { No , Nx , co , cx } +\cs_generate_variant:Nn \clist_gset:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \clist_gset:Nn { No , Nx , co , cx } \cs_new_protected:Npn \clist_put_left:Nn { \__clist_put_left:NNNn \clist_concat:NNN \clist_set:Nn } \cs_new_protected:Npn \clist_gput_left:Nn @@ -7835,10 +7918,10 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 \l__clist_internal_clist {#4} #1 #3 \l__clist_internal_clist #3 } -\cs_generate_variant:Nn \clist_put_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_put_left:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \clist_gput_left:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_gput_left:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \clist_put_left:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_put_left:Nn { No , Nx , co , cx } +\cs_generate_variant:Nn \clist_gput_left:Nn { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_gput_left:Nn { No , Nx , co , cx } \cs_new_protected:Npn \clist_put_right:Nn { \__clist_put_right:NNNn \clist_concat:NNN \clist_set:Nn } \cs_new_protected:Npn \clist_gput_right:Nn @@ -7848,10 +7931,14 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 \l__clist_internal_clist {#4} #1 #3 #3 \l__clist_internal_clist } -\cs_generate_variant:Nn \clist_put_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_put_right:Nn { c , cV , cv , co , cx } -\cs_generate_variant:Nn \clist_gput_right:Nn { NV , Nv , No , Nx } -\cs_generate_variant:Nn \clist_gput_right:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \clist_put_right:Nn + { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_put_right:Nn + { No , Nx , co , cx } +\cs_generate_variant:Nn \clist_gput_right:Nn + { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \clist_gput_right:Nn + { No , Nx , co , cx } \cs_new_protected:Npn \clist_get:NN #1#2 { \if_meaning:w #1 \c_empty_clist @@ -7864,9 +7951,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_set:Nn #3 {#1} } \cs_generate_variant:Nn \clist_get:NN { c } \cs_new_protected:Npn \clist_pop:NN - { \__clist_pop:NNN \__kernel_tl_set:Nx } + { \__clist_pop:NNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gpop:NN - { \__clist_pop:NNN \__kernel_tl_gset:Nx } + { \__clist_pop:NNN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__clist_pop:NNN #1#2#3 { \if_meaning:w #2 \c_empty_clist @@ -7900,9 +7987,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \prg_generate_conditional_variant:Nnn \clist_get:NN { c } { T , F , TF } \prg_new_protected_conditional:Npnn \clist_pop:NN #1#2 { T , F , TF } - { \__clist_pop_TF:NNN \__kernel_tl_set:Nx #1 #2 } + { \__clist_pop_TF:NNN \__kernel_tl_set:Ne #1 #2 } \prg_new_protected_conditional:Npnn \clist_gpop:NN #1#2 { T , F , TF } - { \__clist_pop_TF:NNN \__kernel_tl_gset:Nx #1 #2 } + { \__clist_pop_TF:NNN \__kernel_tl_gset:Ne #1 #2 } \cs_new_protected:Npn \__clist_pop_TF:NNN #1#2#3 { \if_meaning:w #2 \c_empty_clist @@ -7915,21 +8002,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_generate_conditional_variant:Nnn \clist_pop:NN { c } { T , F , TF } \prg_generate_conditional_variant:Nnn \clist_gpop:NN { c } { T , F , TF } \cs_new_eq:NN \clist_push:Nn \clist_put_left:Nn -\cs_new_eq:NN \clist_push:NV \clist_put_left:NV -\cs_new_eq:NN \clist_push:No \clist_put_left:No -\cs_new_eq:NN \clist_push:Nx \clist_put_left:Nx -\cs_new_eq:NN \clist_push:cn \clist_put_left:cn -\cs_new_eq:NN \clist_push:cV \clist_put_left:cV -\cs_new_eq:NN \clist_push:co \clist_put_left:co -\cs_new_eq:NN \clist_push:cx \clist_put_left:cx +\cs_generate_variant:Nn \clist_push:Nn { NV , No , Nx , c , cV , co , cx } \cs_new_eq:NN \clist_gpush:Nn \clist_gput_left:Nn -\cs_new_eq:NN \clist_gpush:NV \clist_gput_left:NV -\cs_new_eq:NN \clist_gpush:No \clist_gput_left:No -\cs_new_eq:NN \clist_gpush:Nx \clist_gput_left:Nx -\cs_new_eq:NN \clist_gpush:cn \clist_gput_left:cn -\cs_new_eq:NN \clist_gpush:cV \clist_gput_left:cV -\cs_new_eq:NN \clist_gpush:co \clist_gput_left:co -\cs_new_eq:NN \clist_gpush:cx \clist_gput_left:cx +\cs_generate_variant:Nn \clist_gpush:Nn { NV , No , Nx , c , cV , co , cx } \clist_new:N \l__clist_internal_remove_clist \seq_new:N \l__clist_internal_remove_seq \cs_new_protected:Npn \clist_remove_duplicates:N @@ -7943,7 +8018,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \clist_if_in:NnF \l__clist_internal_remove_clist {##1} { - \tl_put_right:Nx \l__clist_internal_remove_clist + \tl_put_right:Ne \l__clist_internal_remove_clist { \clist_if_empty:NF \l__clist_internal_remove_clist { , } \__clist_if_wrap:nTF {##1} { \exp_not:n { {##1} } } { \exp_not:n {##1} } @@ -7955,9 +8030,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \clist_remove_duplicates:N { c } \cs_generate_variant:Nn \clist_gremove_duplicates:N { c } \cs_new_protected:Npn \clist_remove_all:Nn - { \__clist_remove_all:NNNn \clist_set_from_seq:NN \__kernel_tl_set:Nx } + { \__clist_remove_all:NNNn \clist_set_from_seq:NN \__kernel_tl_set:Ne } \cs_new_protected:Npn \clist_gremove_all:Nn - { \__clist_remove_all:NNNn \clist_gset_from_seq:NN \__kernel_tl_gset:Nx } + { \__clist_remove_all:NNNn \clist_gset_from_seq:NN \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__clist_remove_all:NNNn #1#2#3#4 { \__clist_if_wrap:nTF {#4} @@ -7994,9 +8069,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \clist_remove_all:Nn { c , NV , cV } \cs_generate_variant:Nn \clist_gremove_all:Nn { c , NV , cV } \cs_new_protected:Npn \clist_reverse:N #1 - { \__kernel_tl_set:Nx #1 { \exp_args:No \clist_reverse:n {#1} } } + { \__kernel_tl_set:Ne #1 { \exp_args:No \clist_reverse:n {#1} } } \cs_new_protected:Npn \clist_greverse:N #1 - { \__kernel_tl_gset:Nx #1 { \exp_args:No \clist_reverse:n {#1} } } + { \__kernel_tl_gset:Ne #1 { \exp_args:No \clist_reverse:n {#1} } } \cs_generate_variant:Nn \clist_reverse:N { c } \cs_generate_variant:Nn \clist_greverse:N { c } \cs_new:Npn \clist_reverse:n #1 @@ -8043,7 +8118,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__clist_if_wrap:nTF {#2} { - \cs_set:Npx \__clist_tmp:w ##1 + \cs_set:Npe \__clist_tmp:w ##1 { \exp_not:N \tl_if_eq:nnT {##1} \exp_not:n @@ -8097,6 +8172,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__clist_stop \clist_map_break: , \prg_break_point:Nn \clist_map_break: { } } +\cs_generate_variant:Nn \clist_map_function:nN { e } \cs_new:Npn \__clist_map_function_n:Nn #1 #2 { \__clist_use_none_delimit_by_s_stop:w #2 \s__clist_stop @@ -8211,6 +8287,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \exp_args:No \__clist_tmp:w \c_space_tl +\cs_generate_variant:Nn \clist_count:n { e } \cs_new:Npn \clist_use:Nnnn #1#2#3#4 { \clist_if_exist:NTF #1 @@ -8316,6 +8393,7 @@ Type H <return> for immediate help}\def~{\errmessage{% {#1} \__clist_item_n:nw } +\cs_generate_variant:Nn \clist_item:nn { e } \cs_new:Npn \__clist_item_n:nw #1 { \__clist_item_n_loop:nw {#1} \prg_do_nothing: } \cs_new:Npn \__clist_item_n_loop:nw #1 #2, @@ -8349,9 +8427,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \clist_item:Nn #1 { \int_rand:nn { 1 } { \clist_count:N #1 } } } } \cs_generate_variant:Nn \clist_rand_item:N { c } -\cs_new_protected:Npn \clist_show:N { \__clist_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \clist_show:N { \__clist_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \clist_show:N { c } -\cs_new_protected:Npn \clist_log:N { \__clist_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \clist_log:N { \__clist_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \clist_log:N { c } \cs_new_protected:Npn \__clist_show:NN #1#2 { @@ -8366,13 +8444,13 @@ Type H <return> for immediate help}\def~{\errmessage{% { } { } } { - \msg_error:nnxx { clist } { non-clist } + \msg_error:nnee { clist } { non-clist } { \token_to_str:N #2 } { \tl_to_str:N #2 } } } } -\cs_new_protected:Npn \clist_show:n { \__clist_show:Nn \msg_show:nnxxxx } -\cs_new_protected:Npn \clist_log:n { \__clist_show:Nn \msg_log:nnxxxx } +\cs_new_protected:Npn \clist_show:n { \__clist_show:Nn \msg_show:nneeee } +\cs_new_protected:Npn \clist_log:n { \__clist_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \__clist_show:Nn #1#2 { #1 { clist } { show } @@ -8496,7 +8574,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \char_set_lccode:nn { `\^^@ } { ##1 } \tex_lowercase:D { \group_end: #2 ^^@ } } - \cs_new_protected:cpx { #1 :NN } ##1 + \cs_new_protected:cpe { #1 :NN } ##1 { \exp_not:c { #1 : nN } { `##1 } } } \__char_tmp:nN { char_set_active_eq } \cs_set_eq:NN @@ -8563,7 +8641,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \char_set_catcode_math_superscript:n { 0 } \tl_put_right:Nn \l__char_tmp_tl { ^^@ \exp_not:N \or: } \char_set_catcode_parameter:n { 0 } - \tl_put_right:Nn \l__char_tmp_tl { ^^@^^@ \exp_not:N \or: } + \tl_put_right:Nn \l__char_tmp_tl { ^^@ \exp_not:N \or: } \tl_put_right:Nn \l__char_tmp_tl { { \if_false: } \fi: \exp_not:N \or: } \char_set_catcode_alignment:n { 0 } \tl_put_right:Nn \l__char_tmp_tl { ^^@ \exp_not:N \or: } @@ -8577,9 +8655,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \char_set_lccode:nn { 0 } {#1} \char_set_lccode:nn { 32 } {#1} - \exp_args:Nx \tex_lowercase:D + \exp_args:Ne \tex_lowercase:D { - \tl_const:Nx + \tl_const:Ne \exp_not:c { c__char_ \__char_int_to_roman:w #1 _tl } { \exp_not:o \l__char_tmp_tl } } @@ -8725,7 +8803,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \char_set_lccode:nn { `* } { `\ } \tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } } \group_end: -\tl_const:Nx \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } } +\tl_const:Ne \c_catcode_other_space_tl { \char_generate:nn { `\ } { 12 } } \scan_new:N \s__token_mark \scan_new:N \s__token_stop \group_begin: @@ -8821,17 +8899,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_charcode:w \exp_not:N #1 \exp_not:N #2 \prg_return_true: \else: \prg_return_false: \fi: } -\use:x +\use:e { - \prg_new_conditional:Npnn \exp_not:N \token_if_macro:N ##1 + \prg_new_conditional:Npnn \exp_not:N \token_if_macro:N #1 { p , T , F , TF } { \exp_not:N \exp_after:wN \exp_not:N \__token_if_macro_p:w - \exp_not:N \token_to_meaning:N ##1 \tl_to_str:n { ma : } + \exp_not:N \token_to_meaning:N #1 \tl_to_str:n { ma : } \s__token_stop } \cs_new:Npn \exp_not:N \__token_if_macro_p:w - ##1 \tl_to_str:n { ma } ##2 \c_colon_str ##3 \s__token_stop + #1 \tl_to_str:n { ma } #2 \c_colon_str #3 \s__token_stop } { \str_if_eq:nnTF { #2 } { cro } @@ -8858,11 +8936,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \cs_set_protected:Npn \__token_tmp:w #1 { - \use:x + \use:e { \cs_new:Npn \exp_not:c { __token_delimit_by_ #1 :w } - ####1 \tl_to_str:n {#1} ####2 \s__token_stop - { ####1 \tl_to_str:n {#1} } + ##1 \tl_to_str:n {#1} ##2 \s__token_stop + { ##1 \tl_to_str:n {#1} } } } \__token_tmp:w { char" } @@ -8877,17 +8955,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \cs_set_protected:Npn \__token_tmp:w #1#2#3 { - \use:x + \use:e { - \prg_new_conditional:Npnn \exp_not:c { token_if_ #1 :N } ####1 + \prg_new_conditional:Npnn \exp_not:c { token_if_ #1 :N } ##1 { p , T , F , TF } { \cs_if_exist:cT { tex_ #2 :D } { - \exp_not:N \if_meaning:w ####1 \exp_not:c { tex_ #2 :D } + \exp_not:N \if_meaning:w ##1 \exp_not:c { tex_ #2 :D } \exp_not:N \prg_return_false: \exp_not:N \else: - \exp_not:N \if_meaning:w ####1 \exp_not:c { tex_ #2 def:D } + \exp_not:N \if_meaning:w ##1 \exp_not:c { tex_ #2 def:D } \exp_not:N \prg_return_false: \exp_not:N \else: } @@ -8895,7 +8973,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_not:N \exp_after:wN \exp_not:c { __token_delimit_by_ #2 :w } - \exp_not:N \token_to_meaning:N ####1 + \exp_not:N \token_to_meaning:N ##1 ? \tl_to_str:n {#2} \s__token_stop } { \exp_not:n {#3} } @@ -8932,26 +9010,26 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \tex_chardef:D \c__token_A_int = `A ~ % - \use:x + \use:e { - \prg_new_conditional:Npnn \exp_not:N \token_if_primitive:N ##1 + \prg_new_conditional:Npnn \exp_not:N \token_if_primitive:N #1 { p , T , F , TF } { - \exp_not:N \token_if_macro:NTF ##1 + \exp_not:N \token_if_macro:NTF #1 \exp_not:N \prg_return_false: { \exp_not:N \exp_after:wN \exp_not:N \__token_if_primitive:NNw - \exp_not:N \token_to_meaning:N ##1 - \tl_to_str:n { : : : } \s__token_stop ##1 + \exp_not:N \token_to_meaning:N #1 + \tl_to_str:n { : : : } \s__token_stop #1 } } \cs_new:Npn \exp_not:N \__token_if_primitive:NNw - ##1##2 ##3 \c_colon_str ##4 \s__token_stop + #1#2 #3 \c_colon_str #4 \s__token_stop { \exp_not:N \tl_if_empty:oTF - { \exp_not:N \__token_if_primitive_space:w ##3 ~ } + { \exp_not:N \__token_if_primitive_space:w #3 ~ } { - \exp_not:N \__token_if_primitive_loop:N ##3 + \exp_not:N \__token_if_primitive_loop:N #3 \c_colon_str \s__token_stop } { \exp_not:N \__token_if_primitive_nullfont:N } @@ -9054,7 +9132,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \peek_remove_spaces:n #1 { - \cs_set:Npx \__peek_false:w { \exp_not:n {#1} } + \cs_set:Npe \__peek_false:w { \exp_not:n {#1} } \group_align_safe_begin: \cs_set:Npn \__peek_true_aux:w { \peek_after:Nw \__peek_remove_spaces: } \__peek_true_aux:w @@ -9071,7 +9149,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \peek_remove_filler:n #1 { \cs_set:Npn \__peek_true_aux:w { \__peek_remove_filler:w } - \cs_set:Npx \__peek_false:w + \cs_set:Npe \__peek_false:w { \exp_not:N \group_align_safe_end: \exp_not:n {#1} @@ -9111,13 +9189,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_align_safe_begin: \cs_set_eq:NN \l__peek_search_token #3 \tl_set:Nn \l__peek_search_tl {#3} - \cs_set:Npx \__peek_true_aux:w + \cs_set:Npe \__peek_true_aux:w { \exp_not:N \group_align_safe_end: \exp_not:n {#4} } \cs_set_eq:NN \__peek_true:w #1 - \cs_set:Npx \__peek_false:w + \cs_set:Npe \__peek_false:w { \exp_not:N \group_align_safe_end: \exp_not:n {#5} @@ -9183,7 +9261,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_map_inline:nn { { TF } { T } { F } } { - \cs_new_protected:cpx { peek_ #1 ##1 :N ####1 } + \cs_new_protected:cpe { peek_ #1 ##1 :N ####1 } { \exp_not:c { __peek_token ##1 _generic:NN ####1 } \exp_not:c { __peek_execute_branches_ #1 : } @@ -9302,7 +9380,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \prop_const_from_keyval:Nn #1#2 { \prop_set_from_keyval:Nn \l__prop_internal_prop {#2} - \tl_const:Nx #1 { \exp_not:o \l__prop_internal_prop } + \tl_const:Ne #1 { \exp_not:o \l__prop_internal_prop } \prop_clear:N \l__prop_internal_prop } \cs_generate_variant:Nn \prop_const_from_keyval:Nn { c } @@ -9353,18 +9431,17 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_gset:Nn #1 { ##1 ##3 } } { } } -\cs_generate_variant:Nn \prop_remove:Nn { NV } -\cs_generate_variant:Nn \prop_remove:Nn { c , cV } -\cs_generate_variant:Nn \prop_gremove:Nn { NV } -\cs_generate_variant:Nn \prop_gremove:Nn { c , cV } +\cs_generate_variant:Nn \prop_remove:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \prop_gremove:Nn { NV , Ne , c , cV , ce } \cs_new_protected:Npn \prop_get:NnN #1#2#3 { \__prop_split:NnTF #1 {#2} { \tl_set:Nn #3 {##2} } { \tl_set:Nn #3 { \q_no_value } } } -\cs_generate_variant:Nn \prop_get:NnN { NV , Nv , No , Nx } -\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co , cx , cnc } +\cs_generate_variant:Nn \prop_get:NnN { NV , Nv , Ne , c , cV , cv , ce } +\cs_generate_variant:Nn \prop_get:NnN { No , Nx , co , cx } +\cs_generate_variant:Nn \prop_get:NnN { cnc } \cs_new_protected:Npn \prop_pop:NnN #1#2#3 { \__prop_split:NnTF #1 {#2} @@ -9383,10 +9460,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \tl_set:Nn #3 { \q_no_value } } } -\cs_generate_variant:Nn \prop_pop:NnN { No } -\cs_generate_variant:Nn \prop_pop:NnN { c , co } -\cs_generate_variant:Nn \prop_gpop:NnN { No } -\cs_generate_variant:Nn \prop_gpop:NnN { c , co } +\cs_generate_variant:Nn \prop_pop:NnN { NV , No } +\cs_generate_variant:Nn \prop_pop:NnN { c , cV , co } +\cs_generate_variant:Nn \prop_gpop:NnN { NV , No } +\cs_generate_variant:Nn \prop_gpop:NnN { c , cV , co } \cs_new:Npn \prop_item:Nn #1#2 { \exp_args:NNo \prop_map_tokens:Nn #1 @@ -9446,10 +9523,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \prg_return_false: } } -\prg_generate_conditional_variant:Nnn \prop_pop:NnN { c } { T , F , TF } -\prg_generate_conditional_variant:Nnn \prop_gpop:NnN { c } { T , F , TF } -\cs_new_protected:Npn \prop_put:Nnn { \__prop_put:NNnn \__kernel_tl_set:Nx } -\cs_new_protected:Npn \prop_gput:Nnn { \__prop_put:NNnn \__kernel_tl_gset:Nx } +\prg_generate_conditional_variant:Nnn \prop_pop:NnN { NV , c , cV } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_gpop:NnN { NV , c , cV } { T , F , TF } +\cs_new_protected:Npn \prop_put:Nnn { \__prop_put:NNnn \__kernel_tl_set:Ne } +\cs_new_protected:Npn \prop_gput:Nnn { \__prop_put:NNnn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__prop_put:NNnn #1#2#3#4 { \tl_set:Nn \l__prop_internal_tl @@ -9462,17 +9539,37 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 #2 { \exp_not:o {#2} \l__prop_internal_tl } } } \cs_generate_variant:Nn \prop_put:Nnn - { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx } + { + NnV , Nnv , Nne , NV , NVV , NVv , NVe , + Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee + } +\cs_generate_variant:Nn \prop_put:Nnn + { Nno , No , Noo , Nnx , NVx , NxV , Nxx } +\cs_generate_variant:Nn \prop_put:Nnn + { + c , cnV , cnv , cne , cV , cVV , cVv , cVe , + cv , cvV , cvv , cve , ce , ceV , cev , cee + } \cs_generate_variant:Nn \prop_put:Nnn - { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx } + { cno , co , coo , cnx , cVx , cxV , cxx } +\cs_generate_variant:Nn \prop_gput:Nnn + { + NnV , Nnv , Nne , NV , NVV , NVv , NVe , + Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee + } \cs_generate_variant:Nn \prop_gput:Nnn - { NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx } + { Nno , No , Noo , Nnx , NVx , NxV , Nxx } \cs_generate_variant:Nn \prop_gput:Nnn - { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx } + { + c , cnV , cnv , cne , cV , cVV , cVv , cVe , + cv , cvV , cvv , cve , ce , ceV , cev , cee + } +\cs_generate_variant:Nn \prop_gput:Nnn + { cno , co , coo , cnx , cVx , cxV , cxx } \cs_new_protected:Npn \prop_put_if_new:Nnn - { \__prop_put_if_new:NNnn \__kernel_tl_set:Nx } + { \__prop_put_if_new:NNnn \__kernel_tl_set:Ne } \cs_new_protected:Npn \prop_gput_if_new:Nnn - { \__prop_put_if_new:NNnn \__kernel_tl_gset:Nx } + { \__prop_put_if_new:NNnn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__prop_put_if_new:NNnn #1#2#3#4 { \tl_set:Nn \l__prop_internal_tl @@ -9484,8 +9581,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { } { #1 #2 { \exp_not:o {#2} \l__prop_internal_tl } } } -\cs_generate_variant:Nn \prop_put_if_new:Nnn { c } -\cs_generate_variant:Nn \prop_gput_if_new:Nnn { c } +\cs_generate_variant:Nn \prop_put_if_new:Nnn + { NnV , NV , cnV , cV } +\cs_generate_variant:Nn \prop_gput_if_new:Nnn + { NnV , NV , cnV , cV } \prg_new_eq_conditional:NNn \prop_if_exist:N \cs_if_exist:N { TF , T , F , p } \prg_new_eq_conditional:NNn \prop_if_exist:c \cs_if_exist:c @@ -9509,7 +9608,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prop_map_break:n { \use_i:nn \prg_return_true: } } } \prg_generate_conditional_variant:Nnn \prop_if_in:Nn - { NV , No , c , cV , co } { p , T , F , TF } + { NV , Ne , No , c , cV , ce , co } { p , T , F , TF } \prg_new_protected_conditional:Npnn \prop_get:NnN #1#2#3 { T , F , TF } { \__prop_split:NnTF #1 {#2} @@ -9520,7 +9619,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prg_return_false: } } \prg_generate_conditional_variant:Nnn \prop_get:NnN - { NV , Nv , No , Nx , c , cV , cv , co , cx , cnc } { T , F , TF } + { NV , Nv , Ne , c , cV , cv , ce } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_get:NnN + { No , Nx , co , cx } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_get:NnN + { cnc } { T , F , TF } \cs_new:Npn \prop_map_function:NN #1#2 { \exp_after:wN \use_i_ii:nnn @@ -9588,9 +9691,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prg_map_break:Nn \prop_map_break: { } } \cs_new:Npn \prop_map_break:n { \prg_map_break:Nn \prop_map_break: } -\cs_new_protected:Npn \prop_show:N { \__prop_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \prop_show:N { \__prop_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \prop_show:N { c } -\cs_new_protected:Npn \prop_log:N { \__prop_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \prop_log:N { \__prop_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \prop_log:N { c } \cs_new_protected:Npn \__prop_show:NN #1#2 { @@ -9631,7 +9734,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \msg_if_exist:nnT {#1} {#2} { - \msg_error:nnxx { msg } { already-defined } + \msg_error:nnnn { msg } { already-defined } {#1} {#2} } } @@ -9640,10 +9743,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \__msg_chk_free:nn {#1} {#2} \msg_gset:nnnn {#1} {#2} } -\cs_generate_variant:Nn \msg_new:nnnn { nnxx } +\cs_generate_variant:Nn \msg_new:nnnn { nnee , nnxx } \cs_new_protected:Npn \msg_new:nnn #1#2#3 { \msg_new:nnnn {#1} {#2} {#3} { } } -\cs_generate_variant:Nn \msg_new:nnn { nnx } +\cs_generate_variant:Nn \msg_new:nnn { nne , nnx } \cs_new_protected:Npn \msg_set:nnnn #1#2#3#4 { \cs_set:cpn { \c__msg_text_prefix_tl #1 / #2 } @@ -9703,8 +9806,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__msg_interrupt:NnnnN #1#2#3#4#5 { - \str_set:Nx \l__msg_text_str { #1 {#2} } - \str_set:Nx \l__msg_name_str { \msg_module_name:n {#2} } + \str_set:Ne \l__msg_text_str { #1 {#2} } + \str_set:Ne \l__msg_name_str { \msg_module_name:n {#2} } \cs_if_eq:cNTF { \c__msg_more_text_prefix_tl #2 / #3 } \__msg_no_more_text:nnnn @@ -9735,7 +9838,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \iow_wrap:nnnN { \\ #3 } { } { } \__msg_interrupt_more_text:n \group_begin: \int_sub:Nn \l_iow_line_count_int { 2 } - \iow_wrap:nxnN { \l__msg_text_str : ~ #1 } + \iow_wrap:nenN { \l__msg_text_str : ~ #1 } { ( \l__msg_name_str ) \prg_replicate:nn @@ -9756,7 +9859,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_set:Nn \l__msg_internal_tl {#1} } \cs_new_protected:Npn \__msg_interrupt_more_text:n #1 - { \exp_args:Nx \tex_errhelp:D { #1 \iow_newline: } } + { \exp_args:Ne \tex_errhelp:D { #1 \iow_newline: } } \group_begin: \char_set_lccode:nn { 38 } { 32 } % & \char_set_lccode:nn { 46 } { 32 } % . @@ -9846,39 +9949,28 @@ Type H <return> for immediate help}\def~{\errmessage{% ##1##2##3##4##5##6 {#2} \cs_new_protected:cpn { msg_ #1 :nnnnnn } ##1##2##3##4##5##6 { - \use:x + \use:e { \exp_not:n { \__msg_use:nnnnnnn {#1} {##1} {##2} } { \tl_to_str:n {##3} } { \tl_to_str:n {##4} } { \tl_to_str:n {##5} } { \tl_to_str:n {##6} } } } - \cs_new_protected:cpx { msg_ #1 :nnnnn } ##1##2##3##4##5 + \cs_new_protected:cpe { msg_ #1 :nnnnn } ##1##2##3##4##5 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} {##4} {##5} { } } - \cs_new_protected:cpx { msg_ #1 :nnnn } ##1##2##3##4 + \cs_new_protected:cpe { msg_ #1 :nnnn } ##1##2##3##4 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} {##4} { } { } } - \cs_new_protected:cpx { msg_ #1 :nnn } ##1##2##3 + \cs_new_protected:cpe { msg_ #1 :nnn } ##1##2##3 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} { } { } { } } - \cs_new_protected:cpx { msg_ #1 :nn } ##1##2 + \cs_new_protected:cpe { msg_ #1 :nn } ##1##2 { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} { } { } { } { } } - \cs_generate_variant:cn { msg_ #1 :nnn } { nnV } - \cs_generate_variant:cn { msg_ #1 :nnnn } { nnVV , nnVn , nnnV , nnnx } - \cs_generate_variant:cn { msg_ #1 :nnnnn } { nnnxx } - \cs_new_protected:cpx { msg_ #1 :nnxxxx } ##1##2##3##4##5##6 - { - \use:x - { - \exp_not:N \exp_not:n - { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} } - {##3} {##4} {##5} {##6} - } - } - \cs_new_protected:cpx { msg_ #1 :nnxxx } ##1##2##3##4##5 - { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} {##5} { } } - \cs_new_protected:cpx { msg_ #1 :nnxx } ##1##2##3##4 - { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} { } { } } - \cs_new_protected:cpx { msg_ #1 :nnx } ##1##2##3 - { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} { } { } { } } + \cs_generate_variant:cn { msg_ #1 :nnn } + { nnV , nne , nnx } + \cs_generate_variant:cn { msg_ #1 :nnnn } + { nnVV , nnVn , nnnV , nnne , nnnx , nnee , nnxx } + \cs_generate_variant:cn { msg_ #1 :nnnnn } + { nnnee , nnnxx , nneee , nnxxx } + \cs_generate_variant:cn { msg_ #1 :nnnnnn } { nneeee , nnxxxx } } \__msg_class_new:nn { fatal } { @@ -9901,8 +9993,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \c__msg_critical_text_tl \tex_endinput:D } - \cs_undefine:N \msg_error:nnxx - \cs_undefine:N \msg_error:nnx + \cs_undefine:N \msg_error:nnee + \cs_undefine:N \msg_error:nne \cs_undefine:N \msg_error:nn \__msg_class_new:nn { error } { @@ -9913,10 +10005,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__msg_info_aux:NNnnnnnn #1#2#3#4#5#6#7#8 { - \str_set:Nx \l__msg_text_str { #2 {#3} } - \str_set:Nx \l__msg_name_str { \msg_module_name:n {#3} } + \str_set:Ne \l__msg_text_str { #2 {#3} } + \str_set:Ne \l__msg_name_str { \msg_module_name:n {#3} } #1 { } - \iow_wrap:nxnN + \iow_wrap:nenN { \l__msg_text_str : ~ \use:c { \c__msg_text_prefix_tl #3 / #4 } {#5} {#6} {#7} {#8} @@ -9996,18 +10088,18 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \group_end: -\cs_new:Npx \msg_show_item:n #1 +\cs_new:Npe \msg_show_item:n #1 { ^^J > ~ \c_space_tl \exp_not:N \tl_to_str:n { {#1} } } -\cs_new:Npx \msg_show_item_unbraced:n #1 +\cs_new:Npe \msg_show_item_unbraced:n #1 { ^^J > ~ \c_space_tl \exp_not:N \tl_to_str:n {#1} } -\cs_new:Npx \msg_show_item:nn #1#2 +\cs_new:Npe \msg_show_item:nn #1#2 { ^^J > \use:nn { ~ } { ~ } \exp_not:N \tl_to_str:n { {#1} } \use:nn { ~ } { ~ } => \use:nn { ~ } { ~ } \exp_not:N \tl_to_str:n { {#2} } } -\cs_new:Npx \msg_show_item_unbraced:nn #1#2 +\cs_new:Npe \msg_show_item_unbraced:nn #1#2 { ^^J > \use:nn { ~ } { ~ } \exp_not:N \tl_to_str:n {#1} @@ -10017,7 +10109,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__msg_class_chk_exist:nT #1 { \cs_if_free:cTF { __msg_ #1 _code:nnnnnn } - { \msg_error:nnx { msg } { class-unknown } {#1} } + { \msg_error:nnn { msg } { class-unknown } {#1} } } \tl_new:N \l__msg_class_tl \tl_new:N \l__msg_current_class_tl @@ -10032,7 +10124,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__msg_class_chk_exist:nT {#1} { \tl_set:Nn \l__msg_current_class_tl {#1} - \cs_set_protected:Npx \__msg_use_code: + \cs_set_protected:Npe \__msg_use_code: { \exp_not:n { @@ -10043,7 +10135,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__msg_use_redirect_name:n { #2 / #3 } } } - { \msg_error:nnxx { msg } { unknown } {#2} {#3} } + { \msg_error:nnnn { msg } { unknown } {#2} {#3} } \cs_if_exist_use:N \conditionally@traceon } \cs_new_protected:Npn \__msg_use_code: { } @@ -10131,7 +10223,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_if_eq:NNTF \l__msg_class_tl \l__msg_current_class_tl { \prop_put:cnn { l__msg_redirect_ #2 _prop } {#3} {#2} - \msg_warning:nnxxxx + \msg_warning:nneeee { msg } { redirect-loop } { \seq_item:Nn \l__msg_class_loop_seq { 1 } } { \seq_item:Nn \l__msg_class_loop_seq { 2 } } @@ -10157,18 +10249,18 @@ Type H <return> for immediate help}\def~{\errmessage{% { \msg_new:nnnn { LaTeX / #1 } } \cs_new_protected:Npn \__kernel_msg_new:nnn #1 { \msg_new:nnn { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_info:nnxx #1 - { \msg_info:nnxx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_warning:nnx #1 - { \msg_warning:nnx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_warning:nnxx #1 - { \msg_warning:nnxx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_error:nnx #1 - { \msg_error:nnx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_error:nnxx #1 - { \msg_error:nnxx { LaTeX / #1 } } -\cs_new_protected:Npn \__kernel_msg_error:nnxxx #1 - { \msg_error:nnxxx { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_info:nnee #1 + { \msg_info:nnee { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_warning:nne #1 + { \msg_warning:nne { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_warning:nnee #1 + { \msg_warning:nnee { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_error:nne #1 + { \msg_error:nne { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_error:nnee #1 + { \msg_error:nnee { LaTeX / #1 } } +\cs_new_protected:Npn \__kernel_msg_error:nneee #1 + { \msg_error:nneee { LaTeX / #1 } } \cs_new:Npn \__kernel_msg_expandable_error:nnn #1 { \msg_expandable_error:nnn { LaTeX / #1 } } \cs_new:Npn \__kernel_msg_expandable_error:nnf #1 @@ -10608,12 +10700,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__ior_open_stream:Nn #1 {#2} } { \__ior_new:N #1 - \__kernel_tl_set:Nx \l__ior_stream_tl { \int_eval:n {#1} } + \__kernel_tl_set:Ne \l__ior_stream_tl { \int_eval:n {#1} } \__ior_open_stream:Nn #1 {#2} } } \cs_generate_variant:Nn \__kernel_ior_open:Nn { No } -\cs_new_protected:Npx \__ior_open_stream:Nn #1#2 +\cs_new_protected:Npe \__ior_open_stream:Nn #1#2 { \tex_global:D \tex_chardef:D #1 = \exp_not:N \l__ior_stream_tl \scan_stop: \prop_gput:NVn \exp_not:N \g__ior_streams_prop #1 {#2} @@ -10625,18 +10717,19 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \ior_shell_open:Nn #1#2 { \sys_if_shell:TF - { \exp_args:No \__ior_shell_open:nN { \tl_to_str:n {#2} } #1 } + { \__ior_shell_open:oN { \tl_to_str:n {#2} } #1 } { \msg_error:nn { kernel } { pipe-failed } } } \cs_new_protected:Npn \__ior_shell_open:nN #1#2 { \tl_if_in:nnTF {#1} { " } { - \msg_error:nnx + \msg_error:nne { kernel } { quote-in-shell } {#1} } { \__kernel_ior_open:Nn #2 { |#1 } } } +\cs_generate_variant:Nn \__ior_shell_open:nN { o } \msg_new:nnnn { kernel } { pipe-failed } { Cannot~run~piped~system~commands. } { @@ -10665,14 +10758,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prop_get:NVNTF \g__ior_streams_prop #2 \l__ior_internal_tl { - \exp_args:Nx #1 + \exp_args:Ne #1 { \token_to_str:N #2 ~ open: ~ \l__ior_internal_tl } } - { \exp_args:Nx #1 { \token_to_str:N #2 ~ closed } } + { \exp_args:Ne #1 { \token_to_str:N #2 ~ closed } } } } -\cs_new_protected:Npn \ior_show_list: { \__ior_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \ior_log_list: { \__ior_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \ior_show_list: { \__ior_list:N \msg_show:nneeee } +\cs_new_protected:Npn \ior_log_list: { \__ior_list:N \msg_log:nneeee } \cs_new_protected:Npn \__ior_list:N #1 { #1 { kernel } { show-streams } @@ -10845,14 +10938,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \l__iow_file_name_tl \cs_new_protected:Npn \iow_open:Nn #1#2 { - \__kernel_tl_set:Nx \l__iow_file_name_tl + \__kernel_tl_set:Ne \l__iow_file_name_tl { \__kernel_file_name_sanitize:n {#2} } \iow_close:N #1 \seq_gpop:NNTF \g__iow_streams_seq \l__iow_stream_tl { \__iow_open_stream:NV #1 \l__iow_file_name_tl } { \__iow_new:N #1 - \__kernel_tl_set:Nx \l__iow_stream_tl { \int_eval:n {#1} } + \__kernel_tl_set:Ne \l__iow_stream_tl { \int_eval:n {#1} } \__iow_open_stream:NV #1 \l__iow_file_name_tl } } @@ -10868,18 +10961,19 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \iow_shell_open:Nn #1#2 { \sys_if_shell:TF - { \exp_args:No \__iow_shell_open:nN { \tl_to_str:n {#2} } #1 } + { \__iow_shell_open:oN { \tl_to_str:n {#2} } #1 } { \msg_error:nn { kernel } { pipe-failed } } } \cs_new_protected:Npn \__iow_shell_open:nN #1#2 { \tl_if_in:nnTF {#1} { " } { - \msg_error:nnx + \msg_error:nne { kernel } { quote-in-shell } {#1} } { \__kernel_iow_open:Nn #2 { |#1 } } } +\cs_generate_variant:Nn \__iow_shell_open:nN { o } \cs_new_protected:Npn \iow_close:N #1 { \int_compare:nT { \c_log_iow < #1 < \c_term_iow } @@ -10902,14 +10996,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prop_get:NVNTF \g__iow_streams_prop #2 \l__iow_internal_tl { - \exp_args:Nx #1 + \exp_args:Ne #1 { \token_to_str:N #2 ~ open: ~ \l__iow_internal_tl } } - { \exp_args:Nx #1 { \token_to_str:N #2 ~ closed } } + { \exp_args:Ne #1 { \token_to_str:N #2 ~ closed } } } } -\cs_new_protected:Npn \iow_show_list: { \__iow_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \iow_log_list: { \__iow_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \iow_show_list: { \__iow_list:N \msg_show:nneeee } +\cs_new_protected:Npn \iow_log_list: { \__iow_list:N \msg_log:nneeee } \cs_new_protected:Npn \__iow_list:N #1 { #1 { kernel } { show-streams } @@ -10920,17 +11014,18 @@ Type H <return> for immediate help}\def~{\errmessage{% } { } { } } -\cs_new_protected:Npn \iow_shipout_x:Nn #1#2 +\cs_new_protected:Npn \iow_shipout_e:Nn #1#2 { \tex_write:D #1 {#2} } -\cs_generate_variant:Nn \iow_shipout_x:Nn { c, Nx, cx } +\cs_generate_variant:Nn \iow_shipout_e:Nn { Ne , c, ce } \cs_new_protected:Npn \iow_shipout:Nn #1#2 { \tex_write:D #1 { \exp_not:n {#2} } } -\cs_generate_variant:Nn \iow_shipout:Nn { c, Nx, cx } +\cs_generate_variant:Nn \iow_shipout:Nn { Ne , c, ce } +\cs_generate_variant:Nn \iow_shipout:Nn { Nx , cx } \cs_new_protected:Npn \__kernel_iow_with:Nnn #1#2 { \int_compare:nNnTF {#1} = {#2} { \use:n } - { \exp_args:No \__iow_with:nNnn { \int_use:N #1 } #1 {#2} } + { \__iow_with:oNnn { \int_use:N #1 } #1 {#2} } } \cs_new_protected:Npn \__iow_with:nNnn #1#2#3#4 { @@ -10938,16 +11033,20 @@ Type H <return> for immediate help}\def~{\errmessage{% #4 \int_set:Nn #2 {#1} } +\cs_generate_variant:Nn \__iow_with:nNnn { o } \cs_new_protected:Npn \iow_now:Nn #1#2 { \__kernel_iow_with:Nnn \tex_newlinechar:D { `\^^J } { \tex_immediate:D \tex_write:D #1 { \exp_not:n {#2} } } } -\cs_generate_variant:Nn \iow_now:Nn { NV , Nx , c , cV , cx } -\cs_set_protected:Npn \iow_log:x { \iow_now:Nx \c_log_iow } +\cs_generate_variant:Nn \iow_now:Nn { NV , Ne , c , cV , ce } +\cs_generate_variant:Nn \iow_now:Nn { Nx , cx } \cs_new_protected:Npn \iow_log:n { \iow_now:Nn \c_log_iow } -\cs_set_protected:Npn \iow_term:x { \iow_now:Nx \c_term_iow } +\cs_set_protected:Npn \iow_log:e { \iow_now:Ne \c_log_iow } +\cs_generate_variant:Nn \iow_log:n { x } \cs_new_protected:Npn \iow_term:n { \iow_now:Nn \c_term_iow } +\cs_set_protected:Npn \iow_term:e { \iow_now:Ne \c_term_iow } +\cs_generate_variant:Nn \iow_term:n { x } \cs_new:Npn \iow_newline: { ^^J } \cs_new_eq:NN \iow_char:N \cs_to_str:N \int_new:N \l_iow_line_count_int @@ -10959,14 +11058,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__iow_unindent:w { } \cs_new_protected:Npn \__iow_set_indent:n #1 { - \__kernel_tl_set:Nx \l__iow_one_indent_tl + \__kernel_tl_set:Ne \l__iow_one_indent_tl { \exp_args:No \__kernel_str_to_other_fast:n { \tl_to_str:n {#1} } } \int_set:Nn \l__iow_one_indent_int { \str_count:N \l__iow_one_indent_tl } \exp_last_unbraced:NNo \cs_set:Npn \__iow_unindent:w \l__iow_one_indent_tl { } } -\exp_args:Nx \__iow_set_indent:n { \prg_replicate:nn { 4 } { ~ } } +\exp_args:Ne \__iow_set_indent:n { \prg_replicate:nn { 4 } { ~ } } \tl_new:N \l__iow_indent_tl \int_new:N \l__iow_indent_int \tl_new:N \l__iow_line_tl @@ -10975,13 +11074,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \l__iow_wrap_tl \group_begin: \int_set:Nn \tex_escapechar:D { -1 } - \tl_const:Nx \c__iow_wrap_marker_tl + \tl_const:Ne \c__iow_wrap_marker_tl { \tl_to_str:n { \^^I \^^O \^^W \^^_ \^^W \^^R \^^A \^^P } } \group_end: \tl_map_inline:nn { { end } { newline } { allow_break } { indent } { unindent } } { - \tl_const:cx { c__iow_wrap_ #1 _marker_tl } + \tl_const:ce { c__iow_wrap_ #1 _marker_tl } { \c__iow_wrap_marker_tl #1 @@ -10993,7 +11092,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \msg_error:nnnn { kernel } { iow-indent } { \iow_wrap:nnnN } { \iow_wrap_allow_break: } } -\cs_new:Npx \__iow_wrap_allow_break: { \c__iow_wrap_allow_break_marker_tl } +\cs_new:Npe \__iow_wrap_allow_break: { \c__iow_wrap_allow_break_marker_tl } \cs_new:Npn \__iow_wrap_allow_break_error: { \msg_expandable_error:nnnn { kernel } { iow-indent } @@ -11005,7 +11104,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \iow_wrap:nnnN } { \iow_indent:n } {#1} #1 } -\cs_new:Npx \__iow_indent:n #1 +\cs_new:Npe \__iow_indent:n #1 { \c__iow_wrap_indent_marker_tl #1 @@ -11022,11 +11121,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \cs_if_exist_use:N \conditionally@traceoff \int_set:Nn \tex_escapechar:D { -1 } - \cs_set:Npx \{ { \token_to_str:N \{ } - \cs_set:Npx \# { \token_to_str:N \# } - \cs_set:Npx \} { \token_to_str:N \} } - \cs_set:Npx \% { \token_to_str:N \% } - \cs_set:Npx \~ { \token_to_str:N \~ } + \cs_set:Npe \{ { \token_to_str:N \{ } + \cs_set:Npe \# { \token_to_str:N \# } + \cs_set:Npe \} { \token_to_str:N \} } + \cs_set:Npe \% { \token_to_str:N \% } + \cs_set:Npe \~ { \token_to_str:N \~ } \int_set:Nn \tex_escapechar:D { 92 } \cs_set_eq:NN \\ \iow_newline: \cs_set_eq:NN \ \c_catcode_other_space_tl @@ -11034,11 +11133,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_eq:NN \iow_indent:n \__iow_indent:n #3 \cs_set_eq:NN \protect \token_to_str:N - \__kernel_tl_set:Nx \l__iow_wrap_tl {#1} + \__kernel_tl_set:Ne \l__iow_wrap_tl {#1} \cs_set_eq:NN \iow_wrap_allow_break: \__iow_wrap_allow_break_error: \cs_set_eq:NN \iow_indent:n \__iow_indent_error:n - \__kernel_tl_set:Nx \l__iow_newline_tl { \iow_newline: #2 } - \__kernel_tl_set:Nx \l__iow_newline_tl { \tl_to_str:N \l__iow_newline_tl } + \__kernel_tl_set:Ne \l__iow_newline_tl { \iow_newline: #2 } + \__kernel_tl_set:Ne \l__iow_newline_tl { \tl_to_str:N \l__iow_newline_tl } \int_set:Nn \l__iow_line_target_int { \l_iow_line_count_int - \str_count:N \l__iow_newline_tl + 1 } \int_compare:nNnT { \l__iow_line_target_int } < 0 @@ -11051,15 +11150,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_args:NNf \group_end: #4 { \tl_to_str:N \l__iow_wrap_tl } } -\cs_generate_variant:Nn \iow_wrap:nnnN { nx } +\cs_generate_variant:Nn \iow_wrap:nnnN { ne } \cs_new_protected:Npn \__iow_wrap_do: { - \__kernel_tl_set:Nx \l__iow_wrap_tl + \__kernel_tl_set:Ne \l__iow_wrap_tl { \exp_args:No \__kernel_str_to_other_fast:n \l__iow_wrap_tl \c__iow_wrap_end_marker_tl } - \__kernel_tl_set:Nx \l__iow_wrap_tl + \__kernel_tl_set:Ne \l__iow_wrap_tl { \exp_after:wN \__iow_wrap_fix_newline:w \l__iow_wrap_tl ^^J \q__iow_nil ^^J \s__iow_stop @@ -11217,7 +11316,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__iow_wrap_allow_break:n #1 { - \__kernel_tl_set:Nx \l__iow_line_tl + \__kernel_tl_set:Ne \l__iow_line_tl { \l__iow_line_tl \__iow_wrap_trim:N \l__iow_line_part_tl } \bool_set_false:N \l__iow_line_break_bool \tl_if_empty:NTF \l__iow_line_part_tl @@ -11226,7 +11325,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__iow_wrap_indent:n #1 { - \tl_put_right:Nx \l__iow_line_tl { \l__iow_line_part_tl } + \tl_put_right:Ne \l__iow_line_tl { \l__iow_line_part_tl } \bool_set_false:N \l__iow_line_break_bool \int_add:Nn \l__iow_indent_int { \l__iow_one_indent_int } \tl_put_right:No \l__iow_indent_tl { \l__iow_one_indent_tl } @@ -11234,10 +11333,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__iow_wrap_unindent:n #1 { - \tl_put_right:Nx \l__iow_line_tl { \l__iow_line_part_tl } + \tl_put_right:Ne \l__iow_line_tl { \l__iow_line_part_tl } \bool_set_false:N \l__iow_line_break_bool \int_sub:Nn \l__iow_indent_int { \l__iow_one_indent_int } - \__kernel_tl_set:Nx \l__iow_indent_tl + \__kernel_tl_set:Ne \l__iow_indent_tl { \exp_after:wN \__iow_unindent:w \l__iow_indent_tl } \__iow_wrap_chunk:nw {#1} } @@ -11256,9 +11355,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__iow_wrap_store_do:n #1 { - \__kernel_tl_set:Nx \l__iow_line_tl + \__kernel_tl_set:Ne \l__iow_line_tl { \l__iow_line_tl \l__iow_line_part_tl } - \__kernel_tl_set:Nx \l__iow_wrap_tl + \__kernel_tl_set:Ne \l__iow_wrap_tl { \l__iow_wrap_tl \l__iow_newline_tl @@ -11275,6 +11374,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__iow_wrap_trim_aux:w ##1 \s__iow_mark ##2 \s__iow_stop {##1} } \exp_args:NV \__iow_tmp:w \c_catcode_other_space_tl +\cs_new_eq:NN \iow_shipout_x:Nn \iow_shipout_e:Nn +\cs_generate_variant:Nn \iow_shipout_x:Nn { Nx , c, cx } \tl_new:N \l__file_internal_tl \str_new:N \g_file_curr_dir_str \str_new:N \g_file_curr_ext_str @@ -11287,7 +11388,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_set:Npn \__file_tmp:w ##1 " ##2 " ##3 \s__file_stop { { } {##2} { } } - \seq_gput_right:Nx \g__file_stack_seq + \seq_gput_right:Ne \g__file_stack_seq { \exp_after:wN \__file_tmp:w \tex_jobname:D " \tex_jobname:D " \s__file_stop @@ -11401,12 +11502,13 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 } { "#1" } } -\tl_const:Nx \c__file_marker_tl { : \token_to_str:N : } +\tl_const:Ne \c__file_marker_tl { : \token_to_str:N : } \cs_new_protected:Npn \file_get:nnN #1#2#3 { \file_get:nnNF {#1} {#2} #3 { \tl_set:Nn #3 { \q_no_value } } } +\cs_generate_variant:Nn \file_get:nnN { V } \prg_new_protected_conditional:Npnn \file_get:nnN #1#2#3 { T , F , TF } { \file_get_full_name:nNTF {#1} \l__file_full_name_tl @@ -11418,7 +11520,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \prg_return_false: } } -\cs_new_protected:Npx \__file_get_aux:nnN #1#2#3 +\prg_generate_conditional_variant:Nnn \file_get:nnN { V } { T , F , TF } +\cs_new_protected:Npe \__file_get_aux:nnN #1#2#3 { \exp_not:N \if_false: { \exp_not:N \fi: \group_begin: @@ -11448,6 +11551,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_args:Ne \__file_full_name:n { \__kernel_file_name_sanitize:n {#1} } } +\cs_generate_variant:Nn \file_full_name:n { V } \cs_new:Npn \__file_full_name:n #1 { \tl_if_blank:nF {#1} @@ -11527,7 +11631,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \__file_ext_check:nnw {#1} { #2 #3 / } #4 / #5 \s__file_stop } } -\cs_new:Npx \__file_ext_check:nnnw #1#2#3#4 . #5 . #6 \s__file_stop +\cs_new:Npe \__file_ext_check:nnnw #1#2#3#4 . #5 . #6 \s__file_stop { \exp_not:N \__file_quark_if_nil:nTF {#5} { @@ -11558,20 +11662,21 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \file_get_full_name:nN { V } \prg_new_protected_conditional:Npnn \file_get_full_name:nN #1#2 { T , F , TF } { - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \file_full_name:n {#1} } \tl_if_empty:NTF #2 { \prg_return_false: } { \prg_return_true: } } -\cs_generate_variant:Nn \file_get_full_name:nNT { V } -\cs_generate_variant:Nn \file_get_full_name:nNF { V } -\cs_generate_variant:Nn \file_get_full_name:nNTF { V } +\prg_generate_conditional_variant:Nnn \file_get_full_name:nN + { V } { T , F , TF } \ior_new:N \g__file_internal_ior \cs_new:Npn \file_size:n #1 { \__file_details:nn {#1} { size } } +\cs_generate_variant:Nn \file_size:n { V } \cs_new:Npn \file_timestamp:n #1 { \__file_details:nn {#1} { moddate } } +\cs_generate_variant:Nn \file_timestamp:n { V } \cs_new:Npn \__file_details:nn #1#2 { \exp_args:Ne \__file_details_aux:nn @@ -11584,6 +11689,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \file_mdfive_hash:n #1 { \exp_args:Ne \__file_mdfive_hash:n { \file_full_name:n {#1} } } +\cs_generate_variant:Nn \file_mdfive_hash:n { V } \cs_new:Npn \__file_mdfive_hash:n #1 { \tex_mdfivesum:D file {#1} } \cs_new:Npn \file_hex_dump:nnn #1#2#3 @@ -11593,6 +11699,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_eval:n {#2} } { \int_eval:n {#3} } } +\cs_generate_variant:Nn \file_hex_dump:nnn { V } \cs_new:Npn \__file_hex_dump_auxi:nnn #1#2#3 { \bool_lazy_any:nF @@ -11636,6 +11743,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \file_hex_dump:n #1 { \exp_args:Ne \__file_hex_dump:n { \file_full_name:n {#1} } } +\cs_generate_variant:Nn \file_hex_dump:n { V } \sys_if_engine_luatex:TF { \cs_new:Npn \__file_hex_dump:n #1 @@ -11653,23 +11761,35 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \file_get_hex_dump:nN #1#2 { \file_get_hex_dump:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_hex_dump:nN { V } \cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2 { \file_get_mdfive_hash:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_mdfive_hash:nN { V } \cs_new_protected:Npn \file_get_size:nN #1#2 { \file_get_size:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_size:nN { V } \cs_new_protected:Npn \file_get_timestamp:nN #1#2 { \file_get_timestamp:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_timestamp:nN { V } \prg_new_protected_conditional:Npnn \file_get_hex_dump:nN #1#2 { T , F , TF } { \__file_get_details:nnN {#1} { hex_dump } #2 } +\prg_generate_conditional_variant:Nnn \file_get_hex_dump:nN + { V } { T , F , TF } \prg_new_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2 { T , F , TF } { \__file_get_details:nnN {#1} { mdfive_hash } #2 } +\prg_generate_conditional_variant:Nnn \file_get_mdfive_hash:nN + { V } { T , F , TF } \prg_new_protected_conditional:Npnn \file_get_size:nN #1#2 { T , F , TF } { \__file_get_details:nnN {#1} { size } #2 } +\prg_generate_conditional_variant:Nnn \file_get_size:nN + { V } { T , F , TF } \prg_new_protected_conditional:Npnn \file_get_timestamp:nN #1#2 { T , F , TF } { \__file_get_details:nnN {#1} { timestamp } #2 } +\prg_generate_conditional_variant:Nnn \file_get_timestamp:nN + { V } { T , F , TF } \cs_new_protected:Npn \__file_get_details:nnN #1#2#3 { - \__kernel_tl_set:Nx #3 + \__kernel_tl_set:Ne #3 { \use:c { file_ #2 :n } {#1} } \tl_if_empty:NTF #3 { \prg_return_false: } @@ -11680,15 +11800,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \file_get_hex_dump:nnnNF {#1} {#2} {#3} #4 { \tl_set:Nn #4 { \q_no_value } } } +\cs_generate_variant:Nn \file_get_hex_dump:nnnN { V } \prg_new_protected_conditional:Npnn \file_get_hex_dump:nnnN #1#2#3#4 { T , F , TF } { - \__kernel_tl_set:Nx #4 + \__kernel_tl_set:Ne #4 { \file_hex_dump:nnn {#1} {#2} {#3} } \tl_if_empty:NTF #4 { \prg_return_false: } { \prg_return_true: } } +\prg_generate_conditional_variant:Nnn \file_get_hex_dump:nnnN + { V } { T , F , TF } \cs_new_eq:NN \__file_str_cmp:nn \tex_strcmp:D \prg_new_conditional:Npnn \file_compare_timestamp:nNn #1#2#3 { p , T , F , TF } @@ -11698,6 +11821,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \file_full_name:n {#3} } #2 } +\prg_generate_conditional_variant:Nnn \file_compare_timestamp:nNn + { nNV , V , VNV } { p , T , F , TF } \cs_new:Npn \__file_compare_timestamp:nnN #1#2#3 { \tl_if_blank:nTF {#1} @@ -11731,28 +11856,30 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_eq:NN \__file_timestamp:n \tex_filemoddate:D -\prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF } +\prg_new_conditional:Npnn \file_if_exist:n #1 { p , T , F , TF } { - \file_get_full_name:nNTF {#1} \l__file_full_name_tl - { \prg_return_true: } + \tl_if_blank:eTF { \file_full_name:n {#1} } { \prg_return_false: } + { \prg_return_true: } } -\prg_generate_conditional_variant:Nnn \file_if_exist:n { V } { T , F , TF } +\prg_generate_conditional_variant:Nnn \file_if_exist:n { V } { p , T , F , TF } \cs_new_protected:Npn \file_if_exist_input:n #1 { \file_get_full_name:nNT {#1} \l__file_full_name_tl { \__file_input:V \l__file_full_name_tl } } +\cs_generate_variant:Nn \file_if_exist_input:n { V } \cs_new_protected:Npn \file_if_exist_input:nF #1#2 { \file_get_full_name:nNTF {#1} \l__file_full_name_tl { \__file_input:V \l__file_full_name_tl } {#2} } +\cs_generate_variant:Nn \file_if_exist_input:nF { V } \cs_new_protected:Npn \file_input_stop: { \tex_endinput:D } \cs_new_protected:Npn \__kernel_file_missing:n #1 { - \msg_error:nnx { kernel } { file-not-found } + \msg_error:nne { kernel } { file-not-found } { \__kernel_file_name_sanitize:n {#1} } } \cs_new_protected:Npn \file_input:n #1 @@ -11762,7 +11889,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__kernel_file_missing:n {#1} } } \cs_generate_variant:Nn \file_input:n { V } -\cs_new_protected:Npx \__file_input:n #1 +\cs_new_protected:Npe \__file_input:n #1 { \exp_not:N \clist_if_exist:NTF \exp_not:N \@filelist { \exp_not:N \@addtofilelist {#1} } @@ -11777,7 +11904,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \__file_input:n { V } \cs_new_protected:Npn \__file_input_push:n #1 { - \seq_gpush:Nx \g__file_stack_seq + \seq_gpush:Ne \g__file_stack_seq { { \g_file_curr_dir_str } { \g_file_curr_name_str } @@ -11804,7 +11931,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \file_input_raw:n #1 { \exp_args:Ne \__file_input_raw:nn { \file_full_name:n {#1} } {#1} } -\cs_new:Npx \__file_input_raw:nn #1#2 +\cs_generate_variant:Nn \file_input_raw:n { V } +\cs_new:Npe \__file_input_raw:nn #1#2 { \exp_not:N \tl_if_blank:nTF {#1} { @@ -11825,11 +11953,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \file_parse_full_name_apply:nN {#1} \prg_do_nothing: } +\cs_generate_variant:Nn \file_parse_full_name:n { V } \cs_new:Npn \file_parse_full_name_apply:nN #1 { \exp_args:Ne \__file_parse_full_name_auxi:nN { \__kernel_file_name_sanitize:n {#1} } } +\cs_generate_variant:Nn \file_parse_full_name_apply:nN { V } \cs_new:Npn \__file_parse_full_name_auxi:nN #1 { \__file_parse_full_name_area:nw { } #1 @@ -11877,14 +12007,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \str_set:Nn #6 {#3} } \cs_generate_variant:Nn \file_parse_full_name:nNNN { V } -\cs_new_protected:Npn \file_show_list: { \__file_list:N \msg_show:nnxxxx } -\cs_new_protected:Npn \file_log_list: { \__file_list:N \msg_log:nnxxxx } +\cs_new_protected:Npn \file_show_list: { \__file_list:N \msg_show:nneeee } +\cs_new_protected:Npn \file_log_list: { \__file_list:N \msg_log:nneeee } \cs_new_protected:Npn \__file_list:N #1 { \seq_clear:N \l__file_tmp_seq \clist_if_exist:NT \@filelist { - \exp_args:NNx \seq_set_from_clist:Nn \l__file_tmp_seq + \exp_args:NNe \seq_set_from_clist:Nn \l__file_tmp_seq { \tl_to_str:N \@filelist } } \seq_concat:NNN \l__file_tmp_seq \l__file_tmp_seq \g__file_record_seq @@ -11898,7 +12028,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \AtBeginDocument { - \exp_args:NNx \seq_set_from_clist:Nn \l__file_tmp_seq + \exp_args:NNe \seq_set_from_clist:Nn \l__file_tmp_seq { \tl_to_str:N \@filelist } \seq_gconcat:NNN \g__file_record_seq @@ -11964,7 +12094,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__file_parse_version:w #1 - #2 - #3 \s__file_stop {#1#2#3} \cs_new_protected:Npn \__file_mismatched_dependency_error:nn #1 #2 { - \exp_args:NNx \ior_shell_open:Nn \g__file_internal_ior + \exp_args:NNe \ior_shell_open:Nn \g__file_internal_ior { kpsewhich ~ --all ~ --engine = \c_sys_engine_exec_str @@ -12054,7 +12184,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \sys_if_engine_luatex:TF { - \str_const:Nx \c_sys_platform_str + \str_const:Ne \c_sys_platform_str { \tex_directlua:D { tex.print(os.type) } } } { @@ -12346,7 +12476,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_gincr:N \g__kernel_prg_map_int \exp_args:NNc \__dim_step:NNnnnn - \cs_gset_protected:Npx + \cs_gset_protected:Npe { __dim_map_ \int_use:N \g__kernel_prg_map_int :w } {#1}{#2}{#3} { @@ -12387,10 +12517,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__dim_to_decimal:w \dim_use:N \__dim_eval:w #1 \__dim_eval_end: } -\use:x +\use:e { \cs_new:Npn \exp_not:N \__dim_to_decimal:w - ##1 . ##2 \tl_to_str:n { pt } + #1 . #2 \tl_to_str:n { pt } } { \int_compare:nNnTF {#2} > \c_zero_int @@ -12934,9 +13064,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \keys_define:nn { \__keys_define:onn \l__keys_module_str } +\cs_generate_variant:Nn \keys_define:nn { ne , nx } \cs_new_protected:Npn \__keys_define:nnn #1#2#3 { - \str_set:Nx \l__keys_module_str { \__keys_trim_spaces:n {#2} } + \str_set:Ne \l__keys_module_str { \__keys_trim_spaces:n {#2} } \keyval_parse:NNn \__keys_define:n \__keys_define:nn {#3} \str_set:Nn \l__keys_module_str {#1} } @@ -12959,14 +13090,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \str_if_empty:NF \l__keys_property_str { - \msg_error:nnxx { keys } { property-unknown } + \msg_error:nnee { keys } { property-unknown } \l__keys_property_str \l_keys_path_str } } } \cs_new_protected:Npn \__keys_property_find:n #1 { - \cs_set_nopar:Npx \l__keys_property_str { \__keys_trim_spaces:n { #1 } } + \cs_set_nopar:Npe \l__keys_property_str { \__keys_trim_spaces:n { #1 } } \exp_after:wN \__keys_property_find_auxi:w \l__keys_property_str \s__keys_nil \__keys_property_find_auxii:w . \s__keys_nil \__keys_property_find_err:w @@ -12979,22 +13110,22 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 \s__keys_mark #2 \s__keys_nil \__keys_property_find_auxii:w . \s__keys_nil \__keys_property_find_err:w { - \cs_set_nopar:Npx \l_keys_path_str + \cs_set_nopar:Npe \l_keys_path_str { \str_if_empty:NF \l__keys_module_str { \l__keys_module_str / } #1 } \__keys_property_find_auxi:w #2 \s__keys_nil \__keys_property_find_auxiii:w . \s__keys_nil \__keys_property_find_auxiv:w } \cs_new_protected:Npn \__keys_property_find_auxiii:w #1 \s__keys_mark { - \cs_set_nopar:Npx \l_keys_path_str { \l_keys_path_str . #1 } + \cs_set_nopar:Npe \l_keys_path_str { \l_keys_path_str . #1 } \__keys_property_find_auxi:w } \cs_new_protected:Npn \__keys_property_find_auxiv:w #1 \s__keys_nil \__keys_property_find_auxiii:w \s__keys_mark \s__keys_nil \__keys_property_find_auxiv:w { - \cs_set_nopar:Npx \l__keys_property_str { . #1 } - \cs_set_nopar:Npx \l_keys_path_str + \cs_set_nopar:Npe \l__keys_property_str { . #1 } + \cs_set_nopar:Npe \l_keys_path_str { \exp_after:wN \__keys_trim_spaces:n \exp_after:wN { \l_keys_path_str } } \tl_set_eq:NN \l_keys_path_tl \l_keys_path_str } @@ -13012,7 +13143,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \l__keys_property_str \s__keys_stop { \use:c { \c__keys_props_root_str \l__keys_property_str } } { - \msg_error:nnxx { keys } { property-requires-value } + \msg_error:nnee { keys } { property-requires-value } \l__keys_property_str \l_keys_path_str } } @@ -13031,13 +13162,13 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_if_exist:NF #1 { \bool_new:N #1 } \__keys_choice_make: - \__keys_cmd_set:nx { \l_keys_path_str / true } + \__keys_cmd_set:ne { \l_keys_path_str / true } { \exp_not:c { bool_ #2 set_ #3 :N } \exp_not:N #1 } - \__keys_cmd_set:nx { \l_keys_path_str / false } + \__keys_cmd_set:ne { \l_keys_path_str / false } { \exp_not:c { bool_ #2 set_ #4 :N } \exp_not:N #1 } \__keys_cmd_set_direct:nn { \l_keys_path_str / unknown } { - \msg_error:nnx { keys } { boolean-values-only } + \msg_error:nne { keys } { boolean-values-only } \l_keys_path_str } \__keys_default_set:n { true } @@ -13056,7 +13187,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \c__keys_type_root_str \__keys_parent:o \l_keys_path_str } { choice } { - \msg_error:nnxx { keys } { nested-choice-key } + \msg_error:nnee { keys } { nested-choice-key } \l_keys_path_tl { \__keys_parent:o \l_keys_path_str } } { \__keys_choice_make_aux:N #1 } @@ -13070,7 +13201,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__keys_cmd_set_direct:nn \l_keys_path_str { #1 {##1} } \__keys_cmd_set_direct:nn { \l_keys_path_str / unknown } { - \msg_error:nnxx { keys } { choice-unknown } + \msg_error:nnee { keys } { choice-unknown } \l_keys_path_str {##1} } } @@ -13085,7 +13216,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \clist_map_inline:nn {#2} { \int_incr:N \l_keys_choice_int - \__keys_cmd_set:nx + \__keys_cmd_set:ne { \l_keys_path_str / \__keys_trim_spaces:n {##1} } { \tl_set:Nn \exp_not:N \l_keys_choice_tl {##1} @@ -13097,12 +13228,12 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__keys_cmd_set:nn #1#2 { \__keys_cmd_set_direct:nn {#1} { \__keys_precompile:n {#2} } } -\cs_generate_variant:Nn \__keys_cmd_set:nn { nx , Vn , Vo } +\cs_generate_variant:Nn \__keys_cmd_set:nn { ne , Vn , Vo } \cs_new_protected:Npn \__keys_cmd_set_direct:nn #1#2 { \cs_set_protected:cpn { \c__keys_code_root_str #1 } ##1 {#2} } \cs_new_protected:Npn \__keys_cs_set:NNpn #1#2#3# { - \cs_set_protected:cpx { \c__keys_code_root_str \l_keys_path_str } ##1 + \cs_set_protected:cpe { \c__keys_code_root_str \l_keys_path_str } ##1 { \__keys_precompile:n { #1 \exp_not:N #2 \exp_not:n {#3} {##1} } @@ -13119,7 +13250,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tex_undefined:D } { - \cs_set_nopar:cpx + \cs_set_nopar:cpe { \c__keys_default_root_str \l_keys_path_str } { \exp_not:n {#1} } \__keys_value_requirement:nn { required } { false } @@ -13168,13 +13299,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__keys_legacy_if_set:nnnn #1#2#3#4 { \__keys_choice_make: - \__keys_cmd_set:nx { \l_keys_path_str / true } + \__keys_cmd_set:ne { \l_keys_path_str / true } { \exp_not:c { legacy_if_#2 set_ #3 :n } { \exp_not:n {#1} } } - \__keys_cmd_set:nx { \l_keys_path_str / false } + \__keys_cmd_set:ne { \l_keys_path_str / false } { \exp_not:c { legacy_if_#2 set_ #4 :n } { \exp_not:n {#1} } } \__keys_cmd_set:nn { \l_keys_path_str / unknown } { - \msg_error:nnx { keys } { boolean-values-only } + \msg_error:nne { keys } { boolean-values-only } \l_keys_path_str } \__keys_default_set:n { true } @@ -13202,7 +13333,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_if_exist:NF #1 { \prop_new:N #1 } \exp_after:wN \__keys_find_key_module:wNN \l_keys_path_str \s__keys_stop \l__keys_tmpa_tl \l__keys_tmpb_tl - \__keys_cmd_set:nx \l_keys_path_str + \__keys_cmd_set:ne \l_keys_path_str { \exp_not:c { prop_ #2 put:Nnn } \exp_not:N #1 @@ -13244,7 +13375,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } } { - \msg_error:nnx { keys } + \msg_error:nne { keys } { boolean-values-only } { .value_ #1 :n } } @@ -13253,7 +13384,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_if:NF \l__keys_no_value_bool { - \msg_error:nnxx { keys } { value-forbidden } + \msg_error:nnee { keys } { value-forbidden } \l_keys_path_str \l_keys_value_tl \use_none:nnn } @@ -13262,7 +13393,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_if:NT \l__keys_no_value_bool { - \msg_error:nnx { keys } { value-required } + \msg_error:nne { keys } { value-required } \l_keys_path_str \use_none:nnn } @@ -13304,7 +13435,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prop_get:NVNF #1 \l__keys_module_str \l__keys_tmpa_tl { \tl_clear:N \l__keys_tmpa_tl } - \tl_set:Nx \l__keys_tmpb_tl + \tl_set:Ne \l__keys_tmpb_tl { \exp_after:wN \__keys_usage:w \l_keys_path_str \s__keys_stop } \bool_if:NTF #2 { \clist_put_right:NV \l__keys_tmpa_tl \l__keys_tmpb_tl } @@ -13316,7 +13447,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__keys_variable_set:NnnN #1#2#3#4 { \use:c { #2_if_exist:NF } #1 { \use:c { #2 _new:N } #1 } - \__keys_cmd_set:nx \l_keys_path_str + \__keys_cmd_set:ne \l_keys_path_str { \exp_not:c { #2 _ #3 set:N #4 } \exp_not:N #1 @@ -13352,6 +13483,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_choices_make:nn #1 } \cs_new_protected:cpn { \c__keys_props_root_str .choices:Vn } #1 { \exp_args:NV \__keys_choices_make:nn #1 } +\cs_new_protected:cpn { \c__keys_props_root_str .choices:en } #1 + { \exp_args:Ne \__keys_choices_make:nn #1 } \cs_new_protected:cpn { \c__keys_props_root_str .choices:on } #1 { \exp_args:No \__keys_choices_make:nn #1 } \cs_new_protected:cpn { \c__keys_props_root_str .choices:xn } #1 @@ -13386,6 +13519,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_default_set:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .default:V } #1 { \exp_args:NV \__keys_default_set:n #1 } +\cs_new_protected:cpn { \c__keys_props_root_str .default:e } #1 + { \exp_args:Ne \__keys_default_set:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .default:o } #1 { \exp_args:No \__keys_default_set:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .default:x } #1 @@ -13414,6 +13549,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_initialise:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .initial:V } #1 { \exp_args:NV \__keys_initialise:n #1 } +\cs_new_protected:cpn { \c__keys_props_root_str .initial:e } #1 + { \exp_args:Ne \__keys_initialise:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .initial:o } #1 { \exp_args:No \__keys_initialise:n {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .initial:x } #1 @@ -13444,6 +13581,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_multichoices_make:nn #1 } \cs_new_protected:cpn { \c__keys_props_root_str .multichoices:Vn } #1 { \exp_args:NV \__keys_multichoices_make:nn #1 } +\cs_new_protected:cpn { \c__keys_props_root_str .multichoices:en } #1 + { \exp_args:Ne \__keys_multichoices_make:nn #1 } \cs_new_protected:cpn { \c__keys_props_root_str .multichoices:on } #1 { \exp_args:No \__keys_multichoices_make:nn #1 } \cs_new_protected:cpn { \c__keys_props_root_str .multichoices:xn } #1 @@ -13476,34 +13615,34 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_variable_set:NnnN #1 { str } { } n } \cs_new_protected:cpn { \c__keys_props_root_str .str_set:c } #1 { \__keys_variable_set:cnnN {#1} { str } { } n } -\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:N } #1 - { \__keys_variable_set:NnnN #1 { str } { } x } -\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:c } #1 - { \__keys_variable_set:cnnN {#1} { str } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_set_e:N } #1 + { \__keys_variable_set:NnnN #1 { str } { } e } +\cs_new_protected:cpn { \c__keys_props_root_str .str_set_e:c } #1 + { \__keys_variable_set:cnnN {#1} { str } { } e } \cs_new_protected:cpn { \c__keys_props_root_str .str_gset:N } #1 { \__keys_variable_set:NnnN #1 { str } { g } n } \cs_new_protected:cpn { \c__keys_props_root_str .str_gset:c } #1 { \__keys_variable_set:cnnN {#1} { str } { g } n } -\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:N } #1 - { \__keys_variable_set:NnnN #1 { str } { g } x } -\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:c } #1 - { \__keys_variable_set:cnnN {#1} { str } { g } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_e:N } #1 + { \__keys_variable_set:NnnN #1 { str } { g } e } +\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_e:c } #1 + { \__keys_variable_set:cnnN {#1} { str } { g } e } \cs_new_protected:cpn { \c__keys_props_root_str .tl_set:N } #1 { \__keys_variable_set:NnnN #1 { tl } { } n } \cs_new_protected:cpn { \c__keys_props_root_str .tl_set:c } #1 { \__keys_variable_set:cnnN {#1} { tl } { } n } -\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:N } #1 - { \__keys_variable_set:NnnN #1 { tl } { } x } -\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:c } #1 - { \__keys_variable_set:cnnN {#1} { tl } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_e:N } #1 + { \__keys_variable_set:NnnN #1 { tl } { } e } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_e:c } #1 + { \__keys_variable_set:cnnN {#1} { tl } { } e } \cs_new_protected:cpn { \c__keys_props_root_str .tl_gset:N } #1 { \__keys_variable_set:NnnN #1 { tl } { g } n } \cs_new_protected:cpn { \c__keys_props_root_str .tl_gset:c } #1 { \__keys_variable_set:cnnN {#1} { tl } { g } n } -\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_x:N } #1 - { \__keys_variable_set:NnnN #1 { tl } { g } x } -\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_x:c } #1 - { \__keys_variable_set:cnnN {#1} { tl } { g } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_e:N } #1 + { \__keys_variable_set:NnnN #1 { tl } { g } e } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_e:c } #1 + { \__keys_variable_set:cnnN {#1} { tl } { g } e } \cs_new_protected:cpn { \c__keys_props_root_str .undefine: } { \__keys_undefine: } \cs_new_protected:cpn { \c__keys_props_root_str .usage:n } #1 @@ -13514,7 +13653,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_value_requirement:nn { required } {#1} } \cs_new_protected:Npn \keys_set:nn #1#2 { - \use:x + \use:e { \bool_set_false:N \exp_not:N \l__keys_only_known_bool \bool_set_false:N \exp_not:N \l__keys_filtered_bool @@ -13532,12 +13671,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_not:o \l__keys_relative_tl } } } -\cs_generate_variant:Nn \keys_set:nn { nV , nv , no , nx } +\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx } \cs_new_protected:Npn \__keys_set:nn #1#2 { \exp_args:No \__keys_set:nnn \l__keys_module_str {#1} {#2} } \cs_new_protected:Npn \__keys_set:nnn #1#2#3 { - \str_set:Nx \l__keys_module_str { \__keys_trim_spaces:n {#2} } + \str_set:Ne \l__keys_module_str { \__keys_trim_spaces:n {#2} } \keyval_parse:NNn \__keys_set_keyval:n \__keys_set_keyval:nn {#3} \str_set:Nn \l__keys_module_str {#1} } @@ -13546,26 +13685,26 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_args:No \__keys_set_known:nnnnN \l__keys_unused_clist \q__keys_no_value {#1} {#2} #3 } -\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , no } +\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no } \cs_new_protected:Npn \keys_set_known:nnnN #1#2#3#4 { \exp_args:No \__keys_set_known:nnnnN \l__keys_unused_clist {#3} {#1} {#2} #4 } -\cs_generate_variant:Nn \keys_set_known:nnnN { nV , nv , no } +\cs_generate_variant:Nn \keys_set_known:nnnN { nV , nv , ne , no } \cs_new_protected:Npn \__keys_set_known:nnnnN #1#2#3#4#5 { \clist_clear:N \l__keys_unused_clist \__keys_set_known:nnn {#2} {#3} {#4} - \__kernel_tl_set:Nx #5 { \exp_not:o \l__keys_unused_clist } + \__kernel_tl_set:Ne #5 { \exp_not:o \l__keys_unused_clist } \tl_set:Nn \l__keys_unused_clist {#1} } \cs_new_protected:Npn \keys_set_known:nn #1#2 { \__keys_set_known:nnn \q__keys_no_value {#1} {#2} } -\cs_generate_variant:Nn \keys_set_known:nn { nV , nv , no } +\cs_generate_variant:Nn \keys_set_known:nn { nV , nv , ne , no } \cs_new_protected:Npn \__keys_set_known:nnn #1#2#3 { - \use:x + \use:e { \bool_set_true:N \exp_not:N \l__keys_only_known_bool \bool_set_false:N \exp_not:N \l__keys_filtered_bool @@ -13599,7 +13738,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \clist_clear:N \l__keys_unused_clist \__keys_set_filter:nnnn {#2} {#3} {#4} {#5} - \__kernel_tl_set:Nx #6 { \exp_not:o \l__keys_unused_clist } + \__kernel_tl_set:Ne #6 { \exp_not:o \l__keys_unused_clist } \tl_set:Nn \l__keys_unused_clist {#1} } \cs_new_protected:Npn \keys_set_filter:nnn #1#2#3 @@ -13607,7 +13746,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \keys_set_filter:nnn { nnV , nnv , nno } \cs_new_protected:Npn \__keys_set_filter:nnnn #1#2#3#4 { - \use:x + \use:e { \bool_set_false:N \exp_not:N \l__keys_only_known_bool \bool_set_true:N \exp_not:N \l__keys_filtered_bool @@ -13626,7 +13765,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \keys_set_groups:nnn #1#2#3 { - \use:x + \use:e { \bool_set_false:N \exp_not:N \l__keys_only_known_bool \bool_set_false:N \exp_not:N \l__keys_filtered_bool @@ -13673,7 +13812,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__keys_set_keyval:nnn #1#2#3 { - \__kernel_tl_set:Nx \l_keys_path_str + \__kernel_tl_set:Ne \l_keys_path_str { \tl_if_blank:nF {#1} { #1 / } @@ -13703,12 +13842,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__keys_find_key_module_auxii:Nw #1 #2 \s__keys_mark #3 \s__keys_nil \__keys_find_key_module_auxii:Nw { - \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 } + \cs_set_nopar:Npe #1 { \tl_if_empty:NF #1 { #1 / } #2 } \__keys_find_key_module_auxi:Nw #1 #3 \s__keys_nil \__keys_find_key_module_auxiii:Nw } \cs_new_protected:Npn \__keys_find_key_module_auxiii:Nw #1 #2 \s__keys_mark { - \cs_set_nopar:Npx #1 { \tl_if_empty:NF #1 { #1 / } #2 } + \cs_set_nopar:Npe #1 { \tl_if_empty:NF #1 { #1 / } #2 } \__keys_find_key_module_auxi:Nw #1 } \cs_new_protected:Npn \__keys_find_key_module_auxiv:Nw @@ -13830,7 +13969,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \c__keys_code_root_str \l__keys_module_str / unknown } { \__keys_execute:no { \l__keys_module_str / unknown } \l_keys_value_tl } { - \msg_error:nnxx { keys } { unknown } + \msg_error:nnee { keys } { unknown } \l_keys_path_str \l__keys_module_str } } @@ -13849,7 +13988,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_quark_if_no_value:NTF \l__keys_relative_tl { - \clist_put_right:Nx \l__keys_unused_clist + \clist_put_right:Ne \l__keys_unused_clist { \l_keys_key_str \bool_if:NF \l__keys_no_value_bool @@ -13859,7 +13998,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_empty:NTF \l__keys_relative_tl { - \clist_put_right:Nx \l__keys_unused_clist + \clist_put_right:Ne \l__keys_unused_clist { \l_keys_path_str \bool_if:NF \l__keys_no_value_bool @@ -13871,30 +14010,30 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__keys_store_unused_aux: { - \__kernel_tl_set:Nx \l__keys_relative_tl + \__kernel_tl_set:Ne \l__keys_relative_tl { \exp_args:No \__keys_trim_spaces:n \l__keys_relative_tl } - \use:x + \use:e { \cs_set_protected:Npn \__keys_store_unused:w - ####1 \l__keys_relative_tl / - ####2 \l__keys_relative_tl / - ####3 \s__keys_stop + ##1 \l__keys_relative_tl / + ##2 \l__keys_relative_tl / + ##3 \s__keys_stop } { \tl_if_blank:nF {##1} { - \msg_error:nnxx { keys } { bad-relative-key-path } + \msg_error:nnee { keys } { bad-relative-key-path } \l_keys_path_str \l__keys_relative_tl } - \clist_put_right:Nx \l__keys_unused_clist + \clist_put_right:Ne \l__keys_unused_clist { \exp_not:n {##2} \bool_if:NF \l__keys_no_value_bool { = { \exp_not:o \l_keys_value_tl } } } } - \use:x + \use:e { \__keys_store_unused:w \l_keys_path_str \l__keys_relative_tl / \l__keys_relative_tl / @@ -13989,9 +14128,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prg_return_false: } } \cs_new_protected:Npn \keys_show:nn - { \__keys_show:Nnn \msg_show:nnxxxx } + { \__keys_show:Nnn \msg_show:nneeee } \cs_new_protected:Npn \keys_log:nn - { \__keys_show:Nnn \msg_log:nnxxxx } + { \__keys_show:Nnn \msg_log:nneeee } \cs_new_protected:Npn \__keys_show:Nnn #1#2#3 { #1 { keys } { show-key } @@ -14014,7 +14153,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { } { } } -\cs_new:Npx \__keys_show:n #1 +\cs_new:Npe \__keys_show:n #1 { \exp_not:N \__keys_show:w #1 @@ -14023,21 +14162,21 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_to_str:n { \__keys_precompile:n } \exp_not:N \s__keys_stop } -\use:x +\use:e { \cs_new:Npn \exp_not:N \__keys_show:w - ##1 \tl_to_str:n { \__keys_precompile:n } - ##2 \tl_to_str:n { \__keys_precompile:n } - ##3 \exp_not:N \s__keys_stop + #1 \tl_to_str:n { \__keys_precompile:n } + #2 \tl_to_str:n { \__keys_precompile:n } + #3 \exp_not:N \s__keys_stop } { \tl_if_blank:nTF {#2} {#1} { \__keys_show:Nw #2 \s__keys_stop } } -\use:x +\use:e { - \cs_new:Npn \exp_not:N \__keys_show:Nw ##1##2 + \cs_new:Npn \exp_not:N \__keys_show:Nw #1#2 \c_right_brace_str \exp_not:N \s__keys_stop } {#2} @@ -14086,6 +14225,22 @@ Type H <return> for immediate help}\def~{\errmessage{% } \prop_gput:Nnn \g_msg_module_name_prop { keys } { LaTeX } \prop_gput:Nnn \g_msg_module_type_prop { keys } { } +\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:N } #1 + { \__keys_variable_set:NnnN #1 { str } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:c } #1 + { \__keys_variable_set:cnnN {#1} { str } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:N } #1 + { \__keys_variable_set:NnnN #1 { str } { g } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:c } #1 + { \__keys_variable_set:cnnN {#1} { str } { g } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:N } #1 + { \__keys_variable_set:NnnN #1 { tl } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:c } #1 + { \__keys_variable_set:cnnN {#1} { tl } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_x:N } #1 + { \__keys_variable_set:NnnN #1 { tl } { g } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_x:c } #1 + { \__keys_variable_set:cnnN {#1} { tl } { g } x } %% File: l3intarray.dtx \msg_new:nnn { kernel } { negative-array-size } { Size~of~array~may~not~be~negative:~#1 } @@ -14098,7 +14253,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__kernel_chk_if_free_cs:N #1 \int_gincr:N \g__intarray_table_int - \cs_gset_nopar:Npx #1 { \__intarray:w \int_use:N \g__intarray_table_int \c_space_tl } + \cs_gset_nopar:Npe #1 { \__intarray:w \int_use:N \g__intarray_table_int \c_space_tl } } \cs_new_protected:Npn \intarray_new:Nn #1#2 { @@ -14106,7 +14261,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__intarray_gset_count:Nw #1 \int_eval:n {#2} \scan_stop: \int_compare:nNnT { \intarray_count:N #1 } < 0 { - \msg_error:nnx { kernel } { negative-array-size } + \msg_error:nne { kernel } { negative-array-size } { \intarray_count:N #1 } } } @@ -14118,7 +14273,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__intarray_gset:wF \int_eval:n {#2} #1 \int_eval:n{#3} { - \msg_error:nnxxx { kernel } { out-of-bounds } + \msg_error:nneee { kernel } { out-of-bounds } { \token_to_str:N #1 } { \int_use:N \l__intarray_bad_index_int } { \intarray_count:N #1 } } } @@ -14182,7 +14337,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__intarray_count:w #1 = \int_eval:n {#2} \scan_stop: \int_compare:nNnT { \intarray_count:N #1 } < 0 { - \msg_error:nnx { kernel } { negative-array-size } + \msg_error:nne { kernel } { negative-array-size } { \intarray_count:N #1 } } \int_compare:nNnT { \intarray_count:N #1 } > 0 @@ -14223,7 +14378,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \intarray_gset:Nnn { c } \cs_new_protected:Npn \__intarray_gset:Nww #1#2 ; #3 ; { - \__intarray_bounds:NNnTF \msg_error:nnxxx #1 {#2} + \__intarray_bounds:NNnTF \msg_error:nneee #1 {#2} { \__intarray_gset_overflow_test:nw {#3} \__kernel_intarray_gset:Nnn #1 {#2} {#3} @@ -14249,7 +14404,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__intarray_gset_overflow:NNnn #1#2#3#4 { - \msg_error:nnxxxx { kernel } { overflow } + \msg_error:nneeee { kernel } { overflow } { \token_to_str:N #2 } {#3} {#4} { \__intarray_signed_max_dim:n {#4} } #1 #2 {#3} { \__intarray_signed_max_dim:n {#4} } } @@ -14347,9 +14502,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__intarray_gset_range:Nw #1 } } -\cs_new_protected:Npn \intarray_show:N { \__intarray_show:NN \msg_show:nnxxxx } +\cs_new_protected:Npn \intarray_show:N { \__intarray_show:NN \msg_show:nneeee } \cs_generate_variant:Nn \intarray_show:N { c } -\cs_new_protected:Npn \intarray_log:N { \__intarray_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \intarray_log:N { \__intarray_show:NN \msg_log:nneeee } \cs_generate_variant:Nn \intarray_log:N { c } \cs_new_protected:Npn \__intarray_show:NN #1#2 { @@ -14378,7 +14533,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__fp_use_i:ww #1; #2; { #1; } \cs_new:Npn \__fp_use_i:www #1; #2; #3; { #1; } \cs_new_protected:Npn \__fp_misused:n #1 - { \msg_error:nnx { fp } { misused } { \fp_to_tl:n {#1} } } + { \msg_error:nne { fp } { misused } { \fp_to_tl:n {#1} } } \scan_new:N \s__fp \cs_new_protected:Npn \__fp_chk:w #1 ; { \__fp_misused:n { \s__fp \__fp_chk:w #1 ; } } @@ -14404,7 +14559,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_const:Nn \c__fp_minus_min_exponent_int { 10000 } \int_const:Nn \c__fp_max_exponent_int { 10000 } \int_const:Nn \c__fp_max_exp_exponent_int { 5 } -\tl_const:Nx \c__fp_overflowing_fp +\tl_const:Ne \c__fp_overflowing_fp { \s__fp \__fp_chk:w 1 0 { \int_eval:n { \c__fp_max_exponent_int + 1 } } @@ -14526,7 +14681,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp { \__fp_type_from_scan_other:N #1 } \s__fp_stop } -\cs_new:Npx \__fp_type_from_scan_other:N #1 +\cs_new:Npe \__fp_type_from_scan_other:N #1 { \exp_not:N \exp_after:wN \exp_not:N \__fp_type_from_scan:w \exp_not:N \token_to_str:N #1 \s__fp_mark @@ -14770,11 +14925,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { invalid_operation , division_by_zero , overflow , underflow } {#1} { - \msg_error:nnxx { fp } + \msg_error:nnee { fp } { unknown-fpu-trap-type } {#1} {#2} } { - \msg_error:nnx + \msg_error:nne { fp } { unknown-fpu-exception } {#1} } } @@ -15344,7 +15499,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__fp_parse_exponent:N \exp:w \__fp_parse_expand:w } -\cs_new:Npx \__fp_parse_one_register_aux:Nw #1 +\cs_new:Npe \__fp_parse_one_register_aux:Nw #1 { \exp_not:n { @@ -15928,7 +16083,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \__fp_parse_expand:w } -\cs_new:Npx \__fp_parse_lparen_after:NwN #1#2 @ #3 +\cs_new:Npe \__fp_parse_lparen_after:NwN #1#2 @ #3 { \exp_not:N \token_if_eq_meaning:NNTF #3 \exp_not:c { __fp_parse_infix_):N } @@ -16574,11 +16729,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_new_eq:NN #1 \c_zero_fp } \cs_generate_variant:Nn \fp_new:N {c} \cs_new_protected:Npn \fp_set:Nn #1#2 - { \__kernel_tl_set:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } + { \__kernel_tl_set:Ne #1 { \exp_not:f { \__fp_parse:n {#2} } } } \cs_new_protected:Npn \fp_gset:Nn #1#2 - { \__kernel_tl_gset:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } + { \__kernel_tl_gset:Ne #1 { \exp_not:f { \__fp_parse:n {#2} } } } \cs_new_protected:Npn \fp_const:Nn #1#2 - { \tl_const:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } + { \tl_const:Ne #1 { \exp_not:f { \__fp_parse:n {#2} } } } \cs_generate_variant:Nn \fp_set:Nn {c} \cs_generate_variant:Nn \fp_gset:Nn {c} \cs_generate_variant:Nn \fp_const:Nn {c} @@ -16620,7 +16775,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \s__fp \__fp_chk:w ??? ; \s__fp_stop } } - { \exp_args:Nx #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } } + { \exp_args:Ne #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } } } \cs_new:Npn \__fp_show_validate:w #1 \s__fp \__fp_chk:w #2#3#4#5 ; #6 \s__fp_stop @@ -16909,7 +17064,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_gincr:N \g__kernel_prg_map_int \exp_args:NNc \__fp_step:NNnnnn - \cs_gset_protected:Npx + \cs_gset_protected:Npe { __fp_map_ \int_use:N \g__kernel_prg_map_int :w } {#1} {#2} {#3} { @@ -17066,7 +17221,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__fp_parse_unary_function:NNN \__fp_sign_o:w ? } \cs_new:Npn \__fp_parse_word_sqrt:N { \__fp_parse_unary_function:NNN \__fp_sqrt_o:w ? } -\cs_new:cpx { __fp_-_o:ww } \s__fp +\cs_new:cpe { __fp_-_o:ww } \s__fp { \exp_not:c { __fp_+_o:ww } \exp_not:n { \s__fp \__fp_neg_sign:N } @@ -17566,11 +17721,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { + 5 * #1 \exp_after:wN \__fp_div_significand_vi:Nw - \int_value:w \__fp_int_eval:w -20 + 2*#2#3 - #1*#6#7 + + \int_value:w \__fp_int_eval:w -50 + 2*#2#3 - #1*#6#7 + \exp_after:wN \__fp_div_significand_v:NN - \int_value:w \__fp_int_eval:w 199980 + 2*#4 - #1*#8 + + \int_value:w \__fp_int_eval:w 499950 + 2*#4 - #1*#8 + \exp_after:wN \__fp_div_significand_v:NN - \int_value:w \__fp_int_eval:w 200000 + 2*#5 - #1*#9 ; + \int_value:w \__fp_int_eval:w 500000 + 2*#5 - #1*#9 ; } \cs_new:Npn \__fp_div_significand_v:NN #1#2 { #1#2 \__fp_int_eval_end: + } \cs_new:Npn \__fp_div_significand_vi:Nw #1#2; @@ -19069,13 +19224,13 @@ Type H <return> for immediate help}\def~{\errmessage{% {cos} {cot} {csc} {sec} {sin} {tan} } { - \cs_new:cpx { __fp_parse_word_#1:N } + \cs_new:cpe { __fp_parse_word_#1:N } { \exp_not:N \__fp_parse_unary_function:NNN \exp_not:c { __fp_#1_o:w } \exp_not:N \use_i:nn } - \cs_new:cpx { __fp_parse_word_#1d:N } + \cs_new:cpe { __fp_parse_word_#1d:N } { \exp_not:N \__fp_parse_unary_function:NNN \exp_not:c { __fp_#1_o:w } @@ -19687,7 +19842,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 { acot } { acotd } } { \__fp_atan_default:w \__fp_acotii_o:Nww #1 } } -\cs_new:Npx \__fp_atan_default:w #1#2#3 @ { #1 #2 #3 \c_one_fp @ } +\cs_new:Npe \__fp_atan_default:w #1#2#3 @ { #1 #2 #3 \c_one_fp @ } \cs_new:Npn \__fp_atanii_o:Nww #1 \s__fp \__fp_chk:w #2#3#4; \s__fp \__fp_chk:w #5 #6 @ { @@ -20576,7 +20731,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \fparray_gset:Nnn { c } \cs_new_protected:Npn \__fp_array_gset:NNNNww #1#2#3#4#5 ; #6 ; { - \__fp_array_bounds:NNnTF \msg_error:nnxxx #4 {#5} + \__fp_array_bounds:NNnTF \msg_error:nneee #4 {#5} { \exp_after:wN \__fp_change_func_type:NNN \__fp_use_i_until_s:nw #6 ; @@ -20837,7 +20992,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \seq_gpop:NNF \g__cctab_unused_seq \l__cctab_internal_a_tl { \__cctab_begin_aux: } - \exp_args:Nx \__cctab_chk_group_begin:n + \__cctab_chk_group_begin:e { \__cctab_nesting_number:N \l__cctab_internal_a_tl } \seq_gpush:NV \g__cctab_stack_seq \l__cctab_internal_a_tl \exp_args:NV \__cctab_gset:n \l__cctab_internal_a_tl @@ -20850,7 +21005,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \seq_gpop:NNTF \g__cctab_stack_seq \l__cctab_internal_a_tl { \seq_gpush:NV \g__cctab_unused_seq \l__cctab_internal_a_tl - \exp_args:Nx \__cctab_chk_group_end:n + \exp_args:Ne \__cctab_chk_group_end:n { \__cctab_nesting_number:N \l__cctab_internal_a_tl } \__cctab_select:N \l__cctab_internal_a_tl } @@ -20858,10 +21013,11 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__cctab_chk_group_begin:n #1 { - \seq_gpush:Nx \g__cctab_group_seq + \seq_gpush:Ne \g__cctab_group_seq { \int_use:N \tex_currentgrouplevel:D } \cs_set_eq:cN { __cctab_group_ #1 _chk: } \prg_do_nothing: } +\cs_generate_variant:Nn \__cctab_chk_group_begin:n { e } \cs_new_protected:Npn \__cctab_chk_group_end:n #1 { \seq_gpop:NN \g__cctab_group_seq \l__cctab_internal_b_tl @@ -20872,7 +21028,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \cs_if_exist_p:c { __cctab_group_ #1 _chk: } } { - \msg_error:nnx { cctab } { group-mismatch } + \msg_error:nne { cctab } { group-mismatch } { \int_sign:n { \tex_currentgrouplevel:D - \l__cctab_internal_b_tl } @@ -20888,10 +21044,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \exp_after:wN \exp_after:wN \__cctab_nesting_number:w \exp_after:wN \token_to_str:N #1 } - \use:x + \use:e { \cs_new:Npn \exp_not:N \__cctab_nesting_number:w - ##1 \tl_to_str:n { g__cctab_ } ##2 \tl_to_str:n { _cctab } {##2} + #1 \tl_to_str:n { g__cctab_ } #2 \tl_to_str:n { _cctab } {#2} } } \cs_if_exist:NT \hook_gput_code:nnn @@ -20930,13 +21086,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \__cctab_chk_if_valid_aux:NTF #1 { \prg_return_true: } { - \msg_error:nnx { cctab } { invalid-cctab } + \msg_error:nne { cctab } { invalid-cctab } { \token_to_str:N #1 } \prg_return_false: } } { - \msg_error:nnx { kernel } { command-not-defined } + \msg_error:nne { kernel } { command-not-defined } { \token_to_str:N #1 } \prg_return_false: } @@ -21191,7 +21347,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \group_begin: \__sort_main:NNNn \tl_map_inline:Nn \tl_map_break:n #2 {#3} - \__kernel_tl_gset:Nx \g__sort_internal_tl + \__kernel_tl_gset:Ne \g__sort_internal_tl { \__sort_tl_toks:w \l__sort_min_int ; } \group_end: #1 #2 \g__sort_internal_tl @@ -21232,7 +21388,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_step_inline:nnn \l__sort_min_int { \l__sort_top_int - 1 } { - \seq_gput_right:Nx \g__sort_internal_seq + \seq_gput_right:Ne \g__sort_internal_seq { \tex_the:D \tex_toks:D ##1 } } \group_end: @@ -21313,14 +21469,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__sort_return_mark:w #1 \s__sort_mark { } \cs_new_protected:Npn \__sort_return_none_error: { - \msg_error:nnxx { sort } { return-none } + \msg_error:nnee { sort } { return-none } { \tex_the:D \tex_toks:D \l__sort_A_int } { \tex_the:D \tex_toks:D \l__sort_C_int } \__sort_return_same:w \__sort_return_none_error: } \cs_new_protected:Npn \__sort_return_two_error: { - \msg_error:nnxx { sort } { return-two } + \msg_error:nnee { sort } { return-two } { \tex_the:D \tex_toks:D \l__sort_A_int } { \tex_the:D \tex_toks:D \l__sort_C_int } } @@ -21450,7 +21606,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_set_eq:NN \toksdef \__sort_disabled_toksdef:n } \cs_new_protected:Npn \__sort_disabled_toksdef:n #1 { - \msg_error:nnx { sort } { toksdef } + \msg_error:nne { sort } { toksdef } { \token_to_str:N #1 } \__sort_error: \tex_toksdef:D #1 @@ -21466,7 +21622,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__sort_too_long_error:NNw #1#2 \fi: { \fi: - \msg_error:nnxxx { sort } { too-large } + \msg_error:nneee { sort } { too-large } { \token_to_str:N #2 } { \int_eval:n { \l__sort_true_max_int - \l__sort_min_int } } { \int_eval:n { \l__sort_top_int - \l__sort_min_int } } @@ -21588,12 +21744,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \group_begin: - \__kernel_tl_set:Nx \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } + \__kernel_tl_set:Ne \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } \tl_map_inline:Nn \l__str_internal_tl { \tl_map_inline:Nn \l__str_internal_tl { - \tl_const:cx { c__str_byte_ \int_eval:n {"#1##1} _tl } + \tl_const:ce { c__str_byte_ \int_eval:n {"#1##1} _tl } { \char_generate:nn { "#1##1 } { 12 } #1 ##1 } } } @@ -21633,7 +21789,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__str_convert_gmap:N #1 { - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN \__str_convert_gmap_loop:NN \exp_after:wN #1 @@ -21649,7 +21805,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__str_convert_gmap_internal:N #1 { - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN \__str_convert_gmap_internal_loop:Nww \exp_after:wN #1 @@ -21663,13 +21819,13 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 {#3} \__str_convert_gmap_internal_loop:Nww #1 } -\cs_new_protected:Npn \__str_if_flag_error:nnx #1 +\cs_new_protected:Npn \__str_if_flag_error:nne #1 { \flag_if_raised:nTF {#1} - { \msg_error:nnx { str } } + { \msg_error:nne { str } } { \use_none:nn } } -\cs_new_protected:Npn \__str_if_flag_no_error:nnx #1#2#3 +\cs_new_protected:Npn \__str_if_flag_no_error:nne #1#2#3 { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } } \cs_new:Npn \__str_if_flag_times:nT #1#2 { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } } @@ -21682,7 +21838,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_gset_false:N \g__str_error_bool \__str_convert:nNNnnn - { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx } + { \cs_set_eq:NN \__str_if_flag_error:nne \__str_if_flag_no_error:nne } \tl_set_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true: } @@ -21691,7 +21847,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_gset_false:N \g__str_error_bool \__str_convert:nNNnnn - { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx } + { \cs_set_eq:NN \__str_if_flag_error:nne \__str_if_flag_no_error:nne } \tl_gset_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true: } @@ -21699,7 +21855,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \group_begin: #1 - \__kernel_tl_gset:Nx \g__str_result_tl { \__kernel_str_to_other_fast:n {#4} } + \__kernel_tl_gset:Ne \g__str_result_tl { \__kernel_str_to_other_fast:n {#4} } \exp_after:wN \__str_convert:wwwnn \tl_to_str:n {#5} /// \s__str_stop { decode } { unescape } @@ -21725,7 +21881,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \if_meaning:w #1 #5 \tl_if_empty:nF {#3} - { \msg_error:nnx { str } { native-escaping } {#3} } + { \msg_error:nne { str } { native-escaping } {#3} } #1 \else: #4 #2 #1 @@ -21735,7 +21891,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_if_exist:cF { __str_convert_#2_#3: } { - \exp_args:Nx \__str_convert:nnnn + \exp_args:Ne \__str_convert:nnnn { \__str_convert_lowercase_alphanum:n {#3} } {#1} {#2} {#3} } @@ -21757,7 +21913,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \tl_clear:N \l__str_internal_tl - \msg_error:nnxx { str } { unknown-#2 } {#4} {#1} + \msg_error:nnee { str } { unknown-#2 } {#4} {#1} } } \cs_if_exist:cF { __str_convert_#3_#1: } @@ -21827,9 +21983,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__str_convert_unescape_: { \flag_clear:n { str_byte } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_args:No \__str_filter_bytes:n \g__str_result_tl } - \__str_if_flag_error:nnx { str_byte } { non-byte } { bytes } + \__str_if_flag_error:nne { str_byte } { non-byte } { bytes } } } { \cs_new_protected:Npn \__str_convert_unescape_: { } } @@ -21856,7 +22012,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \flag_clear:n { str_error } \__str_convert_gmap_internal:N \__str_encode_native_char:n - \__str_if_flag_error:nnx { str_error } + \__str_if_flag_error:nne { str_error } { native-overflow } { } } \cs_new:Npn \__str_encode_native_char:n #1 @@ -21879,7 +22035,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__str_convert_decode_clist: { \clist_gset:No \g__str_result_tl \g__str_result_tl - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_args:No \clist_map_function:nN \g__str_result_tl \__str_decode_clist_char:n @@ -21890,7 +22046,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__str_convert_encode_clist: { \__str_convert_gmap_internal:N \__str_encode_clist_char:n - \__kernel_tl_gset:Nx \g__str_result_tl { \tl_tail:N \g__str_result_tl } + \__kernel_tl_gset:Ne \g__str_result_tl { \tl_tail:N \g__str_result_tl } } \cs_new:Npn \__str_encode_clist_char:n #1 { , #1 } \cs_new_protected:Npn \__str_declare_eight_bit_encoding:nnnn #1 @@ -21943,14 +22099,14 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__str_convert_decode_eight_bit:n #1 { - \cs_set:Npx \__str_tmp:w + \cs_set:Npe \__str_tmp:w { \exp_not:N \__str_decode_eight_bit_aux:Nn \exp_not:c { g__str_decode_#1_intarray } } \flag_clear:n { str_error } \__str_convert_gmap:N \__str_tmp:w - \__str_if_flag_error:nnx { str_error } { decode-8-bit } {#1} + \__str_if_flag_error:nne { str_error } { decode-8-bit } {#1} } \cs_new:Npn \__str_decode_eight_bit_aux:Nn #1#2 { @@ -21971,7 +22127,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_new:N \l__str_modulo_int \cs_new_protected:Npn \__str_convert_encode_eight_bit:n #1 { - \cs_set:Npx \__str_tmp:w + \cs_set:Npe \__str_tmp:w { \exp_not:N \__str_encode_eight_bit_aux:NNn \exp_not:c { g__str_encode_#1_intarray } @@ -21979,7 +22135,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \flag_clear:n { str_error } \__str_convert_gmap_internal:N \__str_tmp:w - \__str_if_flag_error:nnx { str_error } { encode-8-bit } {#1} + \__str_if_flag_error:nne { str_error } { encode-8-bit } {#1} } \cs_new:Npn \__str_encode_eight_bit_aux:NNn #1#2#3 { @@ -22048,7 +22204,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \flag_clear:n { str_error } \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \__str_output_byte:w " \exp_last_unbraced:Nf \__str_unescape_hex_auxi:N @@ -22057,7 +22213,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_break_point: \__str_output_end: } - \__str_if_flag_error:nnx { str_error } { unescape-hex } { } + \__str_if_flag_error:nne { str_error } { unescape-hex } { } \group_end: } \cs_new:Npn \__str_unescape_hex_auxi:N #1 @@ -22097,14 +22253,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \flag_clear:n { str_byte } \flag_clear:n { str_error } \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN #3 \g__str_result_tl #1 ? { ? \prg_break: } \prg_break_point: } - \__str_if_flag_error:nnx { str_byte } { non-byte } { #2 } - \__str_if_flag_error:nnx { str_error } { unescape-#2 } { } + \__str_if_flag_error:nne { str_byte } { non-byte } { #2 } + \__str_if_flag_error:nne { str_error } { unescape-#2 } { } \group_end: } \cs_new:Npn #3 ##1#1##2##3 @@ -22150,20 +22306,20 @@ Type H <return> for immediate help}\def~{\errmessage{% \flag_clear:n { str_byte } \flag_clear:n { str_error } \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN \__str_unescape_string_newlines:wN \g__str_result_tl \prg_break: ^^M ? \prg_break_point: } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN \__str_unescape_string_loop:wNNN \g__str_result_tl #1 ?? { ? \prg_break: } \prg_break_point: } - \__str_if_flag_error:nnx { str_byte } { non-byte } { string } - \__str_if_flag_error:nnx { str_error } { unescape-string } { } + \__str_if_flag_error:nne { str_byte } { non-byte } { string } + \__str_if_flag_error:nne { str_error } { unescape-string } { } \group_end: } } @@ -22254,7 +22410,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \fi: } -\str_const:Nx \c__str_escape_string_str +\str_const:Ne \c__str_escape_string_str { \c_backslash_str ( ) } \cs_new_protected:Npn \__str_convert_escape_string: { \__str_convert_gmap:N \__str_escape_string_char:N } @@ -22389,13 +22545,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \flag_clear:n { str_extra } \flag_clear:n { str_overlong } \flag_clear:n { str_overflow } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN \__str_decode_utf_viii_start:N \g__str_result_tl { \prg_break: \__str_decode_utf_viii_end: } \prg_break_point: } - \__str_if_flag_error:nnx { str_error } { utf8-decode } { } + \__str_if_flag_error:nne { str_error } { utf8-decode } { } } \cs_new:Npn \__str_decode_utf_viii_start:N #1 { @@ -22481,7 +22637,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:cpn { __str_convert_encode_utf16: } { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n - \tl_gput_left:Nx \g__str_result_tl { ^^fe ^^ff } + \tl_gput_left:Ne \g__str_result_tl { ^^fe ^^ff } } \cs_new_protected:cpn { __str_convert_encode_utf16be: } { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_be:n } @@ -22492,7 +22648,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \flag_clear:n { str_error } \cs_set_eq:NN \__str_tmp:w #1 \__str_convert_gmap_internal:N \__str_encode_utf_xvi_char:n - \__str_if_flag_error:nnx { str_error } { utf16-encode } { } + \__str_if_flag_error:nne { str_error } { utf16-encode } { } } \cs_new:Npn \__str_encode_utf_xvi_char:n #1 { @@ -22589,13 +22745,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \flag_clear:n { str_extra } \flag_clear:n { str_end } \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN \__str_decode_utf_xvi_pair:NN #2 \q__str_nil \q__str_nil \prg_break_point: } - \__str_if_flag_error:nnx { str_error } { utf16-decode } { } + \__str_if_flag_error:nne { str_error } { utf16-decode } { } } \cs_new:Npn \__str_decode_utf_xvi_pair:NN #1#2 { @@ -22664,7 +22820,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:cpn { __str_convert_encode_utf32: } { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n - \tl_gput_left:Nx \g__str_result_tl { ^^00 ^^00 ^^fe ^^ff } + \tl_gput_left:Ne \g__str_result_tl { ^^00 ^^00 ^^fe ^^ff } } \cs_new_protected:cpn { __str_convert_encode_utf32be: } { \__str_convert_gmap_internal:N \__str_encode_utf_xxxii_be:n } @@ -22746,13 +22902,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \flag_clear:n { str_end } \flag_clear:n { str_error } \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Nx \g__str_result_tl + \__kernel_tl_gset:Ne \g__str_result_tl { \exp_after:wN \__str_decode_utf_xxxii_loop:NNNN #2 \s__str_stop \s__str_stop \s__str_stop \s__str_stop \prg_break_point: } - \__str_if_flag_error:nnx { str_error } { utf32-decode } { } + \__str_if_flag_error:nne { str_error } { utf32-decode } { } } \cs_new:Npn \__str_decode_utf_xxxii_loop:NNNN #1#2#3#4 { @@ -22811,7 +22967,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__str_convert_pdfname_bytes_aux:n #1 { \__str_convert_pdfname_bytes_aux:nnnn #1 } - \cs_new:Npx \__str_convert_pdfname_bytes_aux:nnnn #1#2#3#4 + \cs_new:Npe \__str_convert_pdfname_bytes_aux:nnnn #1#2#3#4 { \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#1} \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#2} @@ -22834,7 +22990,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \l__tl_peek_code_tl \group_begin: \char_set_active_eq:NN \ \scan_stop: -\tl_const:Nx \c__tl_peek_catcodes_tl +\tl_const:Ne \c__tl_peek_catcodes_tl { \char_generate:nn { 32 } { 3 } 3 \char_generate:nn { 32 } { 4 } 4 @@ -23042,7 +23198,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__tl_analysis_b:n #1 { - \__kernel_tl_gset:Nx \g__tl_analysis_result_tl + \__kernel_tl_gset:Ne \g__tl_analysis_result_tl { \__tl_analysis_b_loop:w 0; #1 \prg_break_point: @@ -23074,7 +23230,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: #3 #1; #2; } -\cs_new:Npx \__tl_analysis_b_char:Nn #1#2 +\cs_new:Npe \__tl_analysis_b_char:Nn #1#2 { \exp_not:N \if_meaning:w #2 \exp_not:N \tex_undefined:D \token_to_str:N D \exp_not:N \else: @@ -23180,9 +23336,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__tl_analysis_map:NwNw #1 } \cs_new_protected:Npn \tl_analysis_show:N - { \__tl_analysis_show:NNN \msg_show:nnxxxx \tl_show:N } + { \__tl_analysis_show:NNN \msg_show:nneeee \tl_show:N } \cs_new_protected:Npn \tl_analysis_log:N - { \__tl_analysis_show:NNN \msg_log:nnxxxx \tl_log:N } + { \__tl_analysis_show:NNN \msg_log:nneeee \tl_log:N } \cs_new_protected:Npn \__tl_analysis_show:NNN #1#2#3 { \tl_if_exist:NTF #3 @@ -23194,9 +23350,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { #2 #3 } } \cs_new_protected:Npn \tl_analysis_show:n - { \__tl_analysis_show:Nn \msg_show:nnxxxx } + { \__tl_analysis_show:Nn \msg_show:nneeee } \cs_new_protected:Npn \tl_analysis_log:n - { \__tl_analysis_show:Nn \msg_log:nnxxxx } + { \__tl_analysis_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \__tl_analysis_show:Nn #1#2 { \__tl_analysis:n {#2} @@ -23304,7 +23460,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__tl_peek_analysis_loop:NNn #1#2#3 { \group_begin: - \tl_set:Nx \l__tl_peek_code_tl + \tl_set:Ne \l__tl_peek_code_tl { \exp_not:c { __tl_analysis_map_ \int_use:N \g__kernel_prg_map_int :nnN } @@ -23333,7 +23489,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__tl_peek_analysis_exp:N #1 { - \cs_set_nopar:Npx \l__tl_peek_code_tl + \cs_set_nopar:Npe \l__tl_peek_code_tl { \tex_let:D \exp_not:N #1 \scan_stop: \exp_not:o \l__tl_peek_code_tl @@ -23355,7 +23511,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \l__tl_peek_code_tl } -\cs_new:Npx \__tl_peek_analysis_exp_active:N #1 +\cs_new:Npe \__tl_peek_analysis_exp_active:N #1 { { \exp_not:N \int_value:w `#1 } \token_to_str:N D } \cs_new_protected:Npn \__tl_peek_analysis_nonexp:N #1 { @@ -23373,7 +23529,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \l__tl_peek_code_tl { \exp_not:n {#1} } { -1 } 0 } \group_begin: \char_set_active_eq:NN \ \scan_stop: -\cs_new_protected:Npx \__tl_peek_analysis_char:N #1 +\cs_new_protected:Npe \__tl_peek_analysis_char:N #1 { \cs_set_eq:NN \char_generate:nn { 32 } { 13 } @@ -23381,7 +23537,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tex_lccode:D `#1 = 32 \exp_stop_f: \tex_lowercase:D { - \tl_put_right:Nx \exp_not:N \l__tl_peek_code_tl + \tl_put_right:Ne \exp_not:N \l__tl_peek_code_tl { \exp_not:n { \__tl_analysis_b_char:Nn \use_none:n } {#1} } } \exp_not:n @@ -23460,7 +23616,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__tl_peek_analysis_active_str:n #1 { - \tl_put_right:Nx \l__tl_peek_code_tl + \tl_put_right:Ne \l__tl_peek_code_tl { { \char_generate:nn { `#1 } { 13 } } { \int_value:w `#1 } @@ -23470,7 +23626,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__tl_peek_analysis_explicit:n #1 { - \tl_put_right:Nx \l__tl_peek_code_tl + \tl_put_right:Ne \l__tl_peek_code_tl { \if_meaning:w \l_peek_token \c_space_token { ~ } { 32 } \token_to_str:N A @@ -23529,7 +23685,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__tl_peek_analysis_collect_end:NNN #1#2#3 { #1 #2 - \tl_put_right:Nx \l__tl_peek_code_tl + \tl_put_right:Ne \l__tl_peek_code_tl { { \exp_not:N \exp_not:n { \exp_not:c { \l__tl_internal_a_tl } } } { -1 } @@ -23537,7 +23693,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \l__tl_peek_code_tl } -\tl_const:Nx \c__tl_analysis_show_etc_str % ( +\tl_const:Ne \c__tl_analysis_show_etc_str % ( { \token_to_str:N \ETC.) } \msg_new:nnn { tl } { show-analysis } { @@ -23565,15 +23721,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_incr:N #2 } } -\cs_new_protected:Npn \__regex_toks_put_left:Nx #1#2 +\cs_new_protected:Npn \__regex_toks_put_left:Ne #1#2 { - \cs_set_nopar:Npx \__regex_tmp:w { #2 } + \cs_set_nopar:Npe \__regex_tmp:w { #2 } \tex_toks:D #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \__regex_tmp:w \tex_the:D \tex_toks:D #1 } } -\cs_new_protected:Npn \__regex_toks_put_right:Nx #1#2 +\cs_new_protected:Npn \__regex_toks_put_right:Ne #1#2 { - \cs_set_nopar:Npx \__regex_tmp:w {#2} + \cs_set_nopar:Npe \__regex_tmp:w {#2} \tex_toks:D #1 \exp_after:wN { \tex_the:D \tex_toks:D \exp_after:wN #1 \__regex_tmp:w } } @@ -23736,7 +23892,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_compare:nNnTF \l__regex_curr_catcode_int = 0 { - \__kernel_tl_set:Nx \l__regex_internal_a_tl + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \scan_stop: \__regex_curr_cs_to_str: \scan_stop: } \tl_if_in:noTF { \scan_stop: #1 \scan_stop: } \l__regex_internal_a_tl @@ -23754,7 +23910,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_build_for_cs:n {#1} \bool_set_eq:NN \l__regex_saved_success_bool \g__regex_success_bool - \exp_args:Nx \__regex_match_cs:n { \__regex_curr_cs_to_str: } + \exp_args:Ne \__regex_match_cs:n { \__regex_curr_cs_to_str: } \if_meaning:w \c_true_bool \g__regex_success_bool \group_insert_after:N \__regex_break_true:w \fi: @@ -23846,9 +24002,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set:Npn \__regex_escape_escaped:N ##1 { #2 } \cs_set:Npn \__regex_escape_raw:N ##1 { #3 } \__regex_standard_escapechar: - \__kernel_tl_gset:Nx \g__regex_internal_tl + \__kernel_tl_gset:Ne \g__regex_internal_tl { \__kernel_str_to_other_fast:n {#4} } - \tl_put_right:Nx \l__regex_internal_a_tl + \tl_put_right:Ne \l__regex_internal_a_tl { \exp_after:wN \__regex_escape_loop:N \g__regex_internal_tl \scan_stop: \prg_break_point: @@ -23880,17 +24036,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_break: } \cs_new:cpn { __regex_escape_~:w } { } -\cs_new:cpx { __regex_escape_/a:w } +\cs_new:cpe { __regex_escape_/a:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^G } -\cs_new:cpx { __regex_escape_/t:w } +\cs_new:cpe { __regex_escape_/t:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^I } -\cs_new:cpx { __regex_escape_/n:w } +\cs_new:cpe { __regex_escape_/n:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^J } -\cs_new:cpx { __regex_escape_/f:w } +\cs_new:cpe { __regex_escape_/f:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^L } -\cs_new:cpx { __regex_escape_/r:w } +\cs_new:cpe { __regex_escape_/r:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^M } -\cs_new:cpx { __regex_escape_/e:w } +\cs_new:cpe { __regex_escape_/e:w } { \exp_not:N \__regex_escape_raw:N \iow_char:N \^^[ } \cs_new:cpn { __regex_escape_/x:w } \__regex_escape_loop:N { @@ -24185,7 +24341,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { } \if_int_compare:w \l__regex_group_level_int > \c_zero_int - \msg_error:nnx { regex } { missing-rparen } + \msg_error:nne { regex } { missing-rparen } { \int_use:N \l__regex_group_level_int } \prg_replicate:nn { \l__regex_group_level_int } @@ -24204,7 +24360,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \tl_build_put_right:Nn \l__regex_build_tl { \if_false: { \fi: } } \tl_build_end:N \l__regex_build_tl - \exp_args:NNNx + \exp_args:NNNe \group_end: \tl_set:Nn \l__regex_internal_regex { \l__regex_build_tl } } @@ -24269,7 +24425,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_build_put_right:Nn \l__regex_build_tl { \__regex_class:NnnnN \c_true_bool { \if_false: } \fi: } } - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \if_int_compare:w \l__regex_catcodes_int < \c__regex_all_catcodes_int @@ -24284,13 +24440,13 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_compile_abort_tokens:n #1 { - \use:x + \use:e { \exp_args:No \tl_map_function:nN { \tl_to_str:n {#1} } \__regex_compile_raw:N } } -\cs_generate_variant:Nn \__regex_compile_abort_tokens:n { x } +\cs_generate_variant:Nn \__regex_compile_abort_tokens:n { e } \cs_new_protected:Npn \__regex_compile_if_quantifier:TFw #1#2#3#4 { \token_if_eq_meaning:NNTF #3 \__regex_compile_special:N @@ -24312,11 +24468,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_build_put_right:Nn \l__regex_build_tl { \if_false: { \fi: } { 1 } { 0 } \c_false_bool } } -\cs_new_protected:Npn \__regex_compile_quantifier_abort:xNN #1#2#3 +\cs_new_protected:Npn \__regex_compile_quantifier_abort:eNN #1#2#3 { \__regex_compile_quantifier_none: - \msg_warning:nnxx { regex } { invalid-quantifier } {#1} {#3} - \__regex_compile_abort_tokens:x {#1} + \msg_warning:nnee { regex } { invalid-quantifier } {#1} {#3} + \__regex_compile_abort_tokens:e {#1} #2 #3 } \cs_new_protected:Npn \__regex_compile_quantifier_lazyness:nnNN #1#2#3#4 @@ -24342,7 +24498,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_get_digits:NTFw \l__regex_internal_a_int { \__regex_compile_quantifier_braced_auxi:w } - { \__regex_compile_quantifier_abort:xNN { \c_left_brace_str } } + { \__regex_compile_quantifier_abort:eNN { \c_left_brace_str } } } \cs_new_protected:Npn \__regex_compile_quantifier_braced_auxi:w #1#2 { @@ -24361,7 +24517,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } } { - \__regex_compile_quantifier_abort:xNN + \__regex_compile_quantifier_abort:eNN { \c_left_brace_str \int_use:N \l__regex_internal_a_int } #1 #2 } @@ -24374,7 +24530,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_use:N \l__regex_internal_a_int } { -1 } } { - \__regex_compile_quantifier_abort:xNN + \__regex_compile_quantifier_abort:eNN { \c_left_brace_str \int_use:N \l__regex_internal_a_int , } #1 #2 } @@ -24385,7 +24541,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \if_int_compare:w \l__regex_internal_a_int > \l__regex_internal_b_int - \msg_error:nnxx { regex } { backwards-quantifier } + \msg_error:nnee { regex } { backwards-quantifier } { \int_use:N \l__regex_internal_a_int } { \int_use:N \l__regex_internal_b_int } \int_zero:N \l__regex_internal_b_int @@ -24397,7 +24553,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_use:N \l__regex_internal_b_int } } { - \__regex_compile_quantifier_abort:xNN + \__regex_compile_quantifier_abort:eNN { \c_left_brace_str \int_use:N \l__regex_internal_a_int , @@ -24408,7 +24564,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_compile_raw_error:N #1 { - \msg_error:nnx { regex } { bad-escape } {#1} + \msg_error:nne { regex } { bad-escape } {#1} \__regex_compile_raw:N #1 } \cs_new_protected:Npn \__regex_compile_raw:N #1#2#3 @@ -24450,9 +24606,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_if_end_range:NNTF #2 #3 { \if_int_compare:w `#1 > `#3 \exp_stop_f: - \msg_error:nnxx { regex } { range-backwards } {#1} {#3} + \msg_error:nnee { regex } { range-backwards } {#1} {#3} \else: - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \if_int_compare:w `#1 = `#3 \exp_stop_f: \__regex_item_equal:n @@ -24464,9 +24620,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } { - \msg_warning:nnxx { regex } { range-missing-end } + \msg_warning:nnee { regex } { range-missing-end } {#1} { \c_backslash_str #3 } - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \__regex_item_equal:n { \int_value:w `#1 \exp_stop_f: } \__regex_item_equal:n { \int_value:w `- \exp_stop_f: } @@ -24474,7 +24630,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #2#3 } } -\cs_new_protected:cpx { __regex_compile_.: } +\cs_new_protected:cpe { __regex_compile_.: } { \exp_not:N \__regex_if_in_class:TF { \__regex_compile_raw:N . } @@ -24488,9 +24644,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_set_protected:Npn \__regex_tmp:w #1#2 { - \cs_new_protected:cpx { __regex_compile_/#1: } + \cs_new_protected:cpe { __regex_compile_/#1: } { \__regex_compile_one:n \exp_not:c { __regex_prop_#1: } } - \cs_new_protected:cpx { __regex_compile_/#2: } + \cs_new_protected:cpe { __regex_compile_/#2: } { \__regex_compile_one:n { \__regex_item_reverse:n { \exp_not:c { __regex_prop_#1: } } } @@ -24534,8 +24690,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } } } -\exp_args:Nx \__regex_tmp:w { \iow_char:N \^ } { \__regex_A_test: } -\exp_args:Nx \__regex_tmp:w { \iow_char:N \$ } { \__regex_Z_test: } +\exp_args:Ne \__regex_tmp:w { \iow_char:N \^ } { \__regex_A_test: } +\exp_args:Ne \__regex_tmp:w { \iow_char:N \$ } { \__regex_Z_test: } \cs_new_protected:cpn { __regex_compile_]: } { \__regex_if_in_class:TF @@ -24609,11 +24765,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { : { \__regex_compile_class_posix:NNNNw } = { - \msg_warning:nnx { regex } + \msg_warning:nne { regex } { posix-unsupported } { = } } . { - \msg_warning:nnx { regex } + \msg_warning:nne { regex } { posix-unsupported } { . } } } @@ -24625,12 +24781,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_two_if_eq:NNNNTF #5 #6 \__regex_compile_special:N ^ { \bool_set_false:N \l__regex_internal_bool - \__kernel_tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \if_false: } \fi: \__regex_compile_class_posix_loop:w } { \bool_set_true:N \l__regex_internal_bool - \__kernel_tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \if_false: } \fi: \__regex_compile_class_posix_loop:w #5 #6 } } @@ -24655,9 +24811,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } } { - \msg_warning:nnx { regex } { posix-unknown } + \msg_warning:nne { regex } { posix-unknown } { \l__regex_internal_a_tl } - \__regex_compile_abort_tokens:x + \__regex_compile_abort_tokens:e { [: \bool_if:NF \l__regex_internal_bool { ^ } \l__regex_internal_a_tl :] @@ -24665,9 +24821,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } } { - \msg_error:nnxx { regex } { posix-missing-close } + \msg_error:nnee { regex } { posix-missing-close } { [: \l__regex_internal_a_tl } { #2 #4 } - \__regex_compile_abort_tokens:x { [: \l__regex_internal_a_tl } + \__regex_compile_abort_tokens:e { [: \l__regex_internal_a_tl } #1 #2 #3 #4 } } @@ -24687,7 +24843,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w \l__regex_group_level_int > \c_zero_int \tl_build_put_right:Nn \l__regex_build_tl { \if_false: { \fi: } } \tl_build_end:N \l__regex_build_tl - \exp_args:NNNx + \exp_args:NNNe \group_end: \tl_build_put_right:Nn \l__regex_build_tl { \l__regex_build_tl } \int_set_eq:NN \l__regex_catcodes_int \l__regex_default_catcodes_int @@ -24717,7 +24873,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_if_exist_use:cF { __regex_compile_special_group_\token_to_str:N #4 :w } { - \msg_warning:nnx { regex } { special-group-unknown } + \msg_warning:nne { regex } { special-group-unknown } { (? #4 } \__regex_compile_group_begin:N \__regex_group:nnnN \__regex_compile_raw:N ? #3 #4 @@ -24755,7 +24911,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_item_caseless_range:nn } } { - \msg_warning:nnx { regex } { unknown-option } { (?i #2 } + \msg_warning:nne { regex } { unknown-option } { (?i #2 } \__regex_compile_raw:N ( \__regex_compile_raw:N ? \__regex_compile_raw:N i @@ -24774,7 +24930,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_item_caseful_range:nn } } { - \msg_warning:nnx { regex } { unknown-option } { (?-#2#4 } + \msg_warning:nne { regex } { unknown-option } { (?-#2#4 } \__regex_compile_raw:N ( \__regex_compile_raw:N ? \__regex_compile_raw:N - @@ -24802,7 +24958,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \cs_if_exist_use:cF { __regex_compile_c_#2:w } } { - \msg_error:nnx { regex } { c-missing-category } {#2} + \msg_error:nne { regex } { c-missing-category } {#2} #1 #2 } } @@ -24854,7 +25010,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_compile_c_lbrack_end: } } { - \msg_error:nnx { regex } { c-missing-rbrack } {#2} + \msg_error:nne { regex } { c-missing-rbrack } {#2} \__regex_compile_c_lbrack_end: #1 #2 } @@ -24901,12 +25057,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_compile_end: \flag_clear:n { __regex_cs } - \__kernel_tl_set:Nx \l__regex_internal_a_tl + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \exp_after:wN \__regex_compile_cs_aux:Nn \l__regex_internal_regex \q__regex_nil \q__regex_nil \q__regex_recursion_stop } - \exp_args:Nx \__regex_compile_one:n + \exp_args:Ne \__regex_compile_one:n { \flag_if_raised:nTF { __regex_cs } { \__regex_item_cs:n { \exp_not:o \l__regex_internal_regex } } @@ -24970,7 +25126,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_two_if_eq:NNNNTF #2 #3 \__regex_compile_special:N \c_left_brace_str { \tl_set:Nn \l__regex_internal_b_tl {#1} - \__kernel_tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \if_false: } \fi: \__regex_compile_u_loop:NN } { @@ -25001,7 +25157,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \if_false: { \fi: } - \msg_error:nnx { regex } { u-missing-rbrace } {#2} + \msg_error:nne { regex } { u-missing-rbrace } {#2} \l__regex_internal_b_tl #1 #2 } @@ -25012,7 +25168,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \cs_set:Npn \__regex_group:nnnN { \__regex_group_no_capture:nnnN } \cs_set:Npn \__regex_group_resetting:nnnN { \__regex_group_no_capture:nnnN } - \exp_args:NNx + \exp_args:NNe \group_end: \__regex_compile_ur:n { \use:c { \l__regex_internal_a_tl } } } @@ -25055,12 +25211,12 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_compile_u_in_cs: { - \__kernel_tl_gset:Nx \g__regex_internal_tl + \__kernel_tl_gset:Ne \g__regex_internal_tl { \exp_args:No \__kernel_str_to_other_fast:n { \l__regex_internal_a_tl } } - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \tl_map_function:NN \g__regex_internal_tl \__regex_compile_u_in_cs_aux:n @@ -25076,7 +25232,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_analysis_map_inline:Nn \l__regex_internal_a_tl { - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \__regex_class:NnnnN \c_true_bool { @@ -25322,7 +25478,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_show_one:n #1 { \int_incr:N \l__regex_show_lines_int - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \exp_not:N \iow_newline: \seq_map_function:NN \l__regex_show_prefix_seq \use:n @@ -25330,7 +25486,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_protected:Npn \__regex_show_push:n #1 - { \seq_put_right:Nx \l__regex_show_prefix_seq { #1 ~ } } + { \seq_put_right:Ne \l__regex_show_prefix_seq { #1 ~ } } \cs_new_protected:Npn \__regex_show_pop: { \seq_pop_right:NN \l__regex_show_prefix_seq \l__regex_internal_a_tl } \cs_new_protected:Npn \__regex_show_scope:nn #1#2 @@ -25380,7 +25536,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \bool_if:NTF #1 { Match } { Don't~match } \__regex_msg_repeated:nnN {#3} {#4} #5 } - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \exp_not:o \l__regex_internal_a_tl } } } @@ -25443,7 +25599,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_case_build_aux:Nn \c_true_bool {#1} \int_gzero:N \g__regex_case_int } -\cs_generate_variant:Nn \__regex_case_build:n { x } +\cs_generate_variant:Nn \__regex_case_build:n { e } \cs_new_protected:Npn \__regex_case_build_aux:Nn #1#2 { \__regex_standard_escapechar: @@ -25454,7 +25610,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_action_start_wildcard:N #1 } % \__regex_build_new_state: - \__regex_toks_put_left:Nx \l__regex_left_state_int + \__regex_toks_put_left:Ne \l__regex_left_state_int { \__regex_action_submatch:nN { 0 } < } \__regex_push_lr_states: \int_zero:N \l__regex_case_max_group_int @@ -25478,7 +25634,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \seq_pop:NN \l__regex_right_state_seq \l__regex_internal_a_tl \int_set:Nn \l__regex_right_state_int \l__regex_internal_a_tl - \__regex_toks_put_left:Nx \l__regex_right_state_int + \__regex_toks_put_left:Ne \l__regex_right_state_int { \__regex_action_submatch:nN { 0 } > \int_gset:Nn \g__regex_case_int @@ -25520,9 +25676,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_set:Nn \l__regex_right_state_int \l__regex_internal_a_tl } \cs_new_protected:Npn \__regex_build_transition_left:NNN #1#2#3 - { \__regex_toks_put_left:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } + { \__regex_toks_put_left:Ne #2 { #1 { \int_eval:n { #3 - #2 } } } } \cs_new_protected:Npn \__regex_build_transition_right:nNn #1#2#3 - { \__regex_toks_put_right:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } + { \__regex_toks_put_right:Ne #2 { #1 { \int_eval:n { #3 - #2 } } } } \cs_new_protected:Npn \__regex_build_new_state: { \__regex_toks_clear:N \l__regex_max_state_int @@ -25533,7 +25689,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_build_transitions_lazyness:NNNNN #1#2#3#4#5 { \__regex_build_new_state: - \__regex_toks_put_right:Nx \l__regex_left_state_int + \__regex_toks_put_right:Ne \l__regex_left_state_int { \if_meaning:w \c_true_bool #1 #2 { \int_eval:n { #3 - \l__regex_left_state_int } } @@ -25546,7 +25702,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_class:NnnnN #1#2#3#4#5 { - \cs_set:Npx \__regex_tests_action_cost:n ##1 + \cs_set:Npe \__regex_tests_action_cost:n ##1 { \exp_not:n { \exp_not:n {#2} } \bool_if:NTF #1 @@ -25672,8 +25828,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_group_submatches:nNN #1#2#3 { \if_int_compare:w #1 > - \c_one_int - \__regex_toks_put_left:Nx #2 { \__regex_action_submatch:nN {#1} < } - \__regex_toks_put_left:Nx #3 { \__regex_action_submatch:nN {#1} > } + \__regex_toks_put_left:Ne #2 { \__regex_action_submatch:nN {#1} < } + \__regex_toks_put_left:Ne #3 { \__regex_action_submatch:nN {#1} > } \fi: } \cs_new_protected:Npn \__regex_group_repeat_aux:n #1 @@ -25764,7 +25920,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_assertion:Nn #1#2 { \__regex_build_new_state: - \__regex_toks_put_right:Nx \l__regex_left_state_int + \__regex_toks_put_right:Ne \l__regex_left_state_int { \exp_not:n {#2} \__regex_break_point:TF @@ -25809,7 +25965,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_command_K: { \__regex_build_new_state: - \__regex_toks_put_right:Nx \l__regex_left_state_int + \__regex_toks_put_right:Ne \l__regex_left_state_int { \__regex_action_submatch:nN { 0 } < \bool_set_true:N \l__regex_fresh_thread_bool @@ -25904,7 +26060,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \int_set_eq:NN \l__regex_start_pos_int \l__regex_success_pos_int \bool_set_false:N \l__regex_match_success_bool - \tl_set:Nx \l__regex_curr_submatches_tl + \tl_set:Ne \l__regex_curr_submatches_tl { \prg_replicate:nn { 2 * \l__regex_capturing_group_int } { 0 , } } \int_set_eq:NN \l__regex_max_thread_int \l__regex_min_thread_int \__regex_store_state:n { \l__regex_min_state_int } @@ -25954,10 +26110,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_set:Nn \l__regex_curr_token_tl {#1} \int_set:Nn \l__regex_curr_char_int {#2} \int_set:Nn \l__regex_curr_catcode_int { "#3 } - \tl_build_put_right:Nx \l__regex_matched_analysis_tl + \tl_build_put_right:Ne \l__regex_matched_analysis_tl { \exp_not:o \l__regex_curr_analysis_tl } \tl_set:Nn \l__regex_curr_analysis_tl { { {#1} {#2} #3 } } - \use:x + \use:e { \int_set_eq:NN \l__regex_max_thread_int \l__regex_min_thread_int \int_step_function:nnN @@ -26017,7 +26173,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_action_free_aux:nn { < \l__regex_step_int } } \cs_new_protected:Npn \__regex_action_free_aux:nn #1#2 { - \use:x + \use:e { \int_add:Nn \l__regex_curr_state_int {#2} \exp_not:n @@ -26037,7 +26193,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_action_cost:n #1 { - \exp_args:Nx \__regex_store_state:n + \exp_args:Ne \__regex_store_state:n { \int_eval:n { \l__regex_curr_state_int + #1 } } } \cs_new_protected:Npn \__regex_store_state:n #1 @@ -26069,7 +26225,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_action_submatch_aux:w #1 ; #2#3 { - \tl_set:Nx \l__regex_curr_submatches_tl + \tl_set:Ne \l__regex_curr_submatches_tl { \prg_replicate:nn { #2 \if_meaning:w > #3 + \l__regex_capturing_group_int \fi: } @@ -26180,25 +26336,25 @@ Type H <return> for immediate help}\def~{\errmessage{% {#2} \prg_do_nothing: \prg_do_nothing: \if_int_compare:w \l__regex_replacement_csnames_int > \c_zero_int - \msg_error:nnx { regex } { replacement-missing-rbrace } + \msg_error:nne { regex } { replacement-missing-rbrace } { \int_use:N \l__regex_replacement_csnames_int } - \tl_build_put_right:Nx \l__regex_build_tl + \tl_build_put_right:Ne \l__regex_build_tl { \prg_replicate:nn \l__regex_replacement_csnames_int \cs_end: } \fi: \seq_if_empty:NF \l__regex_replacement_category_seq { - \msg_error:nnx { regex } { replacement-missing-rparen } + \msg_error:nne { regex } { replacement-missing-rparen } { \seq_count:N \l__regex_replacement_category_seq } \seq_clear:N \l__regex_replacement_category_seq } - \tl_gput_right:Nx \g__regex_balance_tl + \tl_gput_right:Ne \g__regex_balance_tl { + \int_use:N \l__regex_balance_int } \tl_build_end:N \l__regex_build_tl \exp_args:NNo \group_end: #1 \l__regex_build_tl } -\cs_generate_variant:Nn \__regex_replacement:n { x } +\cs_generate_variant:Nn \__regex_replacement:n { e } \cs_new_protected:Npn \__regex_replacement_set:n #1 { \cs_set:Npn \__regex_replacement_do_one_match:n ##1 @@ -26239,7 +26395,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_args:No \__regex_replacement_set:n { \g__regex_case_replacement_tl \fi: } } -\cs_generate_variant:Nn \__regex_case_replacement:n { x } +\cs_generate_variant:Nn \__regex_case_replacement:n { e } \cs_new_protected:Npn \__regex_case_replacement_aux:n #1 { \tl_gput_right:Nn \g__regex_case_replacement_tl { \or: #1 } @@ -26505,7 +26661,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_end: \cs_new_protected:Npn \__regex_replacement_error:NNN #1#2#3 { - \msg_error:nnx { regex } { replacement-#1 } {#3} + \msg_error:nne { regex } { replacement-#1 } {#3} #2 #3 } \cs_new_protected:Npn \regex_new:N #1 @@ -26527,10 +26683,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \regex_const:Nn #1#2 { \__regex_compile:n {#2} - \tl_const:Nx #1 { \exp_not:o \l__regex_internal_regex } + \tl_const:Ne #1 { \exp_not:o \l__regex_internal_regex } } -\cs_new_protected:Npn \regex_show:n { \__regex_show:Nn \msg_show:nnxxxx } -\cs_new_protected:Npn \regex_log:n { \__regex_show:Nn \msg_log:nnxxxx } +\cs_new_protected:Npn \regex_show:n { \__regex_show:Nn \msg_show:nneeee } +\cs_new_protected:Npn \regex_log:n { \__regex_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \__regex_show:Nn #1#2 { \__regex_compile:n {#2} @@ -26539,8 +26695,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_to_str:n {#2} } { } { \l__regex_internal_a_tl } { } } -\cs_new_protected:Npn \regex_show:N { \__regex_show:NN \msg_show:nnxxxx } -\cs_new_protected:Npn \regex_log:N { \__regex_show:NN \msg_log:nnxxxx } +\cs_new_protected:Npn \regex_show:N { \__regex_show:NN \msg_show:nneeee } +\cs_new_protected:Npn \regex_log:N { \__regex_show:NN \msg_log:nneeee } \cs_new_protected:Npn \__regex_show:NN #1#2 { \__kernel_chk_tl_type:NnnT #2 { regex } @@ -26611,15 +26767,15 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_if_odd:nTF { \tl_count:n {#1} } { - \msg_error:nnxxxx { regex } { case-odd } + \msg_error:nneeee { regex } { case-odd } { \token_to_str:N \regex_replace_case_once:nN(TF) } { code } { \tl_count:n {#1} } { \tl_to_str:n {#1} } \use_ii:nn } { \__regex_replace_once_aux:nnN - { \__regex_case_build:x { \__regex_tl_odd_items:n {#1} } } - { \__regex_replacement:x { \tl_item:nn {#1} { 2 * \g__regex_case_int } } } + { \__regex_case_build:e { \__regex_tl_odd_items:n {#1} } } + { \__regex_replacement:e { \tl_item:nn {#1} { 2 * \g__regex_case_int } } } #2 \bool_if:NTF \g__regex_success_bool } @@ -26634,15 +26790,15 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_if_odd:nTF { \tl_count:n {#1} } { - \msg_error:nnxxxx { regex } { case-odd } + \msg_error:nneeee { regex } { case-odd } { \token_to_str:N \regex_replace_case_all:nN(TF) } { code } { \tl_count:n {#1} } { \tl_to_str:n {#1} } \use_ii:nn } { \__regex_replace_all_aux:nnN - { \__regex_case_build:x { \__regex_tl_odd_items:n {#1} } } - { \__regex_case_replacement:x { \__regex_tl_even_items:n {#1} } } + { \__regex_case_build:e { \__regex_tl_odd_items:n {#1} } } + { \__regex_case_replacement:e { \__regex_tl_even_items:n {#1} } } #2 \bool_if:NTF \g__regex_success_bool } @@ -26708,14 +26864,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_if_odd:nTF { \tl_count:n {#1} } { - \msg_error:nnxxxx { regex } { case-odd } + \msg_error:nneeee { regex } { case-odd } { \token_to_str:N \regex_match_case:nn(TF) } { code } { \tl_count:n {#1} } { \tl_to_str:n {#1} } \use_ii:nn } { \__regex_if_match:nn - { \__regex_case_build:x { \__regex_tl_odd_items:n {#1} } } + { \__regex_case_build:e { \__regex_tl_odd_items:n {#1} } } {#2} \bool_if:NTF \g__regex_success_bool } @@ -26797,7 +26953,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \flag_clear:n { __regex_begin } \flag_clear:n { __regex_end } \cs_set_eq:NN \__regex_tmp:w \scan_stop: - \__kernel_tl_gset:Nx \g__regex_internal_tl + \__kernel_tl_gset:Ne \g__regex_internal_tl { \int_step_function:nnN { \l__regex_min_submatch_int } { \l__regex_submatch_int - 1 } \__regex_extract_seq_aux:n @@ -26808,12 +26964,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_set:Nn \l__regex_added_end_int { \flag_height:n { __regex_end } } \tex_afterassignment:D \__regex_extract_check:w - \__kernel_tl_gset:Nx \g__regex_internal_tl + \__kernel_tl_gset:Ne \g__regex_internal_tl { \g__regex_internal_tl \if_false: { \fi: } } \int_compare:nNnT { \l__regex_added_begin_int + \l__regex_added_end_int } > 0 { - \msg_error:nnxxx { regex } { result-unbalanced } + \msg_error:nneee { regex } { result-unbalanced } { splitting~or~extracting~submatches } { \int_use:N \l__regex_added_begin_int } { \int_use:N \l__regex_added_end_int } @@ -26872,7 +27028,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_incr:N \l__regex_added_begin_int \int_incr:N \l__regex_added_end_int \tex_afterassignment:D \__regex_extract_check:w - \__kernel_tl_gset:Nx \g__regex_internal_tl + \__kernel_tl_gset:Ne \g__regex_internal_tl { \exp_after:wN \__regex_extract_check_loop:w \g__regex_internal_tl @@ -26949,7 +27105,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_replacement_balance_one_match:n { \l__regex_zeroth_submatch_int } } - \__kernel_tl_set:Nx \l__regex_internal_a_tl + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \__regex_replacement_do_one_match:n { \l__regex_zeroth_submatch_int } @@ -26983,7 +27139,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \l__regex_submatch_int - 1 } \__regex_replacement_balance_one_match:n } - \__kernel_tl_set:Nx \l__regex_internal_a_tl + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \int_step_function:nnnN { \l__regex_min_submatch_int } @@ -27004,7 +27160,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_group_end_replace_try: \int_compare:nNnT { \l__regex_added_begin_int + \l__regex_added_end_int } > 0 { - \msg_error:nnxxx { regex } { result-unbalanced } + \msg_error:nneee { regex } { result-unbalanced } { replacing } { \int_use:N \l__regex_added_begin_int } { \int_use:N \l__regex_added_end_int } } @@ -27014,7 +27170,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_group_end_replace_try: { \tex_afterassignment:D \__regex_group_end_replace_check:w - \__kernel_tl_gset:Nx \g__regex_internal_tl + \__kernel_tl_gset:Ne \g__regex_internal_tl { \prg_replicate:nn { \l__regex_added_begin_int } { { \if_false: } \fi: } \l__regex_internal_a_tl @@ -27167,7 +27323,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_eq:NN \__regex_replacement_exp_not:N \__regex_peek_replacement_token:n \cs_set_eq:NN \__regex_replacement_exp_not:V \__regex_peek_replacement_var:N \exp_args:No \__regex_replacement:n { \l__regex_replacement_tl } - \use:x + \use:e { \exp_not:n { \exp_after:wN \l__regex_peek_true_tl \exp:w } \__regex_replacement_do_one_match:n @@ -27226,7 +27382,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #1 \exp:w } -\use:x +\use:e { \msg_new:nnn { regex } { trailing-backslash } { Trailing~'\iow_char:N\\'~in~regex~or~replacement. } @@ -27533,14 +27689,14 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_protected:Npn \__regex_trace_push:nnN #1#2#3 - { \__regex_trace:nnx {#1} {#2} { entering~ \token_to_str:N #3 } } + { \__regex_trace:nne {#1} {#2} { entering~ \token_to_str:N #3 } } \cs_new_protected:Npn \__regex_trace_pop:nnN #1#2#3 - { \__regex_trace:nnx {#1} {#2} { leaving~ \token_to_str:N #3 } } -\cs_new_protected:Npn \__regex_trace:nnx #1#2#3 + { \__regex_trace:nne {#1} {#2} { leaving~ \token_to_str:N #3 } } +\cs_new_protected:Npn \__regex_trace:nne #1#2#3 { \int_compare:nNnF { \int_use:c { g__regex_trace_#1_int } } < {#2} - { \iow_term:x { Trace:~#3 } } + { \iow_term:e { Trace:~#3 } } } \int_new:N \g__regex_trace_regex_int \cs_new_protected:Npn \__regex_trace_states:n #1 @@ -27549,7 +27705,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \l__regex_min_state_int { \l__regex_max_state_int - 1 } { - \__regex_trace:nnx { regex } {#1} + \__regex_trace:nne { regex } {#1} { \iow_char:N \\toks ##1 = { \__regex_toks_use:w ##1 } } } } @@ -27698,7 +27854,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_end: } { - \msg_error:nnx { kernel } { variable-not-defined } + \msg_error:nne { kernel } { variable-not-defined } { \token_to_str:N #2 } } } @@ -28389,7 +28545,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \exp_last_unbraced:Nf { c } \cs_new_protected:Npn \__color_convert:nnnN #1#2#3#4 { - \tl_set:Nx #4 + \tl_set:Ne #4 { \cs_if_exist_use:cTF { __color_convert_ #1 _ #2 :w } { #3 \s__color_stop } @@ -28463,11 +28619,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \l__color_value_tl \tl_new:N \l__color_next_model_tl \tl_new:N \l__color_next_value_tl -\cs_new_protected:Npx \__color_parse:nN #1#2 +\cs_new_protected:Npe \__color_parse:nN #1#2 { - \tl_set:Nx \exp_not:c { l__color_named_ . _tl } + \tl_set:Ne \exp_not:c { l__color_named_ . _tl } { \exp_not:N \__color_model:N \exp_not:N \l__color_current_tl } - \prop_put:NVx \exp_not:c { l__color_named_ . _prop } + \prop_put:NVe \exp_not:c { l__color_named_ . _prop } \exp_not:c { l__color_named_ . _tl } { \exp_not:N \__color_values:N \exp_not:N \l__color_current_tl } \exp_not:N \exp_args:Ne \exp_not:N \__color_parse_aux:nN @@ -28492,14 +28648,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_get:cnNTF { l__color_named_ #3 _prop } {#1} \l__color_value_tl - { \tl_set:Nx #2 { {#1} { \l__color_value_tl } } } + { \tl_set:Ne #2 { {#1} { \l__color_value_tl } } } { \tl_set_eq:Nc \l__color_model_tl { l__color_named_ #3 _tl } \prop_get:cVN { l__color_named_ #3 _prop } \l__color_model_tl \l__color_value_tl \__color_convert:nnN \l__color_model_tl {#1} \l__color_value_tl - \tl_set:Nx #2 + \tl_set:Ne #2 { {#1} { \l__color_value_tl } @@ -28524,7 +28680,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \__color_extract:nNN {#2} \l__color_model_tl \l__color_value_tl \__color_parse_loop:w #3 ! ! ! ! \s__color_stop - \tl_set:Nx \l__color_internal_tl + \tl_set:Ne \l__color_internal_tl { { \l__color_model_tl } { \l__color_value_tl } } \exp_args:NNNV \group_end: \tl_set:Nn #1 \l__color_internal_tl @@ -28537,7 +28693,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \fp_compare_p:nNn {#1} > { 0 } } { \fp_compare_p:nNn {#1} < { 100 } } { - \use:x + \use:e { \__color_parse_loop:nn {#1} { \tl_if_blank:nTF {#2} { white } {#2} } @@ -28577,7 +28733,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__color_parse_gray:n {#2} } { \__color_parse_std:n {#2} } } - \tl_set:Nx \l__color_value_tl + \tl_set:Ne \l__color_value_tl { \__color_parse_mix:NVVn \l__color_model_tl \l__color_value_tl \l__color_next_value_tl {#1} @@ -28848,7 +29004,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__color_convert:VVN \l__color_model_tl \l_color_fixed_model_tl \l__color_value_tl } - \tl_set:Nx #1 + \tl_set:Ne #1 { { \l_color_fixed_model_tl } { \l__color_value_tl } } } } @@ -28857,12 +29013,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_set:Nn \l__color_model_tl {#1} \tl_set:Nn \l__color_value_tl {#2} } -\cs_new_protected:Npx \__color_finalise_current: +\cs_new_protected:Npe \__color_finalise_current: { - \tl_set:Nx \exp_not:c { l__color_named_ . _tl } + \tl_set:Ne \exp_not:c { l__color_named_ . _tl } { \exp_not:N \__color_model:N \exp_not:N \l__color_current_tl } \prop_clear:N \exp_not:c { l__color_named_ . _prop } - \prop_put:NVx \exp_not:c { l__color_named_ . _prop } + \prop_put:NVe \exp_not:c { l__color_named_ . _prop } \exp_not:c { l__color_named_ . _tl } { \exp_not:N \__color_values:N \exp_not:N \l__color_current_tl } } @@ -28903,7 +29059,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_if_exist:cTF { __color_parse_model_ #1 :w } { - \tl_set:Nx #3 + \tl_set:Ne #3 { \use:c { __color_parse_model_ #1 :w } #2 , 0 , 0 , 0 , 0 \s__color_stop } } { \msg_error:nnn { color } { unknown-model } {#1} } @@ -28911,7 +29067,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__color_select_swap:Nnn #1#2#3 { \__color_convert:nVnN {#2} \l_color_fixed_model_tl {#3} \l__color_value_tl - \tl_set:Nx #1 + \tl_set:Ne #1 { { \l_color_fixed_model_tl } { \l__color_value_tl } } } \tl_new:N \l_color_math_active_tl @@ -29059,10 +29215,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__color_parse:nN {#2} \l__color_named_tl \tl_clear_new:c { l__color_named_ #1 _tl } - \tl_set:cx { l__color_named_ #1 _tl } + \tl_set:ce { l__color_named_ #1 _tl } { \__color_model:N \l__color_named_tl } \prop_clear_new:c { l__color_named_ #1 _prop } - \prop_put:cvx { l__color_named_ #1 _prop } { l__color_named_ #1 _tl } + \prop_put:cve { l__color_named_ #1 _prop } { l__color_named_ #1 _tl } { \__color_values:N \l__color_named_tl } \__color_set:nnw {#1} {#2} #2 ! \s__color_stop } @@ -29081,7 +29237,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__color_parse:nN {#2} \l__color_internal_tl \exp_args:NNNV \group_end: \tl_set:Nn \l__color_internal_tl \l__color_internal_tl - \prop_put:cxx { l__color_named_ #1 _prop } + \prop_put:cee { l__color_named_ #1 _prop } { \__color_model:N \l__color_internal_tl } { \__color_values:N \l__color_internal_tl } } @@ -29098,16 +29254,16 @@ Type H <return> for immediate help}\def~{\errmessage{% {#1} {#3} } } -\cs_new_protected:Npx \__color_set_aux:nnn #1#2#3 +\cs_new_protected:Npe \__color_set_aux:nnn #1#2#3 { \exp_not:N \__color_set_colon:nnw {#2} {#3} #1 \c_colon_str \c_colon_str \exp_not:N \s__color_stop } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \__color_set_colon:nnw - ##1##2 ##3 \c_colon_str ##4 \c_colon_str - ##5 \exp_not:N \s__color_stop + #1#2 #3 \c_colon_str #4 \c_colon_str + #5 \exp_not:N \s__color_stop } { \tl_if_blank:nTF {#4} @@ -29121,10 +29277,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_if_blank:nF {#2} { \__color_select:nnN {#2} {#4} \l__color_named_tl - \tl_set:Nx \l__color_internal_tl { \__color_model:N \l__color_named_tl } + \tl_set:Ne \l__color_internal_tl { \__color_model:N \l__color_named_tl } \tl_if_empty:cT { l__color_named_ #1 _tl } { \tl_set_eq:cN { l__color_named_ #1 _tl } \l__color_internal_tl } - \prop_put:cVx { l__color_named_ #1 _prop } \l__color_internal_tl + \prop_put:cVe { l__color_named_ #1 _prop } \l__color_internal_tl { \__color_values:N \l__color_named_tl } \__color_set_loop:nw {#1} #3 \s__color_mark #5 \s__color_stop } @@ -29137,9 +29293,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_clear_new:c { l__color_named_ #1 _prop } \str_if_eq:nnTF {#2} { . } { - \tl_set:cx { l__color_named_ #1 _tl } + \tl_set:ce { l__color_named_ #1 _tl } { \__color_model:N \l__color_current_tl } - \prop_put:cvx { l__color_named_ #1 _prop } { l__color_named_ #1 _tl } + \prop_put:cve { l__color_named_ #1 _prop } { l__color_named_ #1 _tl } { \__color_values:N \l__color_current_tl } } { @@ -29161,7 +29317,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \color_set:nnn { blue } { rgb } { 0 , 0 , 1 } \prop_new:c { l__color_named_._prop } \tl_new:c { l__color_named_._tl } -\tl_set:cx { l__color_named_._tl } { \__color_model:N \l__color_current_tl } +\tl_set:ce { l__color_named_._tl } { \__color_model:N \l__color_current_tl } \cs_new_protected:Npn \color_export:nnN #1#2#3 { \group_begin: @@ -29209,7 +29365,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \cs_set_protected:Npn \__color_tmp:w #1#2 { - \cs_new_protected:cpx { __color_export_format_ #1 :nnN } ##1##2##3 + \cs_new_protected:cpe { __color_export_format_ #1 :nnN } ##1##2##3 { \exp_not:N \__color_export:nnnNN {#2} {##1} {##2} ##3 \exp_not:c { __color_export_ #1 :Nw } @@ -29228,10 +29384,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:cpn { __color_export_space-sep-cmyk:Nw } #1#2 \s__color_stop { \tl_set:Nn #1 {#2} } \cs_new_protected:cpn { __color_export_comma-sep-rgb:Nw } #1#2 ~ #3 ~ #4 \s__color_stop - { \tl_set:Nx #1 { #2 , #3 , #4 } } + { \tl_set:Ne #1 { #2 , #3 , #4 } } \cs_new_protected:Npn \__color_export_HTML:Nw #1#2 ~ #3 ~ #4 \s__color_stop { - \tl_set:Nx #1 + \tl_set:Ne #1 { \__color_export_HTML:n {#2} \__color_export_HTML:n {#3} @@ -29312,13 +29468,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_gincr:N \g__color_model_int \clist_map_inline:nn { fill , stroke , select } { - \cs_new_protected:cpx { __color_backend_ ##1 _ #1 :n } ####1 + \cs_new_protected:cpe { __color_backend_ ##1 _ #1 :n } ####1 { \exp_not:c { __color_backend_ ##1 _ #2 :nn } { color \int_use:N \g__color_model_int } {####1} } } - \cs_new_protected:cpx { __color_model_ #1 _white: } + \cs_new_protected:cpe { __color_model_ #1 _white: } { \prop_put:Nnn \exp_not:N \l__color_named_white_prop {#1} { \exp_not:n {#3} } @@ -29327,7 +29483,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \use:c { __color_model_ #1 _white: } } -\cs_generate_variant:Nn \__color_model_init:nnn { nnx } +\cs_generate_variant:Nn \__color_model_init:nnn { nne } \cs_new_protected:Npn \__color_model_separation:n #1 { \prop_get:NnNTF \l__color_internal_prop { name } @@ -29384,7 +29540,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \use:c { __color_model_separation_ #8 :nnnnnn } {#6} {#7} {#1} {#2} {#3} {#4} \prop_gput:Nnn \g__color_alternative_model_prop {#6} {#8} - \prop_gput:Nnx \g__color_colorants_prop {#6} + \prop_gput:Nne \g__color_colorants_prop {#6} { \str_convert_pdfname:n {#7} } } \cs_new_protected:Npn \__color_model_separation_cmyk:nnnnnn #1#2#3#4#5#6 @@ -29427,7 +29583,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__color_model_convert:nnn #1#2#3 { - \cs_new:cpx { __color_convert_ #1 _ #3 :w } ##1 \s__color_stop + \cs_new:cpe { __color_convert_ #1 _ #3 :w } ##1 \s__color_stop { \exp_not:N \exp_args:NNe \exp_not:N \use:nn \exp_not:c { __color_convert_ #2 _ #3 :w } @@ -29514,12 +29670,12 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__color_model_devicen:nnn #1#2#3 { - \exp_args:Nx \__color_model_devicen:nnnn + \exp_args:Ne \__color_model_devicen:nnnn { \clist_count:n {#2} } {#1} {#2} {#3} } \cs_new_protected:Npn \__color_model_devicen:nnnn #1#2#3#4 { - \__color_model_init:nnx {#4} { devicen } + \__color_model_init:nne {#4} { devicen } { 0 \prg_replicate:nn { #1 - 1 } { ~ 0 } } @@ -29527,7 +29683,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__color_model_devicen_parse_generic:nn } {#4} {#1} \__color_model_devicen_init:nnn {#1} {#2} {#3} - \__color_model_devicen_convert:nnnx {#4} {#2} {#3} + \__color_model_devicen_convert:nnne {#4} {#2} {#3} { 1 \prg_replicate:nn { #1 - 1 } { ~ 1 } } @@ -29584,7 +29740,7 @@ Type H <return> for immediate help}\def~{\errmessage{% {#1} { \__color_model_devicen_parse:nw {#2} ##1 , ##2 , \q_nil , \s__color_stop } } - \cs_new:cpx { __color_parse_mix_ #1 :nw } + \cs_new:cpe { __color_parse_mix_ #1 :nw } ##1 ##2 \s__color_mark ##3 \s__color_stop { \exp_not:N \__color_model_devicen_mix:nw {##1} @@ -29630,7 +29786,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__color_model_devicen_init:nnnn #1#2#3#4 { - \tl_set:Nx \l__color_internal_tl + \tl_set:Ne \l__color_internal_tl { \prg_replicate:nn {#1} { 1.0 ~ } } \int_zero:N \l__color_internal_int \clist_map_inline:nn {#4} @@ -29641,7 +29797,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__color_model_devicen_transform:w \l__color_value_tl , 0 , 0 , 0 , \s__color_stop {#1} {#2} } - \tl_put_right:Nx \l__color_internal_tl + \tl_put_right:Ne \l__color_internal_tl { \prg_replicate:nn {#1} { neg ~ 1.0 ~ add ~ #1 ~ -1 ~ roll ~ } @@ -29649,7 +29805,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_replicate:nn {#2} { ~ pop } ~ #1 ~ 1 ~ roll } - \use:x + \use:e { \__color_backend_devicen_init:nnn { @@ -29687,7 +29843,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__color_model_devicen_transform:nnn #1#2#3 { - \tl_put_right:Nx \l__color_internal_tl + \tl_put_right:Ne \l__color_internal_tl { \fp_compare:nNnF {#3} = \c_zero_fp { @@ -29705,7 +29861,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \use:c { __color_model_devicen_convert_ #2 :nnn } {#1} {#3} } -\cs_generate_variant:Nn \__color_model_devicen_convert:nnnn { nnnx } +\cs_generate_variant:Nn \__color_model_devicen_convert:nnnn { nnne } \cs_new_protected:Npn \__color_model_devicen_convert_cmyk:nnn #1#2 { \tl_const:cn { c__color_fallback_ #1 _tl } { cmyk } @@ -29724,7 +29880,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__color_model_devicen_convert:nnnnn #1#2#3#4#5 { \cs_new:cpn { __color_convert_ #2 _ #1 :w } ##1 \s__color_stop {#5} - \cs_new:cpx { __color_convert_ #1 _ #2 :w } ##1 \s__color_stop + \cs_new:cpe { __color_convert_ #1 _ #2 :w } ##1 \s__color_stop { \exp_not:c { __color_convert_devicen_ #2 : \prg_replicate:nn {#3} { n } w } \prg_replicate:nn {#3} { { 1 } } @@ -29861,7 +30017,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__color_model_iccbased:nn #1#2 { - \exp_args:NNx \prop_get:NnNTF \c__color_icc_colorspace_signatures_prop + \prop_get:NeNTF \c__color_icc_colorspace_signatures_prop { \file_hex_dump:nnn { #1 } { 17 } { 20 } } \l__color_internal_tl { \exp_last_unbraced:NV \__color_model_iccbased_aux:nnnnnn @@ -29879,7 +30035,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:cpn { __color_convert_ #5 _gray:w } ##1 \s__color_stop { 0 } \cs_new:cpn { __color_convert_gray_ #5 :w } ##1 \s__color_stop { #2 } \use:c { __color_model_devicen_parse_ #1 :nn } {#5} {#1} - \exp_args:Nx \__color_backend_iccbased_init:nnn + \exp_args:Ne \__color_backend_iccbased_init:nnn { \file_full_name:n {#6} } {#1} {#4} } \cs_new_protected:Npn \color_profile_apply:nn #1#2 @@ -29912,9 +30068,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__color_backend_iccbased_device:nnn {#1} { CMYK } { 4 } } \cs_new_protected:Npn \color_show:n - { \__color_show:Nn \msg_show:nnxxxx } + { \__color_show:Nn \msg_show:nneeee } \cs_new_protected:Npn \color_log:n - { \__color_show:Nn \msg_log:nnxxxx } + { \__color_show:Nn \msg_log:nneeee } \cs_new_protected:Npn \__color_show:Nn #1#2 { #1 { color } { show } @@ -30123,14 +30279,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \__pdf_backend_object_write:nnn {#1} {#2} {#3} \bool_gset_true:N \g__pdf_init_bool } -\cs_generate_variant:Nn \pdf_object_write:nnn { nnx } +\cs_generate_variant:Nn \pdf_object_write:nnn { nne , nnx } \cs_new:Npn \pdf_object_ref:n #1 { \__pdf_backend_object_ref:n {#1} } \cs_new_protected:Npn \pdf_object_unnamed_write:nn #1#2 { \__pdf_backend_object_now:nn {#1} {#2} \bool_gset_true:N \g__pdf_init_bool } -\cs_generate_variant:Nn \pdf_object_unnamed_write:nn { nx } +\cs_generate_variant:Nn \pdf_object_unnamed_write:nn { ne , nx } \cs_new:Npn \pdf_object_ref_last: { \__pdf_backend_object_last: } \prg_new_conditional:Npnn \pdf_object_if_exist:n #1 { p , T , F , TF } { @@ -30247,7 +30403,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \pdf_object_write:nn #1#2 { - \exp_args:Nnx \__pdf_backend_object_write:nnn + \exp_args:Nne \__pdf_backend_object_write:nnn {#1} { \prop_item:Nn \g__pdf_object_prop {#1} } {#2} \bool_gset_true:N \g__pdf_init_bool } @@ -30304,7 +30460,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \coffin_if_exist:NTF #1 { #2 } { - \msg_error:nnx { coffin } { unknown } + \msg_error:nne { coffin } { unknown } { \token_to_str:N #1 } } } @@ -30389,7 +30545,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } #5 #1 \vbox_set_top:Nn \l__coffin_internal_box { \vbox_unpack:N #1 } - \__coffin_set_pole:Nnx #1 { T } + \__coffin_set_pole:Nne #1 { T } { { 0pt } { @@ -30402,7 +30558,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \box_clear:N \l__coffin_internal_box } } -\cs_new_protected:Npx \__coffin_set_vertical_aux: +\cs_new_protected:Npe \__coffin_set_vertical_aux: { \bool_lazy_and:nnT { \cs_if_exist_p:N \fmtname } @@ -30466,7 +30622,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #5 #6 #1 \vbox_set_top:Nn \l__coffin_internal_box { \vbox_unpack:N #1 } - \__coffin_set_pole:Nnx #1 { T } + \__coffin_set_pole:Nne #1 { T } { { 0pt } { @@ -30524,7 +30680,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_get:cnNF { coffin ~ \__coffin_to_value:N #1 ~ poles } {#2} #3 { - \msg_error:nnxx { coffin } { unknown-pole } + \msg_error:nnee { coffin } { unknown-pole } { \exp_not:n {#2} } { \token_to_str:N #1 } \tl_set:Nn #3 { { 0pt } { 0pt } { 0pt } { 0pt } } } @@ -30544,10 +30700,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \c__coffin_poles_prop } \cs_new_protected:Npn \coffin_set_horizontal_pole:Nnn #1#2#3 - { \__coffin_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_put:cnx } + { \__coffin_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_put:cne } \cs_generate_variant:Nn \coffin_set_horizontal_pole:Nnn { c } \cs_new_protected:Npn \coffin_gset_horizontal_pole:Nnn #1#2#3 - { \__coffin_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_gput:cnx } + { \__coffin_set_horizontal_pole:NnnN #1 {#2} {#3} \prop_gput:cne } \cs_generate_variant:Nn \coffin_gset_horizontal_pole:Nnn { c } \cs_new_protected:Npn \__coffin_set_horizontal_pole:NnnN #1#2#3#4 { @@ -30562,10 +30718,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_protected:Npn \coffin_set_vertical_pole:Nnn #1#2#3 - { \__coffin_set_vertical_pole:NnnN #1 {#2} {#3} \prop_put:cnx } + { \__coffin_set_vertical_pole:NnnN #1 {#2} {#3} \prop_put:cne } \cs_generate_variant:Nn \coffin_set_vertical_pole:Nnn { c } \cs_new_protected:Npn \coffin_gset_vertical_pole:Nnn #1#2#3 - { \__coffin_set_vertical_pole:NnnN #1 {#2} {#3} \prop_gput:cnx } + { \__coffin_set_vertical_pole:NnnN #1 {#2} {#3} \prop_gput:cne } \cs_generate_variant:Nn \coffin_gset_vertical_pole:Nnn { c } \cs_new_protected:Npn \__coffin_set_vertical_pole:NnnN #1#2#3#4 { @@ -30584,7 +30740,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_put:cnn { coffin ~ \__coffin_to_value:N #1 ~ poles } {#2} {#3} } -\cs_generate_variant:Nn \__coffin_set_pole:Nnn { Nnx } +\cs_generate_variant:Nn \__coffin_set_pole:Nnn { Nne } \cs_new_protected:Npn \coffin_reset_poles:N #1 { \__coffin_reset_structure:N #1 @@ -30598,9 +30754,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__coffin_gupdate_poles:N #1 } \cs_new_protected:Npn \__coffin_update_corners:N #1 - { \__coffin_update_corners:NN #1 \prop_put:Nnx } + { \__coffin_update_corners:NN #1 \prop_put:Nne } \cs_new_protected:Npn \__coffin_gupdate_corners:N #1 - { \__coffin_update_corners:NN #1 \prop_gput:Nnx } + { \__coffin_update_corners:NN #1 \prop_gput:Nne } \cs_new_protected:Npn \__coffin_update_corners:NN #1#2 { \exp_args:Nc \__coffin_update_corners:NNN @@ -30629,9 +30785,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_protected:Npn \__coffin_update_poles:N #1 - { \__coffin_update_poles:NN #1 \prop_put:Nnx } + { \__coffin_update_poles:NN #1 \prop_put:Nne } \cs_new_protected:Npn \__coffin_gupdate_poles:N #1 - { \__coffin_update_poles:NN #1 \prop_gput:Nnx } + { \__coffin_update_poles:NN #1 \prop_gput:Nne } \cs_new_protected:Npn \__coffin_update_poles:NN #1#2 { \exp_args:Nc \__coffin_update_poles:NNN @@ -30734,7 +30890,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } } { - \use:x + \use:e { \__coffin_calculate_intersection:nnnnnn { \dim_to_fp:n {#4} / \dim_to_fp:n {#3} } @@ -30831,17 +30987,17 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__coffin_set_bounding:N #1 { - \prop_put:Nnx \l__coffin_bounding_prop { tl } + \prop_put:Nne \l__coffin_bounding_prop { tl } { { 0pt } { \dim_eval:n { \box_ht:N #1 } } } - \prop_put:Nnx \l__coffin_bounding_prop { tr } + \prop_put:Nne \l__coffin_bounding_prop { tr } { { \dim_eval:n { \box_wd:N #1 } } { \dim_eval:n { \box_ht:N #1 } } } \dim_set:Nn \l__coffin_internal_dim { -\box_dp:N #1 } - \prop_put:Nnx \l__coffin_bounding_prop { bl } + \prop_put:Nne \l__coffin_bounding_prop { bl } { { 0pt } { \dim_use:N \l__coffin_internal_dim } } - \prop_put:Nnx \l__coffin_bounding_prop { br } + \prop_put:Nne \l__coffin_bounding_prop { br } { { \dim_eval:n { \box_wd:N #1 } } { \dim_use:N \l__coffin_internal_dim } @@ -30850,13 +31006,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__coffin_rotate_bounding:nnn #1#2#3 { \__coffin_rotate_vector:nnNN {#2} {#3} \l__coffin_x_dim \l__coffin_y_dim - \prop_put:Nnx \l__coffin_bounding_prop {#1} + \prop_put:Nne \l__coffin_bounding_prop {#1} { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } } } \cs_new_protected:Npn \__coffin_rotate_corner:Nnnn #1#2#3#4 { \__coffin_rotate_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim - \prop_put:Nnx \l__coffin_corners_prop {#2} + \prop_put:Nne \l__coffin_corners_prop {#2} { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } } } \cs_new_protected:Npn \__coffin_rotate_pole:Nnnnnn #1#2#3#4#5#6 @@ -30864,7 +31020,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__coffin_rotate_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim \__coffin_rotate_vector:nnNN {#5} {#6} \l__coffin_x_prime_dim \l__coffin_y_prime_dim - \prop_put:Nnx \l__coffin_poles_prop {#2} + \prop_put:Nne \l__coffin_poles_prop {#2} { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } { \dim_use:N \l__coffin_x_prime_dim } @@ -30923,7 +31079,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__coffin_shift_corner:Nnnn #1#2#3#4 { - \prop_put:Nnx \l__coffin_corners_prop {#2} + \prop_put:Nne \l__coffin_corners_prop {#2} { { \dim_eval:n { #3 - \l__coffin_left_corner_dim } } { \dim_eval:n { #4 - \l__coffin_bottom_corner_dim } } @@ -30931,7 +31087,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__coffin_shift_pole:Nnnnnn #1#2#3#4#5#6 { - \prop_put:Nnx \l__coffin_poles_prop {#2} + \prop_put:Nne \l__coffin_poles_prop {#2} { { \dim_eval:n { #3 - \l__coffin_left_corner_dim } } { \dim_eval:n { #4 - \l__coffin_bottom_corner_dim } } @@ -31021,13 +31177,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__coffin_scale_corner:Nnnn #1#2#3#4 { \__coffin_scale_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim - \prop_put:Nnx \l__coffin_corners_prop {#2} + \prop_put:Nne \l__coffin_corners_prop {#2} { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } } } \cs_new_protected:Npn \__coffin_scale_pole:Nnnnnn #1#2#3#4#5#6 { \__coffin_scale_vector:nnNN {#3} {#4} \l__coffin_x_dim \l__coffin_y_dim - \prop_put:Nnx \l__coffin_poles_prop {#2} + \prop_put:Nne \l__coffin_poles_prop {#2} { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } {#5} {#6} @@ -31035,14 +31191,14 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__coffin_x_shift_corner:Nnnn #1#2#3#4 { - \prop_put:Nnx \l__coffin_corners_prop {#2} + \prop_put:Nne \l__coffin_corners_prop {#2} { { \dim_eval:n { #3 + \box_wd:N #1 } } {#4} } } \cs_new_protected:Npn \__coffin_x_shift_pole:Nnnnnn #1#2#3#4#5#6 { - \prop_put:Nnx \l__coffin_poles_prop {#2} + \prop_put:Nne \l__coffin_poles_prop {#2} { { \dim_eval:n { #3 + \box_wd:N #1 } } {#4} {#5} {#6} @@ -31172,7 +31328,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_if_in:nnTF {#2} { - } { \tl_set:Nn \l__coffin_internal_tl { {#2} } } { \tl_set:Nn \l__coffin_internal_tl { { #1 - #2 } } } - \exp_last_unbraced:NNo \__coffin_set_pole:Nnx \l__coffin_aligned_coffin + \exp_last_unbraced:NNo \__coffin_set_pole:Nne \l__coffin_aligned_coffin { \l__coffin_internal_tl } { { \dim_use:N \l__coffin_x_dim } { \dim_use:N \l__coffin_y_dim } @@ -31186,7 +31342,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__coffin_offset_corner:Nnnnn #1#2#3#4#5#6 { - \prop_put:cnx + \prop_put:cne { coffin ~ \__coffin_to_value:N \l__coffin_aligned_coffin \c_space_tl corners @@ -31212,11 +31368,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \dim_compare:nNnTF {#2} < {#6} { - \__coffin_set_pole:Nnx #9 { T } + \__coffin_set_pole:Nne #9 { T } { { 0pt } {#6} { 1000pt } { 0pt } } } { - \__coffin_set_pole:Nnx #9 { T } + \__coffin_set_pole:Nne #9 { T } { { 0pt } {#2} { 1000pt } { 0pt } } } } @@ -31224,11 +31380,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \dim_compare:nNnTF {#2} < {#6} { - \__coffin_set_pole:Nnx #9 { B } + \__coffin_set_pole:Nne #9 { B } { { 0pt } {#2} { 1000pt } { 0pt } } } { - \__coffin_set_pole:Nnx #9 { B } + \__coffin_set_pole:Nne #9 { B } { { 0pt } {#6} { 1000pt } { 0pt } } } } @@ -31446,10 +31602,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \box_set_eq:NN \l__coffin_display_coffin \l__coffin_aligned_coffin } \cs_new_protected:Npn \coffin_show_structure:N - { \__coffin_show_structure:NN \msg_show:nnxxxx } + { \__coffin_show_structure:NN \msg_show:nneeee } \cs_generate_variant:Nn \coffin_show_structure:N { c } \cs_new_protected:Npn \coffin_log_structure:N - { \__coffin_show_structure:NN \msg_log:nnxxxx } + { \__coffin_show_structure:NN \msg_log:nneeee } \cs_generate_variant:Nn \coffin_log_structure:N { c } \cs_new_protected:Npn \__coffin_show_structure:NN #1#2 { @@ -31477,10 +31633,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \coffin_log:Nnn #1 \c_max_int \c_max_int } \cs_generate_variant:Nn \coffin_log:N { c } \cs_new_protected:Npn \coffin_show:Nnn - { \__coffin_show:NNNnn \msg_term:nnxxxx \box_show:Nnn } + { \__coffin_show:NNNnn \msg_term:nneeee \box_show:Nnn } \cs_generate_variant:Nn \coffin_show:Nnn { c } \cs_new_protected:Npn \coffin_log:Nnn - { \__coffin_show:NNNnn \msg_log:nnxxxx \box_show:Nnn } + { \__coffin_show:NNNnn \msg_log:nneeee \box_show:Nnn } \cs_generate_variant:Nn \coffin_log:Nnn { c } \cs_new_protected:Npn \__coffin_show:NNNnn #1#2#3#4#5 { @@ -31828,7 +31984,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_set_protected:Npn \__codepoint_data_auxii:w #1 ; #2 ~ #3 \q_stop { - \tl_const:cx + \tl_const:ce { c__codepoint_nfd_ \codepoint_str_generate:n {"#1} _tl } { {"#2} @@ -31868,11 +32024,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \__codepoint_add:nn { lowercase } {#5} \int_compare:nNnF {#4} = { \__codepoint_data_offset:nn {#1} {#6} } { - \tl_const:cx + \tl_const:ce { c__codepoint_titlecase_ \codepoint_str_generate:n {"#1} _tl } { {"#6} { } { } } } - \tl_set:Nx \l__codepoint_next_codepoint_fint_tl + \tl_set:Ne \l__codepoint_next_codepoint_fint_tl { \int_eval:n { "#1 + 1 } } } \cs_set_protected:Npn \__codepoint_add:nn #1#2 @@ -31882,7 +32038,7 @@ Type H <return> for immediate help}\def~{\errmessage{% = \c__codepoint_block_size_int { \__codepoint_save_blocks:nn {#1} { 1 } } } - \cs_set_protected:Npx \__codepoint_data_auxv:nnnnw #1#2#3#4#5 Last> #6 \q_stop + \cs_set_protected:Npe \__codepoint_data_auxv:nnnnw #1#2#3#4#5 Last> #6 \q_stop { \exp_not:N \tl_if_blank:nTF {#6} { @@ -31925,7 +32081,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_compare:nNnF { \int_div_truncate:nn { #2 - #1 } \c__codepoint_block_size_int } = 0 { - \tl_set:cx { l__codepoint_ #3 _block_clist } + \tl_set:ce { l__codepoint_ #3 _block_clist } { \exp_args:NNe \use:nn \use_none:n { \prg_replicate:nn { \c__codepoint_block_size_int } { , #4 } } @@ -31935,7 +32091,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \prg_replicate:nn { \int_mod:nn { #2 - #1 } \c__codepoint_block_size_int } - { \clist_put_right:cx { l__codepoint_ #3 _block_clist } {#4} } + { \clist_put_right:ce { l__codepoint_ #3 _block_clist } {#4} } } \cs_set_protected:Npn \__codepoint_save_blocks:nn #1#2 { @@ -31955,12 +32111,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_use:c { l__codepoint_ #1 _block_tl } _clist } { l__codepoint_ #1 _block_clist } - \tl_set:cx { l__codepoint_ #1 _block_tl } + \tl_set:ce { l__codepoint_ #1 _block_tl } { \int_eval:n { \tl_use:c { l__codepoint_ #1 _block_tl } + 1 } } } \prg_replicate:nn {#2} { - \tl_set:cx { l__codepoint_ #1 _pos_tl } + \tl_set:ce { l__codepoint_ #1 _pos_tl } { \int_eval:n { \tl_use:c { l__codepoint_ #1 _pos_tl } + 1 } } \exp_args:Nc \__kernel_intarray_gset:Nnn { g__codepoint_ #1 _index_intarray } @@ -32055,7 +32211,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \reverse_if:N \if_int_compare:w \int_eval:n { \__kernel_codepoint_data:nn { lowercase } {"#1} + "#1 } = "#3 ~ - \tl_const:cx + \tl_const:ce { c__codepoint_casefold_ \codepoint_str_generate:n {"#1} _tl } { {"#3} { } { } } \fi: @@ -32067,7 +32223,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_set_protected:Npn \__codepoint_data_auxii:w #1 ~ #2 ~ #3 ~ #4 \q_stop { - \tl_const:cx { c__codepoint_casefold_ \codepoint_str_generate:n {"#1} _tl } + \tl_const:ce { c__codepoint_casefold_ \codepoint_str_generate:n {"#1} _tl } { {"#2} {"#3} @@ -32095,7 +32251,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_empty:nF {#4} { - \tl_const:cx { c__codepoint_ #2 case_ \codepoint_str_generate:n {"#1} _tl } + \tl_const:ce { c__codepoint_ #2 case_ \codepoint_str_generate:n {"#1} _tl } { {"#3} {"#4} @@ -32159,7 +32315,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \str_if_empty:NF \l__text_tmpb_str { - \clist_const:cx { c__text_grapheme_ \l__text_tmpb_str _clist } + \clist_const:ce { c__text_grapheme_ \l__text_tmpb_str _clist } { \exp_after:wN \use_none:n \l__text_tmpa_str } \cs_set_nopar:Npn \l__text_tmpa_str { } } @@ -32169,7 +32325,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_set_protected:Npn \__text_data_auxii:w #1 .. #2 .. #3 \q_stop { - \cs_set_nopar:Npx \l__text_tmpa_str + \cs_set_nopar:Npe \l__text_tmpa_str { \l__text_tmpa_str , \tl_trim_spaces:n {#1} .. \tl_trim_spaces:n {#2} @@ -32353,7 +32509,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__text_codepoint_process:nN #1#2 { #1 {#2} } } { - \cs_new:Npx \__text_codepoint_process:nN #1#2 + \cs_new:Npe \__text_codepoint_process:nN #1#2 { \exp_not:N \int_compare:nNnTF {`#2} > { "80 } { @@ -32406,7 +32562,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 {#3} \prg_return_true: \prg_return_false: } - \cs_new:Npx \__text_codepoint_from_chars:Nw #1 + \cs_new:Npe \__text_codepoint_from_chars:Nw #1 { \exp_not:N \if_int_compare:w `#1 > "80 \exp_not:N \exp_stop_f: \sys_if_engine_pdftex:TF @@ -32461,7 +32617,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \l_text_accents_tl \tl_new:N \l_text_letterlike_tl \tl_new:N \l_text_case_exclude_arg_tl -\tl_set:Nx \l_text_case_exclude_arg_tl +\tl_set:Ne \l_text_case_exclude_arg_tl { \exp_not:n { \begin \cite \end \label \ref } \exp_not:c { cite ~ } @@ -32730,7 +32886,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } { \__text_expand_letterlike:NN #1 } } -\cs_new:Npx \__text_expand_cs:N #1 +\cs_new:Npe \__text_expand_cs:N #1 { \exp_not:N \str_if_eq:nnTF {#1} { \exp_not:N \protect } { \exp_not:N \__text_expand_protect:w } @@ -32906,15 +33062,15 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__text_change_case_auxi:nnn #1#2#3 { \exp_args:No \__text_change_case_BCP:nnn { \tl_to_str:n {#3} } {#1} {#2} } -\cs_new:Npx \__text_change_case_BCP:nnn #1#2#3 +\cs_new:Npe \__text_change_case_BCP:nnn #1#2#3 { \exp_not:N \__text_change_case_BCP:nnw {#2} {#3} #1 \tl_to_str:n { -x- -x- } \exp_not:N \q__text_stop } -\use:x +\use:e { \cs_new:Npn \exp_not:N \__text_change_case_BCP:nnw - ##1##2##3 \tl_to_str:n { -x- } ##4 \tl_to_str:n { -x- } ##5 + #1#2#3 \tl_to_str:n { -x- } #4 \tl_to_str:n { -x- } #5 \exp_not:N \q__text_stop } { \__text_change_case_BCP:nnnnw {#1} {#2} {#4} {#3} #3 - - \q__text_stop } @@ -33001,9 +33157,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \__text_change_case_break:w } -\use:x +\use:e { - \cs_new:Npn \exp_not:N \__text_change_case_space:nnw ##1##2 \c_space_tl + \cs_new:Npn \exp_not:N \__text_change_case_space:nnw #1#2 \c_space_tl } { \__text_change_case_store:n { ~ } @@ -33066,9 +33222,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__text_change_case_store:n { {#4} } \__text_change_case_math_loop:nnNw {#1} {#2} #3 } -\use:x +\use:e { - \cs_new:Npn \exp_not:N \__text_change_case_math_space:nnNw ##1##2##3 + \cs_new:Npn \exp_not:N \__text_change_case_math_space:nnNw #1#2#3 \c_space_tl } { @@ -34518,8 +34674,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \__text_map_loop:Nnw #1 { } } -\use:x - { \cs_new:Npn \exp_not:N \__text_map_space:Nnw ##1##2 \c_space_tl } +\use:e + { \cs_new:Npn \exp_not:N \__text_map_space:Nnw #1#2 \c_space_tl } { \__text_map_output:Nn #1 {#2} #1 { ~ } @@ -35037,7 +35193,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_clear_new:c { l__text_purify_ \token_to_str:N #1 _tl } \tl_set:cn { l__text_purify_ \token_to_str:N #1 _tl } {#2} } -\cs_generate_variant:Nn \text_declare_purify_equivalent:Nn { Nx } +\cs_generate_variant:Nn \text_declare_purify_equivalent:Nn { Ne } \tl_map_inline:nn { \fontencoding @@ -35099,14 +35255,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \text_declare_purify_equivalent:Nn \\ { } \tl_map_inline:nn { \{ \} \# \$ \% \_ } - { \text_declare_purify_equivalent:Nx #1 { \cs_to_str:N #1 } } + { \text_declare_purify_equivalent:Ne #1 { \cs_to_str:N #1 } } \text_declare_purify_equivalent:Nn \label { \use_none:n } \group_begin: \char_set_catcode_active:N \~ \use:n { \group_end: - \text_declare_purify_equivalent:Nx ~ { \c_space_tl } + \text_declare_purify_equivalent:Ne ~ { \c_space_tl } } \text_declare_purify_equivalent:Nn \nobreakspace { ~ } \text_declare_purify_equivalent:Nn \ { ~ } @@ -35114,7 +35270,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_protected:Npn \__text_loop:Nn #1#2 { \quark_if_recursion_tail_stop:N #1 - \text_declare_purify_equivalent:Nx #1 + \text_declare_purify_equivalent:Ne #1 { \codepoint_generate:nn {"#2} { \char_value_catcode:n {"#2} } @@ -35167,7 +35323,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_protected:Npn \__text_loop:Nn #1#2 { \quark_if_recursion_tail_stop:N #1 - \tl_const:cx { c__text_purify_ \token_to_str:N #1 _tl } + \tl_const:ce { c__text_purify_ \token_to_str:N #1 _tl } { \codepoint_generate:nn {"#2} { \char_value_catcode:n { "#2 } } } \__text_loop:Nn } @@ -35193,7 +35349,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_protected:Npn \__text_loop:NNn #1#2#3 { \quark_if_recursion_tail_stop:N #1 - \tl_const:cx + \tl_const:ce { c__text_purify_ \token_to_str:N #1 _ \token_to_str:N #2 _tl } { \codepoint_generate:nn {"#3} { \char_value_catcode:n { "#3 } } } \__text_loop:NNn @@ -35411,9 +35567,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_end: %% File: l3candidates.dtx \cs_new_protected:Npn \seq_set_filter:NNn - { \__seq_set_filter:NNNn \__kernel_tl_set:Nx } + { \__seq_set_filter:NNNn \__kernel_tl_set:Ne } \cs_new_protected:Npn \seq_gset_filter:NNn - { \__seq_set_filter:NNNn \__kernel_tl_gset:Nx } + { \__seq_set_filter:NNNn \__kernel_tl_gset:Ne } \cs_new_protected:Npn \__seq_set_filter:NNNn #1#2#3#4 { \__seq_push_item_def:n { \bool_if:nT {#4} { \__seq_wrap_item:n {##1} } } @@ -35421,9 +35577,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__seq_pop_item_def: } \cs_new_protected:Npn \tl_build_begin:N #1 - { \__tl_build_begin:NN \cs_set_nopar:Npx #1 } + { \__tl_build_begin:NN \cs_set_nopar:Npe #1 } \cs_new_protected:Npn \tl_build_gbegin:N #1 - { \__tl_build_begin:NN \cs_gset_nopar:Npx #1 } + { \__tl_build_begin:NN \cs_gset_nopar:Npe #1 } \cs_new_protected:Npn \__tl_build_begin:NN #1#2 { \exp_args:Nc \__tl_build_begin:NNN { \cs_to_str:N #2 ' } #2 #1 } \cs_new_protected:Npn \__tl_build_begin:NNN #1#2#3 @@ -35439,24 +35595,16 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \tl_build_gclear:N \tl_build_gbegin:N \cs_new_protected:Npn \tl_build_put_right:Nn #1#2 { - \cs_set_nopar:Npx #1 + \cs_set_nopar:Npe #1 { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 #2 } } } -\cs_new_protected:Npn \tl_build_put_right:Nx #1#2 - { - \cs_set_nopar:Npx #1 - { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 } #2 } - } +\cs_generate_variant:Nn \tl_build_put_right:Nn { Ne , Nx } \cs_new_protected:Npn \tl_build_gput_right:Nn #1#2 { - \cs_gset_nopar:Npx #1 + \cs_gset_nopar:Npe #1 { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 #2 } } } -\cs_new_protected:Npn \tl_build_gput_right:Nx #1#2 - { - \cs_gset_nopar:Npx #1 - { \exp_after:wN \exp_not:n \exp_after:wN { \exp:w #1 } #2 } - } +\cs_generate_variant:Nn \tl_build_gput_right:Nn { Ne , Nx } \cs_new_protected:Npn \__tl_build_last:NNn #1#2 { \if_false: { { \fi: @@ -35478,11 +35626,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__tl_build_put:nw #1#2 \__tl_build_last:NNn #3#4#5 { #2 \__tl_build_last:NNn #3 #4 { #1 #5 } } \cs_new_protected:Npn \tl_build_put_left:Nn #1 - { \__tl_build_put_left:NNn \cs_set_nopar:Npx #1 } -\cs_generate_variant:Nn \tl_build_put_left:Nn { Nx } + { \__tl_build_put_left:NNn \cs_set_nopar:Npe #1 } +\cs_generate_variant:Nn \tl_build_put_left:Nn { Ne , Nx } \cs_new_protected:Npn \tl_build_gput_left:Nn #1 - { \__tl_build_put_left:NNn \cs_gset_nopar:Npx #1 } -\cs_generate_variant:Nn \tl_build_gput_left:Nn { Nx } + { \__tl_build_put_left:NNn \cs_gset_nopar:Npe #1 } +\cs_generate_variant:Nn \tl_build_gput_left:Nn { Ne , Nx } \cs_new_protected:Npn \__tl_build_put_left:NNn #1#2#3 { #1 #2 @@ -35495,7 +35643,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_protected:Npn \tl_build_get:NN - { \__tl_build_get:NNN \__kernel_tl_set:Nx } + { \__tl_build_get:NNN \__kernel_tl_set:Ne } \cs_new_protected:Npn \__tl_build_get:NNN #1#2#3 { #1 #3 { \if_false: { \fi: \exp_after:wN \__tl_build_get:w #2 } } } \cs_new:Npn \__tl_build_get:w #1 \__tl_build_last:NNn #2#3#4 @@ -35510,12 +35658,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \exp_not:n \exp_after:wN { \if_false: } \fi: } \cs_new_protected:Npn \tl_build_end:N #1 { - \__tl_build_get:NNN \__kernel_tl_set:Nx #1 #1 + \__tl_build_get:NNN \__kernel_tl_set:Ne #1 #1 \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_clear:N } \cs_new_protected:Npn \tl_build_gend:N #1 { - \__tl_build_get:NNN \__kernel_tl_gset:Nx #1 #1 + \__tl_build_get:NNN \__kernel_tl_gset:Ne #1 #1 \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_gclear:N } \cs_new_protected:Npn \__tl_build_end_loop:NN #1#2 @@ -35571,11 +35719,11 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__deprecation_warn_once:nnNnn #1#2#3#4#5 { - \cs_gset_protected:Npx #3 + \cs_gset_protected:Npe #3 { \__kernel_if_debug:TF { - \exp_not:N \msg_warning:nnxxx + \exp_not:N \msg_warning:nneee { deprecation } { deprecated-command } {#1} { \token_to_str:N #3 } @@ -35602,7 +35750,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_not:N \msg_expandable_error:nnnnn { deprecation } { deprecated-command } { \tl_to_str:n {#3} } { \token_to_str:N #1 } { \tl_to_str:n {#2} } - \exp_not:N \msg_error:nnxxx + \exp_not:N \msg_error:nneee { deprecation } { deprecated-command } { \tl_to_str:n {#3} } { \token_to_str:N #1 } { \tl_to_str:n {#2} } } @@ -35932,25 +36080,25 @@ Type H <return> for immediate help}\def~{\errmessage{% { meaning } { meaning_remove } } { - \use:x + \use:e { \__kernel_patch_deprecation:nnNNpn { 2022-01-11 } { \peek_remove_spaces:n } - \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NTF } ####1####2####3 + \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NTF } ##1##2##3 { \peek_remove_spaces:n - { \exp_not:c { peek_ #1 :NTF } ####1 {####2} {####3} } + { \exp_not:c { peek_ #1 :NTF } ##1 {##2} {##3} } } \__kernel_patch_deprecation:nnNNpn { 2022-01-11 } { \peek_remove_spaces:n } - \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NT } ####1####2 + \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NT } ##1##2 { \peek_remove_spaces:n - { \exp_not:c { peek_ #1 :NT } ####1 {####2} } + { \exp_not:c { peek_ #1 :NT } ##1 {##2} } } \__kernel_patch_deprecation:nnNNpn { 2022-01-11 } { \peek_remove_spaces:n } - \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NF } ####1####2 + \cs_gset_protected:Npn \exp_not:c { peek_ #1 _ignore_spaces:NF } ##1##2 { \peek_remove_spaces:n - { \exp_not:c { peek_ #1 :NF } ####1 {####2} } + { \exp_not:c { peek_ #1 :NF } ##1 {##2} } } } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 45d89a2b1da..84a815a5fe0 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{2023-08-29}% +\def\ExplFileDate{2023-10-10}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 @@ -88,7 +88,7 @@ \cs_set_protected:Npn \ProvidesExplFileAux ##1##2##3##4 { \group_end: - \iow_log:x { File:~##1~##2~v##3~##4 } + \iow_log:e { File:~##1~##2~v##3~##4 } } \tex_input:D #1 .def \scan_stop: } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 2cbd97f253c..fc9349d64ff 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{2023-08-29}% +\def\ExplFileDate{2023-10-10}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 @@ -151,12 +151,12 @@ } \cs_gset_protected:Npn \@expl@push@filename@@ { - \exp_args:Nx \__kernel_file_input_push:n + \exp_args:Ne \__kernel_file_input_push:n { \tl_to_str:N \@currname . \tl_to_str:N \@currext } - \tl_put_left:Nx \l__expl_status_stack_tl + \tl_put_left:Ne \l__expl_status_stack_tl { \bool_if:NTF \l__kernel_expl_bool { 1 } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index ddd58a9acb0..2e3d4947d8b 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{2023-08-29}% +\def\ExplFileDate{2023-10-10}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% @@ -178,12 +178,12 @@ } \cs_gset_protected:Npn \@expl@push@filename@@ { - \exp_args:Nx \__kernel_file_input_push:n + \exp_args:Ne \__kernel_file_input_push:n { \tl_to_str:N \@currname . \tl_to_str:N \@currext } - \tl_put_left:Nx \l__expl_status_stack_tl + \tl_put_left:Ne \l__expl_status_stack_tl { \bool_if:NTF \l__kernel_expl_bool { 1 } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def index af741efb155..5a506c6cb41 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def @@ -71,7 +71,7 @@ } \cs_set_protected:Npn \debug_resume: { - \__kernel_tl_set:Nx \l__debug_suspended_tl + \__kernel_tl_set:Ne \l__debug_suspended_tl { \tl_tail:N \l__debug_suspended_tl } \tl_if_empty:NT \l__debug_suspended_tl { @@ -93,7 +93,7 @@ \__debug_suspended:T \use_none:nnn \cs_if_exist:NF ##1 { - \msg_error:nnx { debug } { non-declared-variable } + \msg_error:nne { debug } { non-declared-variable } { \token_to_str:N ##1 } } } @@ -102,7 +102,7 @@ \__debug_suspended:T \use_none:nnn \cs_if_exist:NF ##1 { - \msg_error:nnx { kernel } { command-not-defined } + \msg_error:nne { kernel } { command-not-defined } { \token_to_str:N ##1 } } } @@ -163,7 +163,7 @@ \if:w #1 \scan_stop: \cs_gset_nopar:Npn #1 {#2} \else: - \msg_error:nnxxx { debug } { local-global } + \msg_error:nneee { debug } { local-global } {#1} {#2} { \iow_char:N \\ #3 } \fi: \fi: @@ -171,12 +171,12 @@ \use:c { __debug_check-declarations_off: } \cs_new_protected:cpn { __debug_log-functions_on: } { - \cs_set_protected:Npn \__kernel_debug_log:x - { \__debug_suspended:T \use_none:nn \iow_log:x } + \cs_set_protected:Npn \__kernel_debug_log:e + { \__debug_suspended:T \use_none:nn \iow_log:e } } \cs_new_protected:cpn { __debug_log-functions_off: } - { \cs_set_protected:Npn \__kernel_debug_log:x { \use_none:n } } -\cs_new_protected:Npn \__kernel_debug_log:x { \use_none:n } + { \cs_set_protected:Npn \__kernel_debug_log:e { \use_none:n } } +\cs_new_protected:Npn \__kernel_debug_log:e { \use_none:n } \cs_new_protected:cpn { __debug_check-expressions_on: } { \cs_set:Npn \__kernel_chk_expr:nNnN ##1##2 @@ -213,11 +213,11 @@ \tl_new:N \l__debug_tmpb_tl \cs_new_protected:Npn \__debug_generate_parameter_list:NNN #1#2#3 { - \__kernel_tl_set:Nx \l__debug_internal_tl + \__kernel_tl_set:Ne \l__debug_internal_tl { \exp_last_unbraced:Nf \use_ii:nnn \cs_split_function:N #1 } - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \exp_args:NV \__debug_build_parm_text:n \l__debug_internal_tl } - \__kernel_tl_set:Nx #3 + \__kernel_tl_set:Ne #3 { \exp_args:NV \__debug_build_arg_list:n \l__debug_internal_tl } } \cs_new:Npn \__debug_build_parm_text:n #1 @@ -317,7 +317,7 @@ { \cs_gset_eq:cN { __debug_ \cs_to_str:N #1 } #1 \__debug_generate_parameter_list:NNN #1 \l__debug_tmpa_tl \l__debug_tmpb_tl - \exp_args:Nx \tex_scantokens:D + \exp_args:Ne \tex_scantokens:D { \tex_global:D \cs_prefix_spec:N #1 \tex_def:D \exp_not:N #1 @@ -332,23 +332,23 @@ } \cs_set_protected:Npn \__debug_add_to_debug_code:Nnn #1#2#3 { - \use:x + \use:e { \cs_set:Npn \exp_not:N \__debug_tmp:w - ####1 \tl_to_str:n { macro: } - ####2 \tl_to_str:n { -> } - ####3 \c_backslash_str \tl_to_str:n { __debug_ } + ##1 \tl_to_str:n { macro: } + ##2 \tl_to_str:n { -> } + ##3 \c_backslash_str \tl_to_str:n { __debug_ } \cs_to_str:N #1 - ####4 \s__debug_stop + ##4 \s__debug_stop { - \exp_not:N \exp_args:Nx \exp_not:N \tex_scantokens:D + \exp_not:N \exp_args:Ne \exp_not:N \tex_scantokens:D { - \tex_global:D ####1 - \tex_def:D \exp_not:N #1 ####2 + \tex_global:D ##1 + \tex_def:D \exp_not:N #1 ##2 { - ####3 \tl_to_str:n {#2} + ##3 \tl_to_str:n {#2} \c_backslash_str __debug_ \cs_to_str:N #1 - ####4 \tl_to_str:n {#3} + ##4 \tl_to_str:n {#3} } } } @@ -372,7 +372,7 @@ } \cs_set_protected:Npn \__debug_patch_weird:Nnn #1#2#3 { - \use:x + \use:e { \tex_endlinechar:D -1 \scan_stop: \exp_not:N \tex_scantokens:D @@ -423,8 +423,8 @@ \tl_concat:NNN \tl_gconcat:NNN } -\cs_gset_protected:Npn \__kernel_tl_set:Nx { \cs_set_nopar:Npx } -\cs_gset_protected:Npn \__kernel_tl_gset:Nx { \cs_gset_nopar:Npx } +\cs_gset_protected:Npn \__kernel_tl_set:Ne { \cs_set_nopar:Npe } +\cs_gset_protected:Npn \__kernel_tl_gset:Ne { \cs_gset_nopar:Npe } \__kernel_patch:nnn { \__kernel_chk_var_local:N #1 } { } @@ -466,20 +466,21 @@ \skip_set_eq:NN \skip_add:Nn \skip_sub:Nn - \__kernel_tl_set:Nx + \__kernel_tl_set:Ne \tl_clear:N \tl_set_eq:NN \tl_put_left:Nn \tl_put_left:NV + \tl_put_left:Nv + \tl_put_left:Ne \tl_put_left:No - \tl_put_left:Nx \tl_put_right:Nn \tl_put_right:NV + \tl_put_right:Nv + \tl_put_right:Ne \tl_put_right:No - \tl_put_right:Nx \tl_build_begin:N \tl_build_put_right:Nn - \tl_build_put_right:Nx \tl_build_put_left:Nn \vbox_set:Nn \vbox_set_top:Nn @@ -530,20 +531,21 @@ \skip_gset_eq:NN \skip_gadd:Nn \skip_gsub:Nn - \__kernel_tl_gset:Nx + \__kernel_tl_gset:Ne \tl_gclear:N \tl_gset_eq:NN \tl_gput_left:Nn \tl_gput_left:NV + \tl_gput_left:Nv + \tl_gput_left:Ne \tl_gput_left:No - \tl_gput_left:Nx \tl_gput_right:Nn \tl_gput_right:NV + \tl_gput_right:Nv + \tl_gput_right:Ne \tl_gput_right:No - \tl_gput_right:Nx \tl_build_gbegin:N \tl_build_gput_right:Nn - \tl_build_gput_right:Nx \tl_build_gput_left:Nn \vbox_gset:Nn \vbox_gset_top:Nn @@ -564,7 +566,6 @@ \muskip_const:Nn \skip_const:Nn \tl_const:Nn - \tl_const:Nx } \__kernel_patch:nnn { \__kernel_chk_flag_exist:n {#1} } @@ -601,7 +602,7 @@ \__kernel_patch:nnn { } { - \__kernel_debug_log:x + \__kernel_debug_log:e { Defining~\token_to_str:N #1~ \msg_line_context: } } { \__kernel_chk_if_free_cs:N } @@ -609,7 +610,7 @@ { \cs_if_free:NF #4 { - \__kernel_debug_log:x + \__kernel_debug_log:e { Variant~\token_to_str:N #4~% already~defined;~ not~ changing~ it~ \msg_line_context: @@ -621,14 +622,14 @@ \__kernel_patch:nnn { \cs_if_exist:cF { \c__keys_code_root_str #1 } - { \__kernel_debug_log:x { Defining~key~#1~\msg_line_context: } } + { \__kernel_debug_log:e { Defining~key~#1~\msg_line_context: } } } { } { \__keys_cmd_set_direct:nn } \__kernel_patch:nnn { } { - \__kernel_debug_log:x + \__kernel_debug_log:e { Defining~message~ #1 / #2 ~\msg_line_context: } } { \__msg_chk_free:nn } @@ -652,7 +653,7 @@ { \__regex_trace_push:nnN { regex } { 1 } \__regex_escape_use:nnnn \group_begin: - \__kernel_tl_set:Nx \l__regex_internal_a_tl + \__kernel_tl_set:Ne \l__regex_internal_a_tl { \__regex_trace_pop:nnN { regex } { 1 } \__regex_escape_use:nnnn } \use_none:nnn } @@ -674,7 +675,7 @@ { \__regex_build_for_cs:n } \__kernel_patch:nnn { - \__regex_trace:nnx { regex } { 2 } + \__regex_trace:nne { regex } { 2 } { regex~new~state~ L=\int_use:N \l__regex_left_state_int ~ -> ~ @@ -696,24 +697,24 @@ \__kernel_patch:nnn { \__regex_trace_push:nnN { regex } { 1 } \__regex_match:n - \__regex_trace:nnx { regex } { 1 } { analyzing~query~token~list } + \__regex_trace:nne { regex } { 1 } { analyzing~query~token~list } } { \__regex_trace_pop:nnN { regex } { 1 } \__regex_match:n } { \__regex_match:n } \__kernel_patch:nnn { \__regex_trace_push:nnN { regex } { 1 } \__regex_match_cs:n - \__regex_trace:nnx { regex } { 1 } { analyzing~query~token~list } + \__regex_trace:nne { regex } { 1 } { analyzing~query~token~list } } { \__regex_trace_pop:nnN { regex } { 1 } \__regex_match_cs:n } { \__regex_match_cs:n } \__kernel_patch:nnn - { \__regex_trace:nnx { regex } { 1 } { initializing } } + { \__regex_trace:nne { regex } { 1 } { initializing } } { } { \__regex_match_init: } \__kernel_patch:nnn { - \__regex_trace:nnx { regex } { 2 } + \__regex_trace:nne { regex } { 2 } { state~\int_use:N \l__regex_curr_state_int } } { } @@ -734,7 +735,7 @@ { \char_set_catcode_parameter:N \# \tex_endlinechar:D -1 \scan_stop: - \exp_args:Nx \tex_scantokens:D + \exp_args:Ne \tex_scantokens:D { \tex_global:D \cs_prefix_spec:N #1 \tex_def:D \exp_not:N #1 \cs_parameter_spec:N #1 @@ -746,7 +747,7 @@ { \tl_map_inline:nn {#1} { - \exp_args:NNx \__kernel_patch:Nn ##1 + \exp_args:NNe \__kernel_patch:Nn ##1 { { \c_hash_str 1 } { @@ -805,7 +806,7 @@ { \tl_map_inline:nn {#1} { - \exp_args:NNx \__kernel_patch:Nn ##1 + \exp_args:NNe \__kernel_patch:Nn ##1 { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } @@ -850,7 +851,7 @@ { \tl_map_inline:nn {#1} { - \exp_args:NNx \__kernel_patch:Nn ##1 + \exp_args:NNe \__kernel_patch:Nn ##1 { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } @@ -883,7 +884,7 @@ { \clist_map_inline:nn { :nNnT , :nNnF , :nNnTF , _p:nNn } { - \exp_args:Ncx \__kernel_patch:Nn { #1 ##1 } + \exp_args:Nce \__kernel_patch:Nn { #1 ##1 } { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } @@ -905,7 +906,7 @@ { \clist_map_inline:nn { :nT , :nF , :nTF , _p:n } { - \exp_args:Ncx \__kernel_patch:Nn { #1 ##1 } + \exp_args:Nce \__kernel_patch:Nn { #1 ##1 } { { \exp_not:N \__kernel_chk_expr:nNnN { \c_hash_str 1 } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 663dc7b91e5..4191b7df9c2 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -120,9 +120,6 @@ \cs_generate_variant:Nn \tl_replace_once:Nnn { Noo } \cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV } \cs_generate_variant:Nn \tl_to_str:n { f , o } -\cs_generate_variant:Nn \prop_get:NnNTF { Nx } -\cs_generate_variant:Nn \prop_put:Nnn { Nx } -\cs_generate_variant:Nn \prop_gput:Nnn { NVx } \prg_new_protected_conditional:Npnn \__codedoc_if_almost_str:n #1 { TF , T , F } { \int_compare:nNnTF @@ -135,7 +132,7 @@ \cs_new_protected:Npn \__codedoc_trim_right:Nn #1#2 { \cs_set:Npn \__codedoc_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} } - \__kernel_tl_set:Nx #1 { \exp_after:wN \__codedoc_tmp:w #1 #2 \q_stop } + \__kernel_tl_set:Ne #1 { \exp_after:wN \__codedoc_tmp:w #1 #2 \q_stop } } \cs_generate_variant:Nn \__codedoc_trim_right:Nn { No } \prg_new_protected_conditional:Npnn \__codedoc_str_if_begin:nn #1#2 { TF , T , F } @@ -156,7 +153,7 @@ #1 \g__codedoc_module_name_tl } } -\cs_new_protected:Npx \__codedoc_replace_at_at_aux:Nn #1#2 +\cs_new_protected:Npe \__codedoc_replace_at_at_aux:Nn #1#2 { \tl_replace_all:Nnn #1 { \token_to_str:N @ } { @ } \tl_replace_all:Nnn #1 { \token_to_str:N _ } { _ } @@ -190,7 +187,7 @@ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl _ \__codedoc_trim_right:Nn \l__codedoc_detect_internals_tl : \__codedoc_trim_right:No \l__codedoc_detect_internals_tl { \token_to_str:N : } - \msg_warning:nnxxx { l3doc } { foreign-internal } + \msg_warning:nneee { l3doc } { foreign-internal } { \tl_to_str:N \l__codedoc_detect_internals_cs_tl } { \tl_to_str:N \l__codedoc_detect_internals_tl } { \tl_to_str:N \g__codedoc_module_name_tl } @@ -270,14 +267,14 @@ \__codedoc_if_almost_str:nTF {#1} { \__codedoc_key_get_base_TF:nN {#1} \l__codedoc_tmpa_tl - \__kernel_tl_set:Nx #2 + \__kernel_tl_set:Ne #2 { \__codedoc_split_function_do:on \l__codedoc_tmpa_tl { \__codedoc_base_form_aux:nnN } } } { \tl_set:Nn #2 {#1} } } -\cs_new:Npx \__codedoc_key_get_base_TF:nN #1#2 +\cs_new:Npe \__codedoc_key_get_base_TF:nN #1#2 { - \__kernel_tl_set:Nx #2 { \exp_not:N \tl_to_str:n {#1} } + \__kernel_tl_set:Ne #2 { \exp_not:N \tl_to_str:n {#1} } \tl_if_in:NoF #2 { \tl_to_str:n {:} } { \exp_not:N \prg_break: } \tl_if_in:onT { #2 z } { \tl_to_str:n {TF} z } @@ -320,7 +317,7 @@ \tl_if_head_eq_charcode:nNTF {#4} : { #2 {#1} } { - \use:x + \use:e { \exp_not:n {#3} { \__codedoc_base_form_aux:nnN {#4} {#5} #6 } @@ -492,7 +489,7 @@ \cs_gset_eq:NN \endverbatim \endVerbatim \cs_set_protected:Npn \ifnot@excluded { - \exp_args:Nxx \expanded@notin + \exp_args:Nee \expanded@notin { \c_backslash_str \tl_to_str:N \macro@namepart , } { \exp_args:NV \tl_to_str:n \index@excludelist } } @@ -708,7 +705,7 @@ \verbatim@font \__codedoc_if_almost_str:VT \l__codedoc_cmd_tl { - \__kernel_tl_set:Nx \l__codedoc_cmd_tl { \tl_to_str:N \l__codedoc_cmd_tl } + \__kernel_tl_set:Ne \l__codedoc_cmd_tl { \tl_to_str:N \l__codedoc_cmd_tl } \bool_if:NT \g__codedoc_cs_break_bool { \regex_replace_all:nnN @@ -727,13 +724,13 @@ { \quark_if_no_value:NF \l__codedoc_cmd_index_tl { - \__kernel_tl_set:Nx \l__codedoc_cmd_tl + \__kernel_tl_set:Ne \l__codedoc_cmd_tl { \c_backslash_str \exp_not:o { \l__codedoc_cmd_index_tl } } } \exp_args:No \__codedoc_key_get:n { \l__codedoc_cmd_tl } \quark_if_no_value:NF \l__codedoc_cmd_module_tl { - \__kernel_tl_set:Nx \l__codedoc_index_module_tl + \__kernel_tl_set:Ne \l__codedoc_index_module_tl { \tl_to_str:N \l__codedoc_cmd_module_tl } } \__codedoc_special_index_module:ooonN @@ -811,29 +808,29 @@ } \cs_new_protected:Npn \__codedoc_get_hyper_target:nN #1#2 { - \__kernel_tl_set:Nx #2 { \tl_to_str:n {#1} } - \tl_replace_all:Nxn #2 { \c_underscore_str } { / } - \tl_remove_all:Nx #2 { \c_backslash_str } + \__kernel_tl_set:Ne #2 { \tl_to_str:n {#1} } + \tl_replace_all:Nen #2 { \c_underscore_str } { / } + \tl_remove_all:Ne #2 { \c_backslash_str } \tl_put_left:Nn #2 { doc/function// } } -\cs_generate_variant:Nn \__codedoc_get_hyper_target:nN { o , x } +\cs_generate_variant:Nn \__codedoc_get_hyper_target:nN { o , e } \cs_new_protected:Npn \__codedoc_names_get_seq:nN #1#2 { - \__kernel_tl_set:Nx \l__codedoc_tmpa_tl { \tl_to_str:n {#1} } + \__kernel_tl_set:Ne \l__codedoc_tmpa_tl { \tl_to_str:n {#1} } \bool_if:NTF \l__codedoc_names_verb_bool { \seq_clear:N #2 \seq_put_right:NV #2 \l__codedoc_tmpa_tl } { - \tl_remove_all:Nx \l__codedoc_tmpa_tl + \tl_remove_all:Ne \l__codedoc_tmpa_tl { \iow_char:N \^^M \c_percent_str } - \tl_remove_all:Nx \l__codedoc_tmpa_tl { \tl_to_str:n { ^ ^ A } } - \tl_remove_all:Nx \l__codedoc_tmpa_tl { \iow_char:N \^^I } - \tl_remove_all:Nx \l__codedoc_tmpa_tl { \iow_char:N \^^M } + \tl_remove_all:Ne \l__codedoc_tmpa_tl { \tl_to_str:n { ^ ^ A } } + \tl_remove_all:Ne \l__codedoc_tmpa_tl { \iow_char:N \^^I } + \tl_remove_all:Ne \l__codedoc_tmpa_tl { \iow_char:N \^^M } \__codedoc_detect_internals:N \l__codedoc_tmpa_tl \__codedoc_replace_at_at:N \l__codedoc_tmpa_tl - \exp_args:NNx \seq_set_from_clist:Nn #2 + \exp_args:NNe \seq_set_from_clist:Nn #2 { \tl_to_str:N \l__codedoc_tmpa_tl } } } @@ -857,14 +854,14 @@ \tl_if_head_eq_charcode:nNTF {#2} : { \__codedoc_names_parse_aux:nnn {#4} {#4} { \scan_stop: } } { - \exp_args:Nx \__codedoc_names_parse_aux:nnn + \exp_args:Ne \__codedoc_names_parse_aux:nnn { \__codedoc_base_form_aux:nnN {#1} {#2} #3 } {#1} {#2} } } { \bool_if:NT \l__codedoc_macro_TF_bool - { \msg_error:nnx { l3doc } { no-signature-TF } {#4} } + { \msg_error:nne { l3doc } { no-signature-TF } {#4} } \__codedoc_names_parse_aux:nnn {#4} {#4} { \scan_stop: } } } @@ -895,12 +892,12 @@ \str_if_eq:VnTF \l__codedoc_tmpa_tl { \scan_stop: } { \seq_gclear:N \g__codedoc_variants_seq - \__codedoc_names_typeset_auxii:x { \g__codedoc_base_name_tl } + \__codedoc_names_typeset_auxii:e { \g__codedoc_base_name_tl } } { \seq_gset_eq:NN \g__codedoc_variants_seq #1 \seq_gpop:NN \g__codedoc_variants_seq \l__codedoc_tmpb_tl - \__codedoc_names_typeset_auxii:x + \__codedoc_names_typeset_auxii:e { \g__codedoc_base_name_tl : \l__codedoc_tmpb_tl } } } @@ -908,7 +905,7 @@ { \bool_if:NT \l__codedoc_macro_pTF_bool { - \__codedoc_names_typeset_block:xN + \__codedoc_names_typeset_block:eN { \__codedoc_predicate_from_base:n {#1} } \c_false_bool } @@ -916,14 +913,14 @@ { \__codedoc_names_typeset_block:nN {#1} \c_false_bool } \__codedoc_names_typeset_block:nN {#1} \l__codedoc_macro_TF_bool } -\cs_generate_variant:Nn \__codedoc_names_typeset_auxii:n { x } +\cs_generate_variant:Nn \__codedoc_names_typeset_auxii:n { e } \cs_new_protected:Npn \__codedoc_names_typeset_block:nN { \int_compare:nNnTF \l__codedoc_nested_macro_int = 0 { \__codedoc_typeset_function_block:nN } { \__codedoc_macro_typeset_block:nN } } -\cs_generate_variant:Nn \__codedoc_names_typeset_block:nN { x } +\cs_generate_variant:Nn \__codedoc_names_typeset_block:nN { e } \prg_new_conditional:Npnn \__codedoc_if_macro_internal:n #1 { p , T , F , TF } { \bool_if:NTF \l__codedoc_macro_internal_set_bool @@ -950,7 +947,7 @@ \seq_set_eq:NN \l__codedoc_tmpa_seq ##1 \seq_pop:NN \l__codedoc_tmpa_seq \l__codedoc_tmpa_tl \seq_get:NN \l__codedoc_tmpa_seq \l__codedoc_tmpb_tl - \exp_args:NNx + \exp_args:NNe \group_end: #1 { @@ -1023,7 +1020,7 @@ \exp_args:No \__codedoc_date_compare:nNnT {#1} > { \c_sys_year_int - \c_sys_month_int - \c_sys_day_int } { - \msg_error:nnxx { l3doc } { future-date } + \msg_error:nnee { l3doc } { future-date } { \tl_to_str:N \l__codedoc_macro_argument_tl } {#1} } @@ -1156,9 +1153,9 @@ } \cs_new_protected:Npn \__codedoc_typeset_function_block:nN #1#2 { - \__codedoc_function_index:x + \__codedoc_function_index:e { #1 \bool_if:NT #2 { \tl_to_str:n {TF} } } - \__codedoc_function_label:xN {#1} #2 + \__codedoc_function_label:eN {#1} #2 #1 \bool_if:NT #2 { \__codedoc_typeset_TF: } \__codedoc_typeset_expandability: @@ -1166,13 +1163,13 @@ { \__codedoc_typeset_variant_list:nN {#1} #2 } \\ } -\cs_generate_variant:Nn \__codedoc_typeset_function_block:nN { x } +\cs_generate_variant:Nn \__codedoc_typeset_function_block:nN { e } \cs_new_protected:Npn \__codedoc_function_index:n #1 { \seq_gput_right:Nn \g_doc_functions_seq {#1} \__codedoc_special_index:nn {#1} { usage } } -\cs_generate_variant:Nn \__codedoc_function_index:n { x } +\cs_generate_variant:Nn \__codedoc_function_index:n { e } \cs_new_protected:Npn \__codedoc_typeset_expandability: { & @@ -1224,7 +1221,7 @@ { \bool_if:NF \l__codedoc_no_label_bool { - \__codedoc_get_hyper_target:xN + \__codedoc_get_hyper_target:eN { \exp_not:n {#1} \bool_if:NT #2 { \tl_to_str:n {TF} } @@ -1233,7 +1230,7 @@ \exp_args:No \label { \l__codedoc_tmpa_tl } } } -\cs_generate_variant:Nn \__codedoc_function_label:nN { x } +\cs_generate_variant:Nn \__codedoc_function_label:nN { e } \cs_new:Npn \__codedoc_typeset_dates: { \bool_lazy_and:nnF @@ -1417,7 +1414,7 @@ \l__codedoc_macro_do_not_index_tl \exp_args:NNV \seq_set_from_clist:Nn \l__codedoc_tmpa_seq \l__codedoc_macro_do_not_index_tl - \__kernel_tl_set:Nx \l__codedoc_macro_do_not_index_tl + \__kernel_tl_set:Ne \l__codedoc_macro_do_not_index_tl { \seq_use:Nn \l__codedoc_tmpa_seq { , } } \exp_args:NV \DoNotIndex \l__codedoc_macro_do_not_index_tl } @@ -1445,7 +1442,7 @@ \__codedoc_macro_single:nNN {#1} \c_true_bool #2 \seq_if_empty:NF \g__codedoc_variants_seq { - \__codedoc_macro_typeset_variant_list:xN + \__codedoc_macro_typeset_variant_list:eN { \__codedoc_get_function_name:n {#1} } #2 } } @@ -1455,13 +1452,13 @@ \seq_map_inline:Nn \g__codedoc_variants_seq { \__codedoc_macro_single:nNN { #1 : ##1 } \c_false_bool #2 } } -\cs_generate_variant:Nn \__codedoc_macro_typeset_variant_list:nN { x } +\cs_generate_variant:Nn \__codedoc_macro_typeset_variant_list:nN { e } \cs_new_protected:Npn \__codedoc_macro_single:nNN #1#2#3 { \tl_set:Nn \saved@macroname {#1} \__codedoc_macro_typeset_one:nN {#1} #3 \bool_if:NT #3 { \DoNotIndex {#1} } - \exp_args:Nx \__codedoc_macro_index:nN + \exp_args:Ne \__codedoc_macro_index:nN { #1 \bool_if:NT #3 { \tl_to_str:n { TF } } } #2 } @@ -1495,7 +1492,7 @@ \cs_new_protected:Npn \__codedoc_print_macroname:nN #1#2 { \strut - \__codedoc_get_hyper_target:xN + \__codedoc_get_hyper_target:eN { \exp_not:n {#1} \bool_if:NT #2 { \tl_to_str:n {TF} } @@ -1565,7 +1562,7 @@ { \__codedoc_test_missing:n {#1} } \cs_new_protected:Npn \__codedoc_test_missing:n #1 { - \__codedoc_test_missing_aux:Nxn + \__codedoc_test_missing_aux:Nen \g__codedoc_missing_tests_prop { \seq_use:Nn \l__codedoc_names_seq { , } } { { \g_file_curr_name_str \c_space_tl (#1) } } @@ -1577,7 +1574,7 @@ { \tl_set:Nn \l__codedoc_tmpa_tl {#3} } \prop_put:Nno #1 {#2} \l__codedoc_tmpa_tl } -\cs_generate_variant:Nn \__codedoc_test_missing_aux:Nnn { Nx } +\cs_generate_variant:Nn \__codedoc_test_missing_aux:Nnn { Ne } \cs_new_protected:Npn \__codedoc_macro_end: { \endtrivlist @@ -1596,7 +1593,7 @@ { \seq_set_filter:NNn \l__codedoc_tmpa_seq \l__codedoc_names_seq { ! \__codedoc_if_macro_internal_p:n {##1} } - \seq_gput_right:Nx \g__codedoc_not_tested_seq + \seq_gput_right:Ne \g__codedoc_not_tested_seq { \seq_use:Nn \l__codedoc_tmpa_seq { , } \bool_if:NTF \l__codedoc_macro_pTF_bool {~(pTF)} @@ -1644,10 +1641,10 @@ \bool_if:NTF \l__codedoc_macro_var_bool {variable} {function} \int_compare:nNnTF \l__codedoc_tmpa_int = 1 {~is~} {s~are~} documented~on~page~ - \__codedoc_get_hyper_target:xN + \__codedoc_get_hyper_target:eN { \seq_item:Nn \g__codedoc_nested_names_seq { 1 } } \l__codedoc_tmpa_tl - \exp_args:Nx \pageref { \l__codedoc_tmpa_tl } . + \exp_args:Ne \pageref { \l__codedoc_tmpa_tl } . } \seq_gclear:N \g__codedoc_nested_names_seq } @@ -1698,6 +1695,31 @@ { \NewDocumentEnvironment{NOTE}{m}{\comment}{\endcomment} } +\providecommand\Hy@footnote@currentHref{} +\prop_new:N\g__codedoc_fnmark_prop +\cs_new_protected:Npn \__codedoc_fn_store: + { + \prop_gput:Nee\g__codedoc_fnmark_prop + {fn\int_use:N\c@footnote}{{\Hy@footnote@currentHref}{\int_use:N\c@footnote}} + } +\cs_new_protected:Npn \__codedoc_fn_restore:n #1 + { + \prop_get:NnN \g__codedoc_fnmark_prop {fn#1}\l__codedoc_tmpa_tl + \tl_gset:Ne\Hy@footnote@currentHref + {\exp_last_unbraced:NV\use_i:nn \l__codedoc_tmpa_tl } + \setcounter{footnote}{\exp_last_unbraced:NV\use_ii:nn \l__codedoc_tmpa_tl} + } + +\cs_generate_variant:Nn \hook_gput_next_code:nn {ne} +\cs_new_protected:Npn \__codedoc_fn_footnote:nn #1 #2 + { + \footnotemark + \__codedoc_fn_store: + \hook_gput_next_code:ne {env/#1/after} + {\exp_not:N\__codedoc_fn_restore:n{\int_use:N\c@footnote}{\exp_not:n{\footnotetext{#2}}}}} + +\AddToHook{env/function/begin}{\def\footnote{\__codedoc_fn_footnote:nn{function}}} +\AddToHook{env/variable/begin}{\def\footnote{\__codedoc_fn_footnote:nn{variable}}} \newenvironment{TemplateInterfaceDescription}[1] { \subsection{The~object~type~`#1'} @@ -1806,7 +1828,7 @@ \@tempswatrue \if@partsw \@tempswafalse - \cs_set:Npx \@tempb {#1} + \cs_set:Npe \@tempb {#1} \clist_map_inline:Nn \@partlist { \if_meaning:w \@tempa \@tempb @@ -1827,7 +1849,7 @@ \part{\currentfile} { \cs_set_eq:NN \ttfamily\relax - \cs_gset:Npx \filekey + \cs_gset:Npe \filekey { \filekey,~ \thepart = { \ttfamily \currentfile } } } \DocInput{\currentfile} @@ -1960,12 +1982,14 @@ \tl_new:N \l__codedoc_doc_def_tl \tl_new:N \l__codedoc_doc_undef_tl \tl_new:N \l__codedoc_undoc_def_tl +\tl_const:Nn \c__codedoc_iow_separator_tl { ---- } +\tl_const:Nn \c__codedoc_iow_midrule_tl { -- } \cs_new_protected:Npn \__codedoc_show_functions_defined: { \bool_lazy_and:nnT { \g__codedoc_typeset_implementation_bool } { \g__codedoc_checkfunc_bool } { - \iow_term:x { \c__codedoc_iow_separator_tl \iow_newline: } + \iow_term:e { \c__codedoc_iow_separator_tl \iow_newline: } \iow_open:Nn \g__codedoc_func_iow { \c_sys_jobname_str .cmds } \tl_clear:N \l__codedoc_doc_def_tl @@ -1975,12 +1999,12 @@ { \seq_if_in:NnTF \g_doc_macros_seq {##1} { - \tl_put_right:Nx \l__codedoc_doc_def_tl + \tl_put_right:Ne \l__codedoc_doc_def_tl { ##1 \iow_newline: } \iow_now:Nn \g__codedoc_func_iow { > ~ ##1 } } { - \tl_put_right:Nx \l__codedoc_doc_undef_tl + \tl_put_right:Ne \l__codedoc_doc_undef_tl { ##1 \iow_newline: } \iow_now:Nn \g__codedoc_func_iow { ! ~ ##1 } } @@ -1989,7 +2013,7 @@ { \seq_if_in:NnF \g_doc_functions_seq {##1} { - \tl_put_right:Nx \l__codedoc_undoc_def_tl + \tl_put_right:Ne \l__codedoc_undoc_def_tl { ##1 \iow_newline: } \iow_now:Nn \g__codedoc_func_iow { ? ~ ##1 } } @@ -2008,7 +2032,7 @@ \l__codedoc_undoc_def_tl \iow_close:N \g__codedoc_func_iow - \iow_term:x { \c__codedoc_iow_separator_tl } + \iow_term:e { \c__codedoc_iow_separator_tl } } } \AtEndDocument { \__codedoc_show_functions_defined: } @@ -2044,7 +2068,7 @@ \iow_newline: \space\space\space\space\space\space * ~ ##1 } - \tl_put_right:Nx \l__codedoc_tmpa_tl + \tl_put_right:Ne \l__codedoc_tmpa_tl { \iow_newline: \iow_newline: The~ following~ macro(s)~ have~ incomplete~ tests: @@ -2062,7 +2086,7 @@ \iow_newline: \space\space\space\space ##1 } - \tl_put_right:Nx \l__codedoc_tmpa_tl + \tl_put_right:Ne \l__codedoc_tmpa_tl { \iow_newline: \iow_newline: @@ -2089,7 +2113,7 @@ \HD@savedestfalse \HD@target \group_end: } -\cs_set_nopar:Npx \theCodelineNo +\cs_set_nopar:Npe \theCodelineNo { \group_begin: \exp_not:N \HD@savedestfalse @@ -2098,7 +2122,7 @@ } \bool_new:N \l__codedoc_allow_indexing_bool \bool_set_true:N \l__codedoc_allow_indexing_bool -\use:x +\use:e { \exp_not:n { \cs_set_nopar:Npn \@starttoc #1 } { @@ -2137,7 +2161,7 @@ { \AtEndDocument { \msg_info:nn { l3doc } { print-index-howto } } } \cs_gset_protected:Npn \it@is@a #1 { - \use:x + \use:e { \__codedoc_special_index_module:nnnnN {#1} @@ -2164,7 +2188,7 @@ \tl_new:N \l__codedoc_index_escaped_key_tl \cs_new_protected:Npn \__codedoc_special_index_module:nnnnN #1#2#3#4#5 { - \use:x + \use:e { \exp_not:n { \__codedoc_special_index_aux:nnnnnn {#1} {#2} } \tl_if_empty:nTF {#3} @@ -2214,7 +2238,7 @@ } \group_begin: \char_set_active_eq:NN - \scan_stop: -\tl_const:Nx \c__codedoc_active_minus_tl { \char_generate:nn { `- } { 13 } } +\tl_const:Ne \c__codedoc_active_minus_tl { \char_generate:nn { `- } { 13 } } \group_end: \cs_new_eq:NN \__codedoc_old_hdpindex:nn \hdpindex \cs_new_eq:NN \__codedoc_old_hdclindex:nnn \hdclindex @@ -2225,7 +2249,7 @@ \cs_new_protected:Npn \__codedoc_hdindex:nn #1#2 { \tl_set:Nn \l__codedoc_tmpa_tl {#2} - \tl_replace_all:Nxn \l__codedoc_tmpa_tl + \tl_replace_all:Nen \l__codedoc_tmpa_tl { \exp_not:V \c__codedoc_active_minus_tl \exp_not:V \c__codedoc_active_minus_tl } { -- } \seq_set_split:NnV \l__codedoc_tmpa_seq { -- } \l__codedoc_tmpa_tl @@ -2239,16 +2263,16 @@ \tl_replace_all:Nnn \l__codedoc_tmpa_tl { MMMM } { \use_none:nn } \tl_if_in:NnT \l__codedoc_tmpa_tl { MMMD } { - \tl_replace_all:Nxn \l__codedoc_tmpa_tl + \tl_replace_all:Nen \l__codedoc_tmpa_tl { \exp_not:V \c__codedoc_active_minus_tl MMMD } { - MMMD } \tl_replace_all:Nnn \l__codedoc_tmpa_tl { - MMMD } { \__codedoc_hdindex_aux:w } } - \use:x { \exp_not:n {#1} { \exp_not:V \l__codedoc_tmpa_tl } } + \use:e { \exp_not:n {#1} { \exp_not:V \l__codedoc_tmpa_tl } } } \cs_new_protected:Npn \__codedoc_hdindex_aux:w #1 M { } \cs_new_protected:Npn \__codedoc_special_index_set:Nn #1#2 { - \__kernel_tl_set:Nx #1 { \tl_to_str:n {#2} } + \__kernel_tl_set:Ne #1 { \tl_to_str:n {#2} } \__codedoc_if_almost_str:nTF {#2} { \tl_replace_all:Non #1 { \tl_to_str:n { __ } } @@ -2257,7 +2281,7 @@ \token_to_str:N \_ \token_to_str:N \_ \token_to_str:N \verb * \verbatimchar } - \exp_args:Nx \tl_map_inline:nn + \exp_args:Ne \tl_map_inline:nn { \tl_to_str:N \verbatimchar \token_to_str:N _ } { \tl_replace_all:Nnn #1 {##1} @@ -2266,7 +2290,7 @@ \token_to_str:N \verb * \verbatimchar } } - \__kernel_tl_set:Nx #1 + \__kernel_tl_set:Ne #1 { \token_to_str:N \verb * \verbatimchar #1 \verbatimchar @@ -2284,14 +2308,14 @@ { \tl_map_inline:nn { \quotechar \actualchar \encapchar \levelchar \bslash } { - \tl_replace_all:Nxn #1 + \tl_replace_all:Nen #1 { \tl_to_str:N ##1 } { \quotechar \tl_to_str:N ##1 } } } \cs_new_protected:Npn \__codedoc_key_get:n #1 { \__codedoc_key_get_base:nN {#1} \l__codedoc_index_macro_tl - \__kernel_tl_set:Nx \l__codedoc_index_key_tl + \__kernel_tl_set:Ne \l__codedoc_index_key_tl { \tl_to_str:N \l__codedoc_index_macro_tl } \tl_clear:N \l__codedoc_index_module_tl \tl_if_in:NoTF \l__codedoc_index_key_tl { \tl_to_str:n { __ } } @@ -2314,14 +2338,14 @@ } \cs_new_protected:Npn \__codedoc_key_pop: { - \__kernel_tl_set:Nx \l__codedoc_index_key_tl + \__kernel_tl_set:Ne \l__codedoc_index_key_tl { \tl_tail:N \l__codedoc_index_key_tl } } \cs_new_protected:Npn \__codedoc_key_trim_module:n #1 { \cs_set:Npn \__codedoc_tmpa:w ##1 #1 ##2 \q_stop { \exp_not:n {##1} } - \__kernel_tl_set:Nx \l__codedoc_index_module_tl + \__kernel_tl_set:Ne \l__codedoc_index_module_tl { \exp_after:wN \__codedoc_tmpa:w \l__codedoc_index_module_tl #1 \q_stop } } \cs_new_protected:Npn \__codedoc_key_drop_underscores: @@ -2340,7 +2364,7 @@ } \cs_new_protected:Npn \__codedoc_key_var: { - \exp_args:Nx \tl_if_head_eq_charcode:nNTF + \exp_args:Ne \tl_if_head_eq_charcode:nNTF { \exp_args:No \str_tail:n \l__codedoc_index_key_tl } _ { \str_case:fn { \str_head:N \l__codedoc_index_key_tl } @@ -2372,7 +2396,7 @@ } } \clist_new:N \g__codedoc_non_modules_clist -\clist_gset:Nx \g__codedoc_non_modules_clist +\clist_gset:Ne \g__codedoc_non_modules_clist { \tl_to_str:n { diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty index ff77a32ec1a..fde7919c757 100644 --- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3keys2e}{2023-08-29}{} +\ProvidesExplPackage{l3keys2e}{2023-10-10}{} {LaTeX2e option processing using LaTeX3 keys} \cs_if_exist:NT \ProcessKeysOptions { \file_input_stop: } @@ -52,7 +52,7 @@ { unknown .code:n = { - \msg_error:nnxx { keyvalue } { option-unknown } + \msg_error:nnee { keyvalue } { option-unknown } { \l_keys_key_str } { \@currname } } } @@ -90,7 +90,7 @@ { \clist_map_inline:cn { opt@ \@currname . \@currext } { - \keys_if_exist:nxTF {#1} { \__keys_latexe_remove_equals:n {##1} } + \keys_if_exist:neTF {#1} { \__keys_latexe_remove_equals:n {##1} } { \clist_put_right:Nn \l__keys_latexe_options_clist {##1} } { \clist_put_right:Nn \@unusedoptionlist {##1} } } @@ -101,7 +101,7 @@ { \clist_map_inline:Nn \@classoptionslist { - \keys_if_exist:nxT {#1} { \__keys_latexe_remove_equals:n {##1} } + \keys_if_exist:neT {#1} { \__keys_latexe_remove_equals:n {##1} } { \clist_put_right:Nn \l__keys_latexe_options_clist {##1} \clist_remove_all:Nn \@unusedoptionlist {##1} diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty index d24c07489b1..d7f5038e6df 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{xfp}{2023-08-29}{} +\ProvidesExplPackage{xfp}{2023-10-10}{} {L3 Floating point unit} \ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} } \ProvideExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} } diff --git a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty index d10d8c35743..e6e40464d91 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xfrac/xfrac.sty @@ -34,7 +34,7 @@ \endinput } \RequirePackage{amstext,graphicx,l3keys2e,textcomp,xparse,xtemplate} -\ProvidesExplPackage{xfrac}{2023-08-29}{} +\ProvidesExplPackage{xfrac}{2023-10-10}{} {L3 Experimental split-level fractions} \keys_define:nn { xfrac } { @@ -159,11 +159,11 @@ \mode_if_math:TF { \cs_set_eq:NN \__xfrac_text_or_math:n \text - \cs_set:Npx \__xfrac_denominator_font_change: + \cs_set:Npe \__xfrac_denominator_font_change: { \tex_fam:D \l__xfrac_denominator_font_tl } - \cs_set:Npx \__xfrac_numerator_font_change: + \cs_set:Npe \__xfrac_numerator_font_change: { \tex_fam:D \l__xfrac_numerator_font_tl } - \cs_set:Npx \__xfrac_slash_symbol_font_change: + \cs_set:Npe \__xfrac_slash_symbol_font_change: { \tex_fam:D \l__xfrac_slash_symbol_font_tl } } { diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty index fed28004cc4..6dd25e9b1b3 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty @@ -60,7 +60,7 @@ } } \ExplSyntaxOff -\ProvidesExplPackage{xparse}{2023-08-29}{} +\ProvidesExplPackage{xparse}{2023-10-10}{} {L3 Experimental document command parser} \clist_new:N \l__cmd_options_clist \DeclareOption* { \clist_put_right:NV \l__cmd_options_clist \CurrentOption } @@ -78,7 +78,7 @@ { \msg_redirect_module:nnn {#1} { info } { none } } \cs_new_protected:Npn \__cmd_unknown_argument_type_error:n ##1 { - \msg_error:nnxx {#1} { unknown-argument-type } + \msg_error:nnee {#1} { unknown-argument-type } { \__cmd_environment_or_command: } { \tl_to_str:n {##1} } } } @@ -95,7 +95,7 @@ \__cmd_bad_def:wn } } -\cs_new_protected:Npx \__cmd_normalize_type_g:w +\cs_new_protected:Npe \__cmd_normalize_type_g:w { \exp_not:N \__cmd_normalize_type_G:w { \exp_not:V \c_novalue_tl } } \cs_new_protected:Npn \__cmd_normalize_type_G:w #1 { @@ -219,7 +219,7 @@ \cs_gset_protected:Npn \__cmd_get_arg_spec_error:n #1 { \bool_set_true:N \l__cmd_environment_bool - \str_set:Nx \l__cmd_environment_str {#1} + \str_set:Ne \l__cmd_environment_str {#1} \__cmd_get_arg_spec_error_aux:n { \cs_if_exist:cTF { \l__cmd_environment_str } } } @@ -227,11 +227,11 @@ { #1 { - \msg_error:nnx { cmd } { non-xparse } + \msg_error:nne { cmd } { non-xparse } { \__cmd_environment_or_command: } } { - \msg_error:nnx { cmd } { unknown } + \msg_error:nne { cmd } { unknown } { \__cmd_environment_or_command: } } } @@ -239,7 +239,7 @@ { \__kernel_cmd_if_xparse:NTF #1 { - \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } } + \tl_set:Ne \ArgumentSpecification { \tl_item:Nn #1 { 2 } } #2 } {#3} diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty index 15dc32c5465..9d524ce8838 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty @@ -32,10 +32,8 @@ }% \endinput } -\ProvidesExplPackage{xtemplate}{2023-08-29}{} +\ProvidesExplPackage{xtemplate}{2023-10-10}{} {L3 Experimental prototype document functions} -\cs_generate_variant:Nn \keys_define:nn { nx } -\cs_generate_variant:Nn \tl_trim_spaces:n { e } \tl_const:Nn \c__xtemplate_code_root_tl { template~code~>~ } \tl_const:Nn \c__xtemplate_defaults_root_tl { template~defaults~>~ } \tl_const:Nn \c__xtemplate_instances_root_tl { template~instance~>~ } @@ -83,7 +81,7 @@ \int_compare:nNnTF {#2} = \l__xtemplate_tmp_tl {#3} { - \msg_error:nnxxx { xtemplate } + \msg_error:nneee { xtemplate } { argument-number-mismatch } {#1} { \l__xtemplate_tmp_tl } {#2} } } @@ -92,7 +90,7 @@ \cs_if_exist:cTF { \c__xtemplate_code_root_tl #1 / #2 } {#3} { - \msg_error:nnxx { xtemplate } { no-template-code } + \msg_error:nnee { xtemplate } { no-template-code } {#1} {#2} } } @@ -100,21 +98,21 @@ { \cs_if_exist:cTF { __xtemplate_store_value_ #1 :n } {#2} - { \msg_error:nnx { xtemplate } { unknown-keytype } {#1} } + { \msg_error:nne { xtemplate } { unknown-keytype } {#1} } } \cs_generate_variant:Nn \__xtemplate_execute_if_keytype_exist:nT { o } \cs_new_protected:Npn \__xtemplate_execute_if_type_exist:nT #1#2 { \prop_if_in:NnTF \g__xtemplate_object_type_prop {#1} {#2} - { \msg_error:nnx { xtemplate } { unknown-object-type } {#1} } + { \msg_error:nne { xtemplate } { unknown-object-type } {#1} } } \cs_new_protected:Npn \__xtemplate_if_keys_exist:nnT #1#2#3 { \cs_if_exist:cTF { \c__xtemplate_keytypes_root_tl #1 / #2 } {#3} { - \msg_error:nnxx { xtemplate } { unknown-template } + \msg_error:nnee { xtemplate } { unknown-template } {#1} {#2} } } @@ -234,13 +232,13 @@ \int_set:Nn \l__xtemplate_tmp_int {#2} \int_compare:nTF { 0 <= \l__xtemplate_tmp_int <= 9 } { - \msg_info:nnxx { xtemplate } { declare-object-type } - {#1} { \exp_not:V \l__xtemplate_tmp_int } + \msg_info:nnnV { xtemplate } { declare-object-type } + {#1} \l__xtemplate_tmp_int \prop_gput:NnV \g__xtemplate_object_type_prop {#1} \l__xtemplate_tmp_int } { - \msg_error:nnxx { xtemplate } { bad-number-of-arguments } + \msg_error:nnee { xtemplate } { bad-number-of-arguments } {#1} { \exp_not:V \l__xtemplate_tmp_int } } } @@ -274,7 +272,7 @@ \seq_if_in:NoTF \l__xtemplate_key_order_seq \l__xtemplate_key_name_tl { - \msg_error:nnx { xtemplate } + \msg_error:nne { xtemplate } { duplicate-key-interface } { \l__xtemplate_key_name_tl } } @@ -289,7 +287,7 @@ { \tl_if_empty:NT \l__xtemplate_keytype_arg_tl { - \msg_error:nnx { xtemplate } + \msg_error:nne { xtemplate } { keytype-requires-argument } {#1} \bool_set_true:N \l__xtemplate_error_bool \seq_map_break: @@ -298,7 +296,7 @@ } \cs_new:Npn \__xtemplate_parse_keys_elt_aux: { - \tl_set:Nx \l__xtemplate_tmp_tl + \tl_set:Ne \l__xtemplate_tmp_tl { \l__xtemplate_keytype_tl \tl_if_empty:NF \l__xtemplate_keytype_arg_tl @@ -318,7 +316,7 @@ \__xtemplate_parse_keys_elt:n {#1} \use:c { __xtemplate_store_value_ \l__xtemplate_keytype_tl :n } {#2} } -\cs_new_protected:Npx \__xtemplate_split_keytype:n #1 +\cs_new_protected:Npe \__xtemplate_split_keytype:n #1 { \exp_not:N \bool_set_false:N \exp_not:N \l__xtemplate_error_bool \tl_set:Nn \exp_not:N \l__xtemplate_tmp_tl {#1} @@ -334,38 +332,38 @@ } { \exp_not:N \bool_set_true:N \exp_not:N \l__xtemplate_error_bool - \msg_error:nnx { xtemplate } { missing-keytype } {#1} + \msg_error:nne { xtemplate } { missing-keytype } {#1} } } -\use:x +\use:e { \cs_new_protected:Npn \exp_not:N \__xtemplate_split_keytype_aux:w - ##1 \token_to_str:N : ##2 \s__xtemplate_stop + #1 \token_to_str:N : #2 \s__xtemplate_stop { - \tl_put_right:Nx \exp_not:N \l__xtemplate_key_name_tl + \tl_put_right:Ne \exp_not:N \l__xtemplate_key_name_tl { \exp_not:N \tl_trim_spaces:e - { \exp_not:N \tl_to_str:n {##1} } + { \exp_not:N \tl_to_str:n {#1} } } - \tl_if_in:nnTF {##2} { \token_to_str:N : } + \tl_if_in:nnTF {#2} { \token_to_str:N : } { \tl_put_right:Nn \exp_not:N \l__xtemplate_key_name_tl { \token_to_str:N : } - \exp_not:N \__xtemplate_split_keytype_aux:w ##2 \s__xtemplate_stop + \exp_not:N \__xtemplate_split_keytype_aux:w #2 \s__xtemplate_stop } { \exp_not:N \tl_if_empty:NTF \exp_not:N \l__xtemplate_key_name_tl { - \msg_error:nnx { xtemplate } { empty-key-name } - { \token_to_str:N : ##2 } + \msg_error:nne { xtemplate } { empty-key-name } + { \token_to_str:N : #2 } } - { \exp_not:N \__xtemplate_split_keytype_arg:n {##2} } + { \exp_not:N \__xtemplate_split_keytype_arg:n {#2} } } } } \cs_new_protected:Npn \__xtemplate_split_keytype_arg:n #1 { - \tl_set:Nx \l__xtemplate_keytype_tl { \tl_trim_spaces:n {#1} } + \tl_set:Ne \l__xtemplate_keytype_tl { \tl_trim_spaces:n {#1} } \tl_clear:N \l__xtemplate_keytype_arg_tl \cs_set_protected:Npn \__xtemplate_split_keytype_arg_aux:n ##1 { @@ -376,11 +374,11 @@ { \tl_if_blank:nT {####1} { - \tl_set:Nx \l__xtemplate_keytype_tl + \tl_set:Ne \l__xtemplate_keytype_tl { \tl_trim_spaces:n {##1} } \tl_if_blank:nF {####2} { - \tl_set:Nx \l__xtemplate_keytype_arg_tl + \tl_set:Ne \l__xtemplate_keytype_arg_tl { \use:n ####2 } } \seq_map_break: @@ -454,15 +452,15 @@ \__xtemplate_store_restrictions:n { #1 / #2 } \prop_map_inline:Nn \l__xtemplate_keytypes_prop { - \msg_error:nnxxx { xtemplate } { key-not-implemented } + \msg_error:nneee { xtemplate } { key-not-implemented } {##1} {#2} {#1} } } \cs_new_protected:Npn \__xtemplate_parse_vars_elt:n #1 - { \msg_error:nnx { xtemplate } { key-no-variable } {#1} } + { \msg_error:nne { xtemplate } { key-no-variable } {#1} } \cs_new_protected:Npn \__xtemplate_parse_vars_elt:nnn #1#2#3 { - \tl_set:Nx \l__xtemplate_key_name_tl + \tl_set:Ne \l__xtemplate_key_name_tl { \tl_trim_spaces:e { \tl_to_str:n {#2} } } \prop_get:NoNTF \l__xtemplate_keytypes_prop @@ -473,7 +471,7 @@ \__xtemplate_parse_vars_elt_aux:nn {#1} {#3} \prop_remove:NV \l__xtemplate_keytypes_prop \l__xtemplate_key_name_tl } - { \msg_error:nnx { xtemplate } { unknown-key } {#2} } + { \msg_error:nne { xtemplate } { unknown-key } {#2} } } \cs_new_protected:Npn \__xtemplate_parse_vars_elt_aux:nn #1#2 { @@ -487,7 +485,7 @@ { \tl_if_blank:nTF {#2} { - \exp_args:Nnnx \__xtemplate_parse_vars_elt_aux:nnn + \exp_args:Nnne \__xtemplate_parse_vars_elt_aux:nnn {#1} { global } { \tl_trim_spaces:n {#3} } } { \msg_error:nnn { xtemplate } { bad-variable } { #2 global #3 } } @@ -511,7 +509,7 @@ \exp_not:c { cs_ \str_if_eq:nnT {#1} { global } { g } set:Npn } { \exp_not:o \l__xtemplate_keytype_arg_tl } - {####1} + {##1} } } \prop_put:Non \l__xtemplate_vars_prop @@ -525,7 +523,7 @@ { \exp_not:c { cs_ \str_if_eq:nnT {#1} { global } { g } set:Npn } - \exp_not:N #3 { \UseInstance {####1} } + \exp_not:N #3 { \UseInstance {##1} } } } \prop_put:Non \l__xtemplate_vars_prop @@ -546,12 +544,12 @@ \prop_put:Non \l__xtemplate_vars_prop \l__xtemplate_key_name_tl {#2#3} } - { \msg_error:nnx { xtemplate } { bad-variable } { #2#3 } } + { \msg_error:nne { xtemplate } { bad-variable } { #2#3 } } } } \cs_new_protected:Npn \__xtemplate_parse_vars_elt_key:nn #1#2 { - \keys_define:nx { template / #1 } + \keys_define:ne { template / #1 } { \l__xtemplate_key_name_tl #2 } } \cs_new:Npn \__xtemplate_map_var_type: @@ -572,7 +570,7 @@ { \clist_set:No \l__xtemplate_tmp_clist { \l__xtemplate_keytype_arg_tl } \prop_put:Non \l__xtemplate_vars_prop \l__xtemplate_key_name_tl { } - \keys_define:nx { template / #1 } { \l__xtemplate_key_name_tl .choice: } + \keys_define:ne { template / #1 } { \l__xtemplate_key_name_tl .choice: } \keyval_parse:nnn { \__xtemplate_implement_choice_elt:n } { \__xtemplate_implement_choice_elt:nnn {#1} } @@ -584,18 +582,18 @@ { \clist_map_inline:Nn \l__xtemplate_tmp_clist { - \msg_error:nnx { xtemplate } { choice-not-implemented } + \msg_error:nne { xtemplate } { choice-not-implemented } {##1} } } } \cs_new_protected:Npn \__xtemplate_implement_choices_default: { - \tl_set:Nx \l__xtemplate_tmp_tl + \tl_set:Ne \l__xtemplate_tmp_tl { \l__xtemplate_key_name_tl \c_space_tl \l__xtemplate_tmp_tl } \prop_if_in:NoF \l__xtemplate_vars_prop \l__xtemplate_tmp_tl { - \tl_set:Nx \l__xtemplate_tmp_tl + \tl_set:Ne \l__xtemplate_tmp_tl { \l__xtemplate_key_name_tl \c_space_tl \l__xtemplate_tmp_tl } \prop_if_in:NoF \l__xtemplate_vars_prop \l__xtemplate_tmp_tl { @@ -604,7 +602,7 @@ \__xtemplate_split_keytype_arg:o \l__xtemplate_tmp_tl \prop_get:NoN \l__xtemplate_values_prop \l__xtemplate_key_name_tl \l__xtemplate_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-default-choice } + \msg_error:nneee { xtemplate } { unknown-default-choice } { \l__xtemplate_key_name_tl } { \l__xtemplate_key_name_tl } { \l__xtemplate_keytype_arg_tl } } @@ -620,7 +618,7 @@ \prop_get:NoN \l__xtemplate_keytypes_prop \l__xtemplate_key_name_tl \l__xtemplate_tmp_tl \__xtemplate_split_keytype_arg:o \l__xtemplate_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-choice } + \msg_error:nneee { xtemplate } { unknown-choice } { \l__xtemplate_key_name_tl } {#2} { \l__xtemplate_keytype_arg_tl } } @@ -635,7 +633,7 @@ \prop_get:NoN \l__xtemplate_keytypes_prop \l__xtemplate_key_name_tl \l__xtemplate_tmp_tl \__xtemplate_split_keytype_arg:o \l__xtemplate_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-choice } + \msg_error:nneee { xtemplate } { unknown-choice } { \l__xtemplate_key_name_tl } {#2} { \l__xtemplate_keytype_arg_tl } } @@ -643,15 +641,15 @@ } \cs_new_protected:Npn \__xtemplate_implement_choice_elt_aux:nnn #1#2#3 { - \keys_define:nx { template / #1 } + \keys_define:ne { template / #1 } { \l__xtemplate_key_name_tl / #2 .code:n = { \exp_not:n {#3} } } - \tl_set:Nx \l__xtemplate_tmp_tl + \tl_set:Ne \l__xtemplate_tmp_tl { \l__xtemplate_key_name_tl \c_space_tl #2 } \prop_put:Non \l__xtemplate_vars_prop \l__xtemplate_tmp_tl {#3} } \cs_new_protected:Npn \__xtemplate_implement_choice_elt:n #1 { - \msg_error:nnxxx { xtemplate } { choice-requires-code } + \msg_error:nneee { xtemplate } { choice-requires-code } { \l__xtemplate_key_name_tl } {#1} } \cs_new_protected:Npn \__xtemplate_declare_restricted:nnnn #1#2#3#4 @@ -694,11 +692,11 @@ \cs_new_protected:Npn \__xtemplate_parse_values_elt:n #1 { \bool_set_true:N \l__xtemplate_error_bool - \msg_error:nnx { xtemplate } { key-no-value } {#1} + \msg_error:nne { xtemplate } { key-no-value } {#1} } \cs_new_protected:Npn \__xtemplate_parse_values_elt:nn #1#2 { - \tl_set:Nx \l__xtemplate_key_name_tl + \tl_set:Ne \l__xtemplate_key_name_tl { \tl_trim_spaces:e { \tl_to_str:n {#1} } } \prop_get:NoNTF \l__xtemplate_keytypes_prop \l__xtemplate_key_name_tl \l__xtemplate_tmp_tl @@ -712,7 +710,7 @@ { \__xtemplate_parse_values_elt_aux:n {#2} } } { - \msg_error:nnx { xtemplate } { unknown-key } + \msg_error:nne { xtemplate } { unknown-key } { \l__xtemplate_key_name_tl } } } @@ -752,7 +750,7 @@ \prop_put:Nnn \l__xtemplate_values_prop { from~template } {#2} \__xtemplate_store_values:n { #1 / #3 / #4 } \__xtemplate_convert_to_assignments: - \cs_set_protected:cpx { \c__xtemplate_instances_root_tl #1 / #3 / #4 } + \cs_set_protected:cpe { \c__xtemplate_instances_root_tl #1 / #3 / #4 } { \exp_not:N \__xtemplate_assignments_push:n { \exp_not:o \l__xtemplate_assignments_tl } @@ -776,7 +774,7 @@ { \c__xtemplate_instances_root_tl #1 / #2 / #3 } } { - \msg_error:nnxx { xtemplate } { unknown-instance } + \msg_error:nnee { xtemplate } { unknown-instance } {#1} {#3} } } @@ -791,7 +789,7 @@ {#2} {#3} {#4} } { - \msg_error:nnxx { xtemplate } { unknown-instance } + \msg_error:nnee { xtemplate } { unknown-instance } {#1} {#3} } } @@ -827,7 +825,7 @@ \tl_set:Nn \l__xtemplate_key_name_tl {#1} \use:c { __xtemplate_assign_ \l__xtemplate_keytype_tl : } } - { \msg_error:nnx { xtemplate } { unknown-attribute } {#1} } + { \msg_error:nne { xtemplate } { unknown-attribute } {#1} } } } \cs_generate_variant:Nn \__xtemplate_convert_to_assignments_aux:nn { no } @@ -866,7 +864,7 @@ \__xtemplate_if_key_value:oTF \l__xtemplate_value_tl { \__xtemplate_key_to_value: - \tl_put_right:Nx \l__xtemplate_assignments_tl + \tl_put_right:Ne \l__xtemplate_assignments_tl { \exp_not:c { #1 _eq:NN } \exp_not:o \l__xtemplate_var_tl @@ -874,7 +872,7 @@ } } { - \tl_put_right:Nx \l__xtemplate_assignments_tl + \tl_put_right:Ne \l__xtemplate_assignments_tl { \exp_not:c { #1 _ \l__xtemplate_value_tl :N } \exp_not:o \l__xtemplate_var_tl @@ -883,16 +881,16 @@ } \cs_new_protected:Npn \__xtemplate_assign_choice: { - \__xtemplate_assign_choice_aux:xF + \__xtemplate_assign_choice_aux:eF { \l__xtemplate_key_name_tl \c_space_tl \l__xtemplate_value_tl } { - \__xtemplate_assign_choice_aux:xF + \__xtemplate_assign_choice_aux:eF { \l__xtemplate_key_name_tl \c_space_tl unknown } { \prop_get:NoN \l__xtemplate_keytypes_prop \l__xtemplate_key_name_tl \l__xtemplate_tmp_tl \__xtemplate_split_keytype_arg:o \l__xtemplate_tmp_tl - \msg_error:nnxxx { xtemplate } { unknown-choice } + \msg_error:nneee { xtemplate } { unknown-choice } { \l__xtemplate_key_name_tl } { \l__xtemplate_value_tl } { \l__xtemplate_keytype_arg_tl } } @@ -906,7 +904,7 @@ \l__xtemplate_tmp_tl { \tl_put_right:No \l__xtemplate_assignments_tl \l__xtemplate_tmp_tl } } -\cs_generate_variant:Nn \__xtemplate_assign_choice_aux:nF { x } +\cs_generate_variant:Nn \__xtemplate_assign_choice_aux:nF { e } \cs_new_protected:Npn \__xtemplate_assign_function: { \bool_if:NTF \l__xtemplate_global_bool @@ -915,7 +913,7 @@ } \cs_new_protected:Npn \__xtemplate_assign_function_aux:N #1 { - \tl_put_right:Nx \l__xtemplate_assignments_tl + \tl_put_right:Ne \l__xtemplate_assignments_tl { \cs_generate_from_arg_count:NNnn \exp_not:o \l__xtemplate_var_tl @@ -932,7 +930,7 @@ } \cs_new_protected:Npn \__xtemplate_assign_instance_aux:N #1 { - \tl_put_right:Nx \l__xtemplate_assignments_tl + \tl_put_right:Ne \l__xtemplate_assignments_tl { \exp_not:N #1 \exp_not:o \l__xtemplate_var_tl { @@ -983,14 +981,14 @@ \__xtemplate_if_key_value:oTF \l__xtemplate_value_tl { \__xtemplate_key_to_value: - \tl_put_right:Nx \l__xtemplate_assignments_tl + \tl_put_right:Ne \l__xtemplate_assignments_tl { #1 \exp_not:o \l__xtemplate_var_tl \exp_not:o \l__xtemplate_value_tl } } { - \tl_put_right:Nx \l__xtemplate_assignments_tl + \tl_put_right:Ne \l__xtemplate_assignments_tl { #2 \exp_not:o \l__xtemplate_var_tl { \exp_not:o \l__xtemplate_value_tl } @@ -1007,7 +1005,7 @@ { \__xtemplate_if_key_value:oT \l__xtemplate_value_tl { \__xtemplate_key_to_value: } - \tl_put_right:Nx \l__xtemplate_assignments_tl + \tl_put_right:Ne \l__xtemplate_assignments_tl { #1 \exp_not:o \l__xtemplate_var_tl { \exp_not:o \l__xtemplate_value_tl } @@ -1017,7 +1015,7 @@ { \exp_after:wN \__xtemplate_key_to_value_auxi:w \l__xtemplate_value_tl } \cs_new_protected:Npn \__xtemplate_key_to_value_auxi:w \KeyValue #1 { - \tl_set:Nx \l__xtemplate_tmp_tl { \tl_trim_spaces:e { \tl_to_str:n {#1} } } + \tl_set:Ne \l__xtemplate_tmp_tl { \tl_trim_spaces:e { \tl_to_str:n {#1} } } \prop_get:NoNTF \l__xtemplate_vars_prop \l__xtemplate_tmp_tl @@ -1027,7 +1025,7 @@ \s__xtemplate_mark global \q__xtemplate_nil \s__xtemplate_stop } { - \msg_error:nnx { xtemplate } { unknown-attribute } + \msg_error:nne { xtemplate } { unknown-attribute } { \l__xtemplate_tmp_tl } } } @@ -1046,7 +1044,7 @@ { \str_if_eq:nnTF {#1} {#3} { \__xtemplate_use_template:nnn {#3} {#4} {#5} } - { \msg_error:nnxx { xtemplate } { type-mismatch } {#1} {#3} } + { \msg_error:nnee { xtemplate } { type-mismatch } {#1} {#3} } } \cs_new_protected:Npn \__xtemplate_use_instance_aux:nn #1#2 { @@ -1064,7 +1062,7 @@ \__xtemplate_if_instance_exist:nnnTF {#1} { } {#2} { \use:c { \c__xtemplate_instances_root_tl #1 / / #2 } } { - \msg_error:nnxx { xtemplate } { unknown-instance } + \msg_error:nnee { xtemplate } { unknown-instance } {#1} {#2} } } @@ -1111,7 +1109,7 @@ } \cs_new_protected:Npn \__xtemplate_show:Nnnn #1#2#3#4 { - \msg_show:nnxxxx { xtemplate } { show-attribute } + \msg_show:nneeee { xtemplate } { show-attribute } { \tl_to_str:n {#2} } { \tl_to_str:n {#3} } { \tl_to_str:n {#4} } @@ -1122,7 +1120,7 @@ \__xtemplate_if_instance_exist:nnnT {#1} {#2} {#3} { \__xtemplate_recover_values:n { #1 / #2 / #3 } - \msg_show:nnxxxx { xtemplate } { show-values } + \msg_show:nneeee { xtemplate } { show-values } { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } { \tl_to_str:n {#3} } |