texlive[73085] Master/texmf-dist: l3kernel-dev (9dec24)
commits+karl at tug.org
commits+karl at tug.org
Mon Dec 9 22:14:45 CET 2024
Revision: 73085
https://tug.org/svn/texlive?view=revision&revision=73085
Author: karl
Date: 2024-12-09 22:14:45 +0100 (Mon, 09 Dec 2024)
Log Message:
-----------
l3kernel-dev (9dec24)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/CHANGELOG.md
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/README.md
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/expl3.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/interface3.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/interface3.tex
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3doc.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3docstrip.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news01.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news02.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news03.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news04.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news05.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news06.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news07.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news08.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news09.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news10.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news11.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news12.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3obsolete.txt
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3prefixes.csv
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3prefixes.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3styleguide.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3styleguide.tex
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3syntax-changes.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3syntax-changes.tex
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3term-glossary.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3term-glossary.tex
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/source3.pdf
trunk/Master/texmf-dist/doc/latex-dev/l3kernel/source3.tex
trunk/Master/texmf-dist/source/latex-dev/l3kernel/expl3.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3basics.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bitset.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bootstrap.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3box.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3cctab.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3clist.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3coffins.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3color.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3debug.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3deprecation.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3doc.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3docstrip.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3expan.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3file.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3flag.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-assign.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-aux.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-basics.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-convert.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-expo.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-extended.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-functions.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-logic.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-parse.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-random.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-round.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-symbolic.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-traps.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-trig.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-types.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fparray.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3int.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3intarray.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3kernel-functions.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3keys.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3legacy.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3luatex.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3msg.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3names.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3pdf.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prg.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prop.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3quark.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3regex.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3seq.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3skip.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sort.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str-convert.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sys.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-case.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-map.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-purify.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-analysis.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-build.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3token.dtx
trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3unicode.dtx
trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex
trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex
trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx
trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty
trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def
trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/CHANGELOG.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/CHANGELOG.md 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/CHANGELOG.md 2024-12-09 21:14:45 UTC (rev 73085)
@@ -7,6 +7,28 @@
## [Unreleased]
+## [2024-12-09]
+
+### Added
+- `\bitset_use:N` and `\clist_use:N`: this clarifies that bitsets and clists
+ can be used with `V`-type expansion
+- `\sys_if_engine_opentype:(TF)`
+- Add equivalent interfaces for regex functions:
+ - `\int_(g)set_regex_count:Nnn`, `\int_(g)set_regex_count:NNn`
+ - `\seq_(g)set_regex_extract_once:Nnn`, `\seq_(g)set_regex_extract_once:NNn`
+ - `\seq_(g)set_regex_extract_all:Nnn`, `\seq_(g)set_regex_extract_all:NNn`
+ - `\seq_(g)set_regex_split:Nnn`, `\seq_(g)set_regex_split:NNn`
+ - `\tl_if_regex_match:nn(TF)`, `\tl_if_regex_match:nN(TF)`
+ - `\tl_regex_(g)replace_once:Nnn`, `\tl_regex_(g)replace_once:NNn`
+ - `\tl_regex_(g)replace_all:Nnn`, `\tl_regex_(g)replace_all:NNn`
+
+### Fixed
+- `\prop_item:Nn` result not returned in `\exp_not:n` for linked properties
+ (#1630)
+
+### Removed
+- `\c_catcode_active_tl`: was missing a `_`, always intended to be internal
+
## [2024-11-02]
### Added
@@ -1793,7 +1815,8 @@
- Step functions have been added for dim variables,
e.g. `\dim_step_inline:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2024-11-02...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2024-12-09...HEAD
+[2024-12-09]: https://github.com/latex3/latex3/compare/2024-11-02...2024-12-09
[2024-11-02]: https://github.com/latex3/latex3/compare/2024-10-09...2024-11-02
[2024-10-09]: https://github.com/latex3/latex3/compare/2024-09-10...2024-10-09
[2024-09-10]: https://github.com/latex3/latex3/compare/2024-08-30...2024-09-10
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/README.md 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/README.md 2024-12-09 21:14:45 UTC (rev 73085)
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2024-11-02
+Release 2024-12-09
Overview
--------
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/expl3.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/interface3.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/interface3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/interface3.tex 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/interface3.tex 2024-12-09 21:14:45 UTC (rev 73085)
@@ -58,7 +58,7 @@
{latex-team at latex-project.org}%
}%
}
-\date{Released 2024-11-02}
+\date{Released 2024-12-09}
\pagenumbering{roman}
\maketitle
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3docstrip.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news01.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news02.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news03.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news04.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news05.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news06.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news07.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news08.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news09.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news10.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news11.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3news12.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3obsolete.txt
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3obsolete.txt 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3obsolete.txt 2024-12-09 21:14:45 UTC (rev 73085)
@@ -141,6 +141,7 @@
\box_set_eq_clear:NN 2021-07-07
\box_use_clear:c 2018-12-27
\box_use_clear:N 2018-12-27
+\c_catcode_active_tl 2024-11-12
\c_active_char_token 2011-09-08
\c_alignment_tab_token 2011-09-08
\c_eight 2020-01-01
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3prefixes.csv
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3prefixes.csv 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3prefixes.csv 2024-12-09 21:14:45 UTC (rev 73085)
@@ -75,6 +75,7 @@
emojicite,emojicite,Leon Sixt,https://github.com/berleon/emojicite,https://github.com/berleon/emojicite.git,https://github.com/berleon/emojicite/issues/,2020-04-14,2020-04-20,
empty,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,
enotez,enotez,Clemens Niederberger,https://github.com/cgnieder/enotez/,https://github.com/cgnieder/enotez.git,https://github.com/cgnieder/enotez/issues,2013-03-16,2020-04-14,
+enumext,enumext,Pablo González,https://github.com/pablgonz/enumext,git@github.com:pablgonz/enumext.git,https://github.com/pablgonz/enumext/issues,2024-11-18,2024-11-18,
etex,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,
etl,etl,Jonathan P. Spratte,https://github.com/Skillmon/ltx_etl,git@github.com:Skillmon/ltx_etl.git,https://github.com/Skillmon/ltx_etl/issues,2021-08-16,2021-08-16,
exp,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,
@@ -231,6 +232,7 @@
rivmath,rivmath,Julien Rivaud,,,,2018-06-13,2018-06-13,
rpgicons,rpgicons,Jasper Habicht,https://github.com/jasperhabicht/rpgicons,https://github.com/jasperhabicht/rpgicons/rpgicons.git,https://github.com/jasperhabicht/rpgicons/issues,2024-04-29,2024-04-29,
sanuml,sanitize-umlaut,Thomas F. Sturm,https://github.com/T-F-S/sanitize-umlaut,https://github.com/T-F-S/sanitize-umlaut.git,https://github.com/T-F-S/sanitize-umlaut/issues,2022-07-19,2022-07-19,
+scaletextbullet,scaletextbullet,Oliver Beery,https://github.com/beeryoliver/scaletextbullet,https://github.com/beeryoliver/scaletextbullet/scaletextbullet.git,https://github.com/beeryoliver/scaletextbullet/issues,2024-11-15,2024-11-15,
scan,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,
schulma,schulmathematik,Keno Wehr,https://ctan.org/pkg/schulmathematik,,,2021-08-23,2021-08-23,
scontents,scontents,Pablo González,https://github.com/pablgonz/scontents,git@github.com:pablgonz/scontents.git,https://github.com/pablgonz/scontents/issues,2019-12-05,2019-12-05,
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3prefixes.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3styleguide.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3styleguide.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3styleguide.tex 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3styleguide.tex 2024-12-09 21:14:45 UTC (rev 73085)
@@ -32,7 +32,7 @@
{latex-team at latex-project.org}%
}%
}
-\date{Released 2024-11-02}
+\date{Released 2024-12-09}
\begin{document}
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3syntax-changes.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3syntax-changes.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3syntax-changes.tex 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3syntax-changes.tex 2024-12-09 21:14:45 UTC (rev 73085)
@@ -32,7 +32,7 @@
{latex-team at latex-project.org}%
}%
}
-\date{Released 2024-11-02}
+\date{Released 2024-12-09}
\newcommand{\TF}{\textit{(TF)}}
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3term-glossary.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3term-glossary.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3term-glossary.tex 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/l3term-glossary.tex 2024-12-09 21:14:45 UTC (rev 73085)
@@ -32,7 +32,7 @@
{latex-team at latex-project.org}%
}%
}
-\date{Released 2024-11-02}
+\date{Released 2024-12-09}
\newcommand{\TF}{\textit{(TF)}}
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/source3.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/latex-dev/l3kernel/source3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex-dev/l3kernel/source3.tex 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/doc/latex-dev/l3kernel/source3.tex 2024-12-09 21:14:45 UTC (rev 73085)
@@ -57,7 +57,7 @@
{latex-team at latex-project.org}%
}%
}
-\date{Released 2024-11-02}
+\date{Released 2024-12-09}
\pagenumbering{roman}
\maketitle
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/expl3.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/expl3.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/expl3.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2024-11-02}%
+\def\ExplFileDate{2024-12-09}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3basics.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3basics.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bitset.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bitset.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bitset.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -240,6 +240,16 @@
% implementation based on \cs{fp_eval:n} otherwise.
% \end{function}
%
+% \begin{function}[EXP, added = 2024-11-12]{\bitset_use:N, \bitset_use:c}
+% \begin{syntax}
+% \cs{bitset_use:N} \meta{bitset var}
+% \end{syntax}
+% This leaves the current value of the bitset expressed as
+% a binary (string) number in the input stream.
+% If no bit has been set yet, the output is zero. This is
+% functionally equivalent to \cs{bitset_to_bin:N}.
+% \end{function}
+%
% \begin{function}[added = 2023-11-15]
% {\bitset_show:N, \bitset_show:c}
% \begin{syntax}
@@ -524,6 +534,13 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\bitset_use:N, \bitset_use:c}
+% \begin{macrocode}
+\cs_new_eq:NN \bitset_use:N \tl_use:N
+\cs_generate_variant:Nn \bitset_use:N { c }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}
% {
% \bitset_item:Nn, \bitset_item:cn
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bootstrap.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bootstrap.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3bootstrap.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3box.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3box.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3box.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3cctab.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3cctab.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3cctab.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -866,8 +866,7 @@
\group_begin:
\int_set:Nn \tex_endlinechar:D { 32 }
\char_set_catcode_invalid:n { 0 }
- \bool_lazy_or:nnTF
- { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: }
+ \sys_if_engine_opentype:TF
{ \int_step_function:nN { 31 } \char_set_catcode_invalid:n }
{ \int_step_function:nN { 31 } \char_set_catcode_active:n }
\int_step_function:nnN { 33 } { 64 } \char_set_catcode_other:n
@@ -892,8 +891,7 @@
\char_set_catcode_group_end:n { 125 } % right brace
\char_set_catcode_space:n { 126 } % tilde
\char_set_catcode_invalid:n { 127 } % ^^?
- \bool_lazy_or:nnF
- { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: }
+ \sys_if_engine_opentype:F
{ \int_step_function:nnN { 128 } { 255 } \char_set_catcode_active:n }
\@@_gset:n { \c_code_cctab }
\group_end:
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3clist.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3clist.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3clist.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -619,6 +619,22 @@
% \end{texnote}
% \end{function}
%
+% \begin{function}[EXP, added = 2024-11-12]{\clist_use:N, \clist_use:c}
+% \begin{syntax}
+% \cs{clist_use:N} \meta{clist~var}
+% \end{syntax}
+% Places the contents of the \meta{clist~var} in the input stream,
+% with a comma between each item. The result is exaclty the stored
+% \meta{clist}, which will include braces around (for example)
+% entries with retained spaces at the ends.
+% \begin{texnote}
+% The result is returned as-is, in the same way as \cs{tl_use:N}
+% and \emph{without} protection from expansion,
+% cf.~\cs{clist_use:Nnnnn}, etc. It is equivalent to \texttt{V}-type
+% expansion of a \texttt{clist}.
+% \end{texnote}
+% \end{function}
+%
% \begin{function}[EXP, added = 2021-05-10]{\clist_use:nnnn, \clist_use:nn}
% \begin{syntax}
% \cs{clist_use:nnnn} \Arg{comma~list} \Arg{separator~between~two} \\
@@ -2008,6 +2024,13 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\clist_use:N, \clist_use:c}
+% \begin{macrocode}
+\cs_new_eq:NN \clist_use:N \tl_use:N
+\cs_generate_variant:Nn \clist_use:N { c }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}
% {
% \clist_use:nnnn, \clist_use:nn, \@@_use:Nw,
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3coffins.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3coffins.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3coffins.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3color.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3color.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3color.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3debug.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3debug.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3debug.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -69,7 +69,7 @@
%
% Standard file identification.
% \begin{macrocode}
-\ProvidesExplFile{l3debug.def}{2024-11-02}{}{L3 Debugging support}
+\ProvidesExplFile{l3debug.def}{2024-12-09}{}{L3 Debugging support}
% \end{macrocode}
%
% \begin{variable}{\s_@@_stop}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3deprecation.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3deprecation.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3deprecation.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3doc.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3doc.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3doc.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -71,7 +71,7 @@
% This isn't included in the typeset documentation because it's a bit
% ugly:
%<*class>
-\ProvidesExplClass{l3doc}{2024-11-02}{}
+\ProvidesExplClass{l3doc}{2024-12-09}{}
{L3 Experimental documentation class}
%</class>
% \fi
@@ -84,7 +84,7 @@
% require you to do updates, if the class changes.}}
%
% \author{\Team}
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
% \maketitle
% \tableofcontents
%
@@ -1531,8 +1531,7 @@
% \begin{macrocode}
\bool_if:NT \g_@@_lmodern_bool
{
- \bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }{ \sys_if_engine_xetex_p: }
+ \sys_if_engine_opentype:TF
{
\group_begin:
\ttfamily
@@ -3609,7 +3608,7 @@
% \begin{macrocode}
\newenvironment{TemplateInterfaceDescription}[1]
{
- \subsection{The~object~type~`#1'}
+ \subsection{The~template~type~`#1'}
\begingroup
\@beginparpenalty\@M
\description
@@ -3628,7 +3627,7 @@
% \begin{macrocode}
\newenvironment{TemplateDescription}[2]
{
- \subsection{The~template~`#2'~(object~type~#1)}
+ \subsection{The~template~`#2'~(template~type~#1)}
\subsubsection*{Attributes:}
\begingroup
\@beginparpenalty\@M
@@ -4717,7 +4716,7 @@
% \begin{macrocode}
\tl_const:Nn \Team
{
- The~\LaTeX3~Project\thanks
+ The~\LaTeX~Project~team\thanks
{\url{https://www.latex-project.org/latex3/}}
}
% \end{macrocode}
@@ -4731,7 +4730,7 @@
}
\author
{
- The~\LaTeX3~Project\thanks{E-mail:~
+ The~\LaTeX~Project~team\thanks{E-mail:~
\href{mailto:latex-l at listserv.uni-heidelberg.de}
{latex-l at listserv.uni-heidelberg.de}}
}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3docstrip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3docstrip.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3docstrip.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3expan.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3expan.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3expan.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3file.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3file.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3file.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3flag.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3flag.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3flag.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-assign.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-assign.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-assign.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
% \maketitle
%
% \begin{documentation}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-aux.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-aux.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-aux.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-basics.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-basics.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-basics.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-convert.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-convert.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-expo.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-expo.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-expo.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-extended.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-extended.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-extended.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-functions.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-functions.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-logic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-logic.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-logic.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-parse.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-parse.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-parse.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-random.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-random.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-random.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-round.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-round.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-round.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-symbolic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-symbolic.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-symbolic.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-traps.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-traps.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-traps.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
% \maketitle
%
% \begin{documentation}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-trig.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-trig.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-trig.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% {latex-team at latex-project.org}^^A
% }^^A
% }
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-types.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-types.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp-types.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -42,7 +42,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fp.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fparray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fparray.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3fparray.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3int.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3int.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3int.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -297,7 +297,7 @@
% \begin{function}[updated = 2011-10-22]
% {
% \int_set:Nn, \int_set:cn, \int_set:NV, \int_set:cV,
-% \int_gset:Nn, \int_gset:cn, \int_gset:MV, \int_gset:cV
+% \int_gset:Nn, \int_gset:cn, \int_gset:NV, \int_gset:cV
% }
% \begin{syntax}
% \cs{int_set:Nn} \meta{integer} \Arg{int expr}
@@ -307,6 +307,37 @@
% \cs{int_eval:n}).
% \end{function}
%
+% \begin{function}[added = 2024-12-08]
+% {
+% \int_set_regex_count:Nnn, \int_set_regex_count:cnn,
+% \int_set_regex_count:NNn, \int_set_regex_count:cNn,
+% \int_gset_regex_count:Nnn, \int_gset_regex_count:cnn,
+% \int_gset_regex_count:NNn, \int_gset_regex_count:cNn,
+% }
+% \begin{syntax}
+% \cs{int_set_regex_count:Nnn} \meta{int var} \Arg{regex} \Arg{token list}
+% \cs{int_set_regex_count:NNn} \meta{int var} \meta{regex~var} \Arg{token list}
+% \end{syntax}
+% Sets \meta{int var} equal to the number of times
+% \meta{regular expression} appears in \meta{token list}.
+% The search starts by finding the left-most longest match,
+% respecting greedy and lazy (non-greedy) operators. Then the search
+% starts again from the character following the last character
+% of the previous match, until reaching the end of the token list.
+% Infinite loops are prevented in the case where the regular expression
+% can match an empty token list: then we count one match between each
+% pair of characters.
+% For instance,
+% \begin{verbatim}
+% \int_set_regex_count:Nnn \l_foo_int { (b+|c) } { abbababcbb }
+% \end{verbatim}
+% results in \cs[no-index]{l_foo_int} taking the value $5$.
+% Theses are alternative names for \cs{regex_count:nnN} and friends,
+% with arguments re-ordered for \meta{int~var} setting;
+% see \pkg{l3regex} chapter for more details of the \meta{regex}
+% format.
+% \end{function}
+%
% \begin{function}[updated = 2011-10-22]
% {\int_sub:Nn, \int_sub:cn, \int_gsub:Nn, \int_gsub:cn}
% \begin{syntax}
@@ -1495,6 +1526,45 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}
+% {
+% \int_set_regex_count:Nnn, \int_set_regex_count:cnn,
+% \int_gset_regex_count:Nnn, \int_gset_regex_count:cnn
+% }
+% \begin{macro}
+% {
+% \int_set_regex_count:NNn, \int_set_regex_count:cNn,
+% \int_gset_regex_count:NNn, \int_set_gregex_count:cNn
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \int_set_regex_count:Nnn #1#2#3
+ { \regex_count:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \int_set_regex_count:Nnn { c }
+\cs_new_protected:Npn \int_gset_regex_count:Nnn #1#2#3
+ {
+ \group_begin:
+ \int_set_eq:NN \l_@@_internal_a_int #1
+ \regex_count:nnN {#2} {#3} \l_@@_internal_a_int
+ \int_gset_eq:NN #1 \l_@@_internal_a_int
+ \group_end:
+ }
+\cs_generate_variant:Nn \int_gset_regex_count:Nnn { c }
+\cs_new_protected:Npn \int_set_regex_count:NNn #1#2#3
+ { \regex_count:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \int_set_regex_count:Nnn { c }
+\cs_new_protected:Npn \int_gset_regex_count:NNn #1#2#3
+ {
+ \group_begin:
+ \int_set_eq:NN \l_@@_internal_a_int #1
+ \regex_count:NnN #2 {#3} \l_@@_internal_a_int
+ \int_gset_eq:NN #1 \l_@@_internal_a_int
+ \group_end:
+ }
+\cs_generate_variant:Nn \int_gset_regex_count:NNn { c }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \subsection{Using integers}
%
% \begin{macro}{\int_use:N, \int_use:c}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3intarray.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3intarray.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3intarray.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3kernel-functions.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3kernel-functions.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3kernel-functions.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3keys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3keys.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3keys.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -921,7 +921,7 @@
% The correct list is returned by nested calls.
% \end{function}
%
-% \section{Digesting keys}
+% \section{Precompiling keys}
%
% \begin{function}[added = 2022-03-09]{\keys_precompile:nnN}
% \begin{syntax}
@@ -931,6 +931,14 @@
% resulting code for those which set variables or functions into the
% \meta{tl~var}. Thus this function \enquote{precompiles} the keyval list into
% a set of results which can be applied rapidly.
+%
+% It is important to note that when precompiling keys, no expansion of variables
+% takes place. This means that any key setting which simply stores variable names,
+% rather than variable values, will not work correctly. Most notably, any
+% key setting which uses \cs{l_keys_key_str}, \cs{l_keys_path_str} or
+% \cs{l_keys_value_tl} will yield unpredictable outcomes. As such, keys
+% intended to be precompiled should fully expand any values at the point of
+% setting.
% \end{function}
%
% \section{Utility functions for keys}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3legacy.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3legacy.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3legacy.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3luatex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3luatex.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3luatex.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3msg.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3msg.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3names.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3names.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3names.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3pdf.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3pdf.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3pdf.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prg.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prg.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -79,7 +79,9 @@
% \begin{function}[updated = 2022-11-01]
% {
% \prg_new_conditional:Npnn, \prg_set_conditional:Npnn, \prg_gset_conditional:Npnn,
-% \prg_new_conditional:Nnn, \prg_set_conditional:Nnn, \prg_gset_conditional:Nnn
+% \prg_new_protected_conditional:Npnn, \prg_set_protected_conditional:Npnn, \prg_gset_protected_conditional:Npnn,
+% \prg_new_conditional:Nnn, \prg_set_conditional:Nnn, \prg_gset_conditional:Nnn,
+% \prg_new_protected_conditional:Nnn, \prg_set_protected_conditional:Nnn, \prg_gset_protected_conditional:Nnn
% }
% \begin{syntax}
% \cs{prg_new_conditional:Npnn} \cs[no-index]{\meta{name}:\meta{arg spec}} \meta{parameters} \Arg{conditions} \Arg{code} \\
@@ -86,36 +88,21 @@
% \cs{prg_new_conditional:Nnn} \cs[no-index]{\meta{name}:\meta{arg spec}} \Arg{conditions} \Arg{code}
% \end{syntax}
% These functions create a family of conditionals using the same
-% \Arg{code} to perform the test created. Those conditionals are
-% expandable if \meta{code} is. The \texttt{new} versions check
+% \meta{code} to perform the test created. Those non-protected
+% conditionals are expandable if \meta{code} is.
+% The \texttt{new} versions check
% for existing definitions and perform assignments globally
% (\emph{cf.}~\cs{cs_new:Npn}) whereas the \texttt{set} versions do no
% check and perform assignments locally (\emph{cf.}~\cs{cs_set:Npn}).
% The conditionals created are dependent on the comma-separated list
-% of \meta{conditions}, which should be one or more of \texttt{p},
-% \texttt{T}, \texttt{F} and \texttt{TF}.
+% of \meta{conditions}, which should be one or more of
+% \texttt{T}, \texttt{F} and \texttt{TF}, and for non-protected conditionals
+% \texttt{p}.
+% For public conditionals, a full set of forms should be provided:
+% this contrasts with strictly internal conditionals, where only the
+% required subset need be defined.
% \end{function}
%
-% \begin{function}[updated = 2012-02-06]
-% {
-% \prg_new_protected_conditional:Npnn, \prg_set_protected_conditional:Npnn, \prg_gset_protected_conditional:Npnn,
-% \prg_new_protected_conditional:Nnn, \prg_set_protected_conditional:Nnn, \prg_gset_protected_conditional:Nnn
-% }
-% \begin{syntax}
-% \cs{prg_new_protected_conditional:Npnn} \cs[no-index]{\meta{name}:\meta{arg spec}} \meta{parameters} \Arg{conditions} \Arg{code} \\
-% \cs{prg_new_protected_conditional:Nnn} \cs[no-index]{\meta{name}:\meta{arg spec}} \Arg{conditions} \Arg{code}
-% \end{syntax}
-% These functions create a family of protected conditionals using the
-% same \Arg{code} to perform the test created. The \meta{code} does
-% not need to be expandable. The \texttt{new} version check for
-% existing definitions and perform assignments globally
-% (\emph{cf.}~\cs{cs_new:Npn}) whereas the \texttt{set} version do
-% not (\emph{cf.}~\cs{cs_set:Npn}). The conditionals created are
-% depended on the comma-separated list of \meta{conditions}, which
-% should be one or more of \texttt{T}, \texttt{F} and \texttt{TF} (not
-% \texttt{p}).
-% \end{function}
-%
% The conditionals are defined by \cs{prg_new_conditional:Npnn} and
% friends as:
% \begin{itemize}
@@ -182,7 +169,7 @@
% \prg_gset_eq_conditional:NNn
% }
% \begin{syntax}
-% \cs{prg_new_eq_conditional:NNn} \cs[no-index]{\meta{name_1}:\meta{arg spec_1}} \cs[no-index]{\meta{name_2}:\meta{arg spec_2}} \Arg{conditions}
+% \cs{prg_new_eq_conditional:NNn} \cs[no-index]{\meta{name_1}:\meta{arg spec}} \cs[no-index]{\meta{name_2}:\meta{arg spec}} \Arg{conditions}
% \end{syntax}
% These functions copy a family of conditionals. The \texttt{new} version
% checks for existing definitions (\emph{cf.}~\cs{cs_new_eq:NN}) whereas
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prop.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prop.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3prop.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -1724,7 +1724,7 @@
\exp_after:wN { \tl_to_str:n {#2} }
}
}
- { \exp_after:wN \@@_get_linked:w #1 {#2} \use:n { } { } }
+ { \exp_after:wN \@@_get_linked:w #1 {#2} \exp_not:n { } { } }
}
\cs_new:Npn \@@_item:nnn #1#2#3
{
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3quark.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3quark.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3quark.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3regex.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3regex.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3regex.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -541,7 +541,7 @@
% \begin{syntax}
% \cs{regex_set:Nn} \meta{regex~var} \Arg{regex}
% \end{syntax}
-% Stores a compiled version of the \meta{regular expression} in the
+% Stores a compiled version of the \meta{regex} in the
% \meta{regex~var}. The assignment is local for \cs{regex_set:Nn} and
% global for \cs{regex_gset:Nn}. For instance, this function can be
% used as
@@ -557,7 +557,7 @@
% \end{syntax}
% Creates a new constant \meta{regex~var} or raises an error if the name
% is already taken. The value of the \meta{regex~var} is set
-% globally to the compiled version of the \meta{regular expression}.
+% globally to the compiled version of the \meta{regex}.
% \end{function}
%
% \begin{function}[added = 2021-04-26, updated = 2021-04-29]
@@ -595,7 +595,7 @@
% \begin{syntax}
% \cs{regex_match:nnTF} \Arg{regex} \Arg{token list} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Tests whether the \meta{regular expression} matches any part
+% Tests whether the \meta{regex} matches any part
% of the \meta{token list}. For instance,
% \begin{verbatim}
% \regex_match:nnTF { b [cde]* } { abecdcx } { TRUE } { FALSE }
@@ -614,7 +614,7 @@
% \end{syntax}
% Sets \meta{int var} within the current \TeX{} group level
% equal to the number of times
-% \meta{regular expression} appears in \meta{token list}.
+% \meta{regex} appears in \meta{token list}.
% The search starts by finding the left-most longest match,
% respecting greedy and lazy (non-greedy) operators. Then the search
% starts again from the character following the last character
@@ -673,7 +673,7 @@
% \cs{regex_extract_once:nnN} \Arg{regex} \Arg{token list} \meta{seq~var}
% \cs{regex_extract_once:nnNTF} \Arg{regex} \Arg{token list} \meta{seq~var} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Finds the first match of the \meta{regular expression} in the
+% Finds the first match of the \meta{regex} in the
% \meta{token list}. If it exists, the match is stored as the first
% item of the \meta{seq~var}, and further items are the contents of
% capturing groups, in the order of their opening parenthesis. The
@@ -707,7 +707,7 @@
% \cs{regex_extract_all:nnN} \Arg{regex} \Arg{token list} \meta{seq~var}
% \cs{regex_extract_all:nnNTF} \Arg{regex} \Arg{token list} \meta{seq~var} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Finds all matches of the \meta{regular expression}
+% Finds all matches of the \meta{regex}
% in the \meta{token list}, and stores all the submatch information
% in a single sequence (concatenating the results of
% multiple \cs{regex_extract_once:nnN} calls).
@@ -731,15 +731,15 @@
% \regex_split:NnN, \regex_split:NVN,
% }
% \begin{syntax}
-% \cs{regex_split:nnN} \Arg{regular expression} \Arg{token list} \meta{seq~var}
-% \cs{regex_split:nnNTF} \Arg{regular expression} \Arg{token list} \meta{seq~var} \Arg{true code} \Arg{false code}
+% \cs{regex_split:nnN} \Arg{regex} \Arg{token list} \meta{seq~var}
+% \cs{regex_split:nnNTF} \Arg{regex} \Arg{token list} \meta{seq~var} \Arg{true code} \Arg{false code}
% \end{syntax}
% Splits the \meta{token list} into a sequence of parts, delimited by
-% matches of the \meta{regular expression}. If the \meta{regular expression}
+% matches of the \meta{regex}. If the \meta{regex}
% has capturing groups, then the token lists that they match are stored as
% items of the sequence as well. The assignment to \meta{seq~var} is local.
% If no match is found the resulting \meta{seq~var} has the
-% \meta{token list} as its sole item. If the \meta{regular expression}
+% \meta{token list} as its sole item. If the \meta{regex}
% matches the empty token list, then the \meta{token list} is split
% into single tokens.
% The testing versions insert the \meta{true code} into the input
@@ -763,10 +763,10 @@
% \regex_replace_once:NnN,\regex_replace_once:NVN
% }
% \begin{syntax}
-% \cs{regex_replace_once:nnN} \Arg{regular expression} \Arg{replacement} \meta{tl~var}
-% \cs{regex_replace_once:nnNTF} \Arg{regular expression} \Arg{replacement} \meta{tl~var} \Arg{true code} \Arg{false code}
+% \cs{regex_replace_once:nnN} \Arg{regex} \Arg{replacement} \meta{tl~var}
+% \cs{regex_replace_once:nnNTF} \Arg{regex} \Arg{replacement} \meta{tl~var} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Searches for the \meta{regular expression} in the contents of the
+% Searches for the \meta{regex} in the contents of the
% \meta{tl~var} and replaces the first match with the
% \meta{replacement}. In the \meta{replacement},
% |\0| represents the full match, |\1| represent the contents of the
@@ -780,10 +780,10 @@
% \regex_replace_all:NnN,\regex_replace_all:NVN
% }
% \begin{syntax}
-% \cs{regex_replace_all:nnN} \Arg{regular expression} \Arg{replacement} \meta{tl~var}
-% \cs{regex_replace_all:nnNTF} \Arg{regular expression} \Arg{replacement} \meta{tl~var} \Arg{true code} \Arg{false code}
+% \cs{regex_replace_all:nnN} \Arg{regex} \Arg{replacement} \meta{tl~var}
+% \cs{regex_replace_all:nnNTF} \Arg{regex} \Arg{replacement} \meta{tl~var} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Replaces all occurrences of the \meta{regular expression} in the
+% Replaces all occurrences of the \meta{regex} in the
% contents of the \meta{tl~var}
% by the \meta{replacement}, where |\0| represents
% the full match, |\1| represent the contents of the first capturing
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3seq.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3seq.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3seq.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -189,6 +189,81 @@
% \end{texnote}
% \end{function}
%
+% \begin{function}[added = 2024-12-08]
+% {
+% \seq_set_regex_extract_once:Nnn, \seq_set_regex_extract_once:cnn,
+% \seq_set_regex_extract_once:NNn, \seq_set_regex_extract_once:cNn,
+% \seq_gset_regex_extract_once:Nnn, \seq_gset_regex_extract_once:cnn,
+% \seq_gset_regex_extract_once:NNn, \seq_gset_regex_extract_once:cNn,
+% }
+% \begin{syntax}
+% \cs{seq_set_regex_extract_once:Nnn} \meta{seq~var} \Arg{regex} \Arg{token list}
+% \cs{seq_set_regex_extract_once:NNn} \meta{seq~var} \meta{regex~var} \Arg{token list}
+% \end{syntax}
+% Finds the first match of the \meta{regex} in the
+% \meta{token list}. If it exists, the match is stored as the first
+% item of the \meta{seq~var}, and further items are the contents of
+% capturing groups, in the order of their opening parenthesis.
+% If there is no match, the \meta{seq~var} is cleared.
+% Theses are alternative names for \cs{regex_extract_once:nnN} and friends,
+% with arguments re-ordered for \meta{seq~var} setting;
+% see \pkg{l3regex} chapter for more details of the \meta{regex}
+% format.
+% \end{function}
+%
+% \begin{function}[added = 2024-12-08]
+% {
+% \seq_set_regex_extract_all:Nnn, \seq_set_regex_extract_all:cnn,
+% \seq_set_regex_extract_all:NNn, \seq_set_regex_extract_all:cNn,
+% \seq_gset_regex_extract_all:Nnn, \seq_gset_regex_extract_all:cnn,
+% \seq_gset_regex_extract_all:NNn, \seq_gset_regex_extract_all:cNn,
+% }
+% \begin{syntax}
+% \cs{seq_set_regex_extract_all:Nnn} \meta{seq~var} \Arg{regex} \Arg{token list}
+% \cs{seq_set_regex_extract_all:NNn} \meta{seq~var} \meta{regex~var} \Arg{token list}
+% \end{syntax}
+% Finds all matches of the \meta{regex} in the
+% \meta{token list}, and stores all the submatch information
+% in a single sequence (concatenating the results of
+% multiple \cs{seq_set_regex_extract_all:Nnn} calls).
+% If there is no match, the \meta{seq~var} is cleared.
+% Theses are alternative names for \cs{regex_extract_all:nnN} and friends,
+% with arguments re-ordered for \meta{seq~var} setting;
+% see \pkg{l3regex} chapter for more details of the \meta{regex}
+% format.
+% \end{function}
+%
+% \begin{function}[added = 2024-12-08]
+% {
+% \seq_set_regex_split:Nnn, \seq_set_regex_split:cnn,
+% \seq_set_regex_split:NNn, \seq_set_regex_split:cNn,
+% \seq_gset_regex_split:Nnn, \seq_gset_regex_split:cnn,
+% \seq_gset_regex_split:NNn, \seq_gset_regex_split:cNn,
+% }
+% \begin{syntax}
+% \cs{seq_set_regex_split:Nnn} \meta{seq~var} \Arg{regex} \Arg{token list}
+% \cs{seq_set_regex_split:NNn} \meta{seq~var} \meta{regex~var} \Arg{token list}
+% \end{syntax}
+% Splits the \meta{token list} into a sequence of parts, delimited by
+% matches of the \meta{regular expression}. If the \meta{regular expression}
+% has capturing groups, then the token lists that they match are stored as
+% items of the sequence as well.
+% If no match is found the resulting \meta{seq~var} has the
+% \meta{token list} as its sole item. If the \meta{regular expression}
+% matches the empty token list, then the \meta{token list} is split
+% into single tokens.
+% For example, after
+% \begin{verbatim}
+% \seq_set_regex_split:Nnn \l_path_seq { / } { the/path/for/this/file.tex }
+% \end{verbatim}
+% the sequence |\l_path_seq| contains the items |{the}|, |{path}|,
+% |{for}|, |{this}|, and |{file.tex}|.
+% Theses are alternative names for \cs{regex_split:nnN} and friends,
+% with arguments re-ordered for \meta{seq~var} setting;
+% see \pkg{l3regex} chapter for more details of the \meta{regex}
+% format.
+% \end{function}
+%
% \begin{function}
% {\seq_concat:NNN, \seq_concat:ccc, \seq_gconcat:NNN, \seq_gconcat:ccc}
% \begin{syntax}
@@ -1411,6 +1486,84 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}
+% {
+% \seq_set_regex_extract_once:Nnn, \seq_set_regex_extract_once:cnn,
+% \seq_gset_regex_extract_once:Nnn, \seq_gset_regex_extract_once:cnn
+% }
+% \begin{macro}
+% {
+% \seq_set_regex_extract_all:Nnn, \seq_set_regex_extract_all:cnn,
+% \seq_gset_regex_extract_all:Nnn, \seq_gset_regex_extract_all:cnn
+% }
+% \begin{macro}
+% {
+% \seq_set_regex_extract_once:NNn, \seq_set_regex_extract_once:cNn,
+% \seq_gset_regex_extract_once:NNn, \seq_gset_regex_extract_once:cNn
+% }
+% \begin{macro}
+% {
+% \seq_set_regex_extract_all:NNn, \seq_set_regex_extract_all:cNn,
+% \seq_gset_regex_extract_all:NNn, \seq_gset_regex_extract_all:cNn
+% }
+% \begin{macro}
+% {
+% \seq_set_regex_split:Nnn, \seq_set_regex_split:cnn,
+% \seq_gset_regex_split:Nnn, \seq_gset_regex_split:cnn
+% }
+% \begin{macro}
+% {
+% \seq_set_regex_split:NNn, \seq_set_regex_split:cNn,
+% \seq_gset_regex_split:NNn, \seq_gset_regex_split:cNn
+% }
+% \begin{macrocode}
+\cs_new_protected:Npn \seq_set_regex_extract_once:Nnn #1#2#3
+ { \regex_extract_once:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_once:Nnn { c }
+\cs_new_protected:Npn \seq_set_regex_extract_once:NNn #1#2#3
+ { \regex_extract_once:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_once:NNn { c }
+\cs_new_protected:Npn \seq_set_regex_extract_all:Nnn #1#2#3
+ { \regex_extract_all:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_all:Nnn { c }
+\cs_new_protected:Npn \seq_set_regex_extract_all:NNn #1#2#3
+ { \regex_extract_all:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_all:NNn { c }
+\cs_new_protected:Npn \seq_set_regex_split:Nnn #1#2#3
+ { \regex_split:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_split:Nnn { c }
+\cs_new_protected:Npn \seq_set_regex_split:NNn #1#2#3
+ { \regex_split:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_split:NNn { c }
+\group_begin:
+ \cs_set_protected:Npn \@@_tmp:w #1#2#3
+ {
+ \cs_new_protected:cpe { seq_gset_regex_ #1 :N #2 n } ##1##2##3
+ {
+ \group_begin:
+ \seq_set_eq:NN \exp_not:N \l_@@_tmp_seq ##1
+ \exp_not:c { regex_ #1 :Nn #2 }
+ #3 {##2} {##3} \exp_not:N \l_@@_tmp_seq
+ \seq_gset_eq:NN ##1 \exp_not:N \l_@@_tmp_seq
+ \group_end:
+ }
+ \cs_generate_variant:cn { seq_gset_regex_ #1 :N #2 n } { c }
+ }
+ \@@_tmp:w { extract_once } n { }
+ \@@_tmp:w { extract_once } N \use:n
+ \@@_tmp:w { extract_all } n { }
+ \@@_tmp:w { extract_all } N \use:n
+ \@@_tmp:w { split } n { }
+ \@@_tmp:w { split } N \use:n
+\group_end:
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\seq_concat:NNN, \seq_concat:ccc}
% \UnitTested
% \begin{macro}{\seq_gconcat:NNN, \seq_gconcat:ccc}
@@ -1525,10 +1678,10 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{variable}{\l_@@_remove_seq}
+% \begin{variable}{\l_@@_tmp_seq}
% An internal sequence for the removal routines.
% \begin{macrocode}
-\seq_new:N \l_@@_remove_seq
+\seq_new:N \l_@@_tmp_seq
% \end{macrocode}
% \end{variable}
%
@@ -1545,13 +1698,13 @@
{ \@@_remove_duplicates:NN \seq_gset_eq:NN }
\cs_new_protected:Npn \@@_remove_duplicates:NN #1#2
{
- \seq_clear:N \l_@@_remove_seq
+ \seq_clear:N \l_@@_tmp_seq
\seq_map_inline:Nn #2
{
- \seq_if_in:NnF \l_@@_remove_seq {##1}
- { \seq_put_right:Nn \l_@@_remove_seq {##1} }
+ \seq_if_in:NnF \l_@@_tmp_seq {##1}
+ { \seq_put_right:Nn \l_@@_tmp_seq {##1} }
}
- #1 #2 \l_@@_remove_seq
+ #1 #2 \l_@@_tmp_seq
}
\cs_generate_variant:Nn \seq_remove_duplicates:N { c }
\cs_generate_variant:Nn \seq_gremove_duplicates:N { c }
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3skip.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3skip.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3skip.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -769,7 +769,7 @@
% \end{syntax}
% Sets \meta{skip} to the value of \meta{skip expr}, which
% must evaluate to a length with units and may include a rubber
-% component (for example |1 cm plus 0.5 cm|.
+% component (for example |1 cm plus 0.5 cm|).
% \end{function}
%
% \begin{function}
@@ -1000,7 +1000,7 @@
%
% \begin{function}[updated = 2011-10-22]
% {
-% \muskip_set:Nn, \muskip_set:cn, \muskip_set:Nn, \muskip_set:cn,
+% \muskip_set:Nn, \muskip_set:cn, \muskip_set:NV, \muskip_set:cV,
% \muskip_gset:Nn, \muskip_gset:cn, \muskip_gset:NV, \muskip_gset:cV
% }
% \begin{syntax}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sort.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sort.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sort.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str-convert.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str-convert.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str-convert.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -2624,9 +2624,7 @@
\exp_args:Ne \tl_to_str:n
{ \str_map_function:nN {#1} \@@_convert_pdfname:n }
}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \@@_convert_pdfname:n #1
{
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3str.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sys.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sys.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3sys.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -107,6 +107,26 @@
% |\sys_if_engine_ptex_p:| is true for \epTeX{} but false for \eupTeX{}.
% \end{function}
%
+% \begin{function}[added = 2024-11-05, pTF]{\sys_if_engine_opentype:}
+% \begin{syntax}
+% \cs{sys_if_engine_opentype_p:}
+% \cs{sys_if_engine_opentype:TF} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% Conditional which allows functionality-specific code to be used.
+% The test is true for engines which can use OpenType fonts and
+% thus full Unicode typesetting. This tests for features not engine
+% name, but currently is equivalent to requiring either
+% \XeTeX{} or \LuaTeX{}.
+% \begin{texnote}
+% The underlying test here checks for \tn{Umathcode}, which
+% is used to implement OpenType math font typesetting. Any
+% engine which should give a \texttt{true} result here needs
+% to provide general Unicode support (accepting the full UTF-8
+% range for character codes), a mechanism to load system fonts
+% and a suitable interface for math mode typesetting.
+% \end{texnote}
+% \end{function}
+%
% \begin{variable}[added = 2015-09-19]{\c_sys_engine_str}
% The current engine given as a lower case string: one of
% |luatex|, |pdftex|, |ptex|, |uptex| or |xetex|.
@@ -514,6 +534,14 @@
% \end{variable}
% \end{macro}
%
+% \begin{function}[pTF]{\sys_if_engine_opentype:}
+% \begin{macrocode}
+\@@_const:nn
+ { sys_if_engine_opentype }
+ { \cs_if_exist_p:N \tex_Umathcode:D }
+% \end{macrocode}
+% \end{function}
+%
% \begin{variable}{\c_sys_engine_exec_str,\c_sys_engine_format_str}
% Take the functions defined above, and set up the engine and format
% names. \cs{c_sys_engine_exec_str} differs from \cs{c_sys_engine_str}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-case.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-case.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-case.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -801,9 +801,7 @@
% the standard catcode. If neither are true, we set as 13 on the grounds that
% this will be what is used anyway!
% \begin{macrocode}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \@@_change_case_catcode:nn #1#2
{ \@@_char_catcode:N #1 }
@@ -2319,9 +2317,7 @@
% A few adjustments to case mapping for combining chars: these are not needed
% for the Unicode engines
% \begin{macrocode}
-\bool_lazy_or:nnF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:F
{
\text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-map.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-map.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-map.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-purify.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-purify.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text-purify.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3text.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -654,9 +654,7 @@
% Grab a codepoint and apply some code to it: here |#1| should expect one
% following \emph{balanced text}.
% \begin{macrocode}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \@@_codepoint_process:nN #1#2 { #1 {#2} }
}
@@ -710,9 +708,7 @@
% Allows comparison for all engines using a first \enquote{character} followed
% by a codepoint.
% \begin{macrocode}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\prg_new_conditional:Npnn
\@@_codepoint_compare:nNn #1#2#3 { TF , p }
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-analysis.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-analysis.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-analysis.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-build.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-build.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl-build.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3tl.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -333,8 +333,8 @@
% Tests if the \meta{token list} and the special \cs{c_novalue_tl} marker
% contain the same list of tokens, both in respect of character codes and
% category codes. This means that
-% \cs{exp_args:No} \cs{tl_if_novalue:nTF} \{ \cs{c_novalue_tl} \} is
-% logically \texttt{true} but \cs{tl_if_novalue:nTF} \{ \cs{c_novalue_tl} \}
+% \cs{exp_args:No} \cs{tl_if_novalue:nTF} \texttt\{ \cs{c_novalue_tl} \texttt\} is
+% logically \texttt{true} but \cs{tl_if_novalue:nTF} \texttt\{ \cs{c_novalue_tl} \texttt\}
% is logically \texttt{false}.
% This function is intended to allow construction
% of flexible document interface structures in which missing optional
@@ -376,6 +376,28 @@
% Token groups (|{|\ldots|}|) are not single tokens.
% \end{function}
%
+% \begin{function}[TF, added = 2024-12-08]
+% {
+% \tl_if_regex_match:nn, \tl_if_regex_match:Vn,
+% \tl_if_regex_match:nN, \tl_if_regex_match:VN,
+% }
+% \begin{syntax}
+% \cs{tl_if_regex_match:nnTF} \Arg{token list} \Arg{regex} \Arg{true code} \Arg{false code}
+% \cs{tl_if_regex_match:nNTF} \Arg{token list} \meta{regex~var} \Arg{true code} \Arg{false code}
+% \end{syntax}
+% Tests whether the \meta{regular expression} matches any part
+% of the \meta{token list}. For instance,
+% \begin{verbatim}
+% \tl_if_regex_match:nnTF { abecdcx } { b [cde]* } { TRUE } { FALSE }
+% \tl_if_regex_match:nnTF { example } { [b-dq-w] } { TRUE } { FALSE }
+% \end{verbatim}
+% leaves \texttt{TRUE} then \texttt{FALSE} in the input stream.
+% Theses are alternative names for \cs{regex_match:nnTF} and friends,
+% with arguments re-ordered for \meta{token list} testing;
+% see \pkg{l3regex} chapter for more details of the \meta{regex}
+% format.
+% \end{function}
+%
% \subsection{Testing the first token}
%
% \begin{function}[updated = 2012-07-09, EXP, pTF]
@@ -1158,6 +1180,51 @@
% for an example).
% \end{function}
%
+% \begin{function}[added = 2024-12-08]
+% {
+% \tl_regex_replace_once:Nnn, \tl_regex_replace_once:cnn,
+% \tl_regex_replace_once:NNn, \tl_regex_replace_once:cNn,
+% \tl_regex_greplace_once:Nnn, \tl_regex_greplace_once:cnn,
+% \tl_regex_greplace_once:NNn, \tl_regex_greplace_once:cNn
+% }
+% \begin{syntax}
+% \cs{tl_regex_replace_once:Nnn} \meta{tl~var} \Arg{regex} \Arg{replacement}
+% \cs{tl_regex_replace_once:NNn} \meta{tl~var} \meta{regex~var} \Arg{replacement}
+% \end{syntax}
+% Searches for the \meta{regular expression} in the contents of the
+% \meta{tl~var} and replaces the first match with the
+% \meta{replacement}. In the \meta{replacement},
+% |\0| represents the full match, |\1| represent the contents of the
+% first capturing group, |\2| of the second, \emph{etc.}
+% Theses are alternative names for \cs{regex_replace_once:nnN} and friends,
+% with arguments re-ordered for \meta{tl~var} setting;
+% See \pkg{l3regex} chapter for more details of the \meta{regex}
+% format.
+% \end{function}
+%
+% \begin{function}[added = 2024-12-08]
+% {
+% \tl_regex_replace_all:Nnn, \tl_regex_replace_all:cnn,
+% \tl_regex_replace_all:NNn, \tl_regex_replace_all:cNn,
+% \tl_regex_greplace_all:Nnn, \tl_regex_greplace_all:cnn,
+% \tl_regex_greplace_all:NNn, \tl_regex_greplace_all:cNn
+% }
+% \begin{syntax}
+% \cs{tl_regex_replace_all:Nnn} \meta{tl~var} \Arg{regex} \Arg{replacement}
+% \cs{tl_regex_replace_all:NNn} \meta{tl~var} \meta{regex~var} \Arg{replacement}
+% \end{syntax}
+% Replaces all occurrences of the \meta{regular expression} in the
+% contents of the \meta{tl~var}
+% by the \meta{replacement}, where |\0| represents
+% the full match, |\1| represent the contents of the first capturing
+% group, |\2| of the second, \emph{etc.} Every match is treated
+% independently, and matches cannot overlap.
+% Theses are alternative names for \cs{regex_replace_all:nnN} and friends,
+% with arguments re-ordered for \meta{tl~var} setting;
+% see \pkg{l3regex} chapter for more details of the \meta{regex}
+% format.
+% \end{function}
+%
% \begin{function}[updated = 2011-08-11]
% {
% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Ne,
@@ -2249,6 +2316,57 @@
%
% \begin{macro}
% {
+% \tl_regex_replace_once:Nnn, \tl_regex_replace_once:cnn,
+% \tl_regex_replace_once:NNn, \tl_regex_replace_once:cNn,
+% \tl_regex_greplace_once:Nnn, \tl_regex_greplace_once:cnn,
+% \tl_regex_greplace_once:NNn, \tl_regex_greplace_once:cNn
+% }
+% \begin{macro}
+% {
+% \tl_regex_replace_all:Nnn, \tl_regex_replace_all:cnn,
+% \tl_regex_replace_all:NNn, \tl_regex_replace_all:cNn,
+% \tl_regex_greplace_all:Nnn, \tl_regex_greplace_all:cnn,
+% \tl_regex_greplace_all:NNn, \tl_regex_greplace_all:cNn
+% }
+% Wrappers.
+% \begin{macrocode}
+\cs_new_protected:Npn \tl_regex_replace_once:Nnn #1#2#3
+ { \regex_replace_once:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_once:Nnn { c }
+\cs_new_protected:Npn \tl_regex_replace_once:NNn #1#2#3
+ { \regex_replace_once:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_once:NNn { c }
+\cs_new_protected:Npn \tl_regex_replace_all:Nnn #1#2#3
+ { \regex_replace_all:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_all:Nnn { c }
+\cs_new_protected:Npn \tl_regex_replace_all:NNn #1#2#3
+ { \regex_replace_all:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_all:NNn { c }
+\group_begin:
+ \cs_set_protected:Npn \@@_tmp:w #1#2#3
+ {
+ \cs_new_protected:cpe { tl_regex_greplace_ #1 :N #2 n } ##1##2##3
+ {
+ \group_begin:
+ \tl_set_eq:NN \exp_not:N \l_@@_internal_a_tl ##1
+ \exp_not:c { regex_replace_ #1 :Nn #2 }
+ #3 {##2} {##3} \exp_not:N \l_@@_internal_a_tl
+ \tl_gset_eq:NN ##1 \exp_not:N \l_@@_internal_a_tl
+ \group_end:
+ }
+ \cs_generate_variant:cn { tl_regex_greplace_ #1 :N #2 n } { c }
+ }
+ \@@_tmp:w { once } n { }
+ \@@_tmp:w { once } N \use:n
+ \@@_tmp:w { all } n { }
+ \@@_tmp:w { all } N \use:n
+\group_end:
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}
+% {
% \tl_remove_once:Nn, \tl_remove_once:NV, \tl_remove_once:Ne,
% \tl_remove_once:cn, \tl_remove_once:cV, \tl_remove_once:ce
% }
@@ -2611,6 +2729,29 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}
+% {
+% \tl_if_regex_match:nn, \tl_if_regex_match:Vn,
+% \tl_if_regex_match:nN, \tl_if_regex_match:VN,
+% }
+% \begin{macrocode}
+\prg_new_protected_conditional:Npnn \tl_if_regex_match:nn #1#2 { TF , T , F }
+ {
+ \regex_match:nnTF {#2} {#1}
+ \prg_return_true: \prg_return_false:
+ }
+\prg_generate_conditional_variant:Nnn \tl_if_regex_match:nn
+ { V } { TF , T , F }
+\prg_new_protected_conditional:Npnn \tl_if_regex_match:nN #1#2 { TF , T , F }
+ {
+ \regex_match:nNTF {#2} #1
+ \prg_return_true: \prg_return_false:
+ }
+\prg_generate_conditional_variant:Nnn \tl_if_regex_match:nN
+ { V } { TF , T , F }
+% \end{macrocode}
+% \end{macro}
+%
% \subsection{Mapping over token lists}
%
% \begin{macro}
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3token.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3token.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3token.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -151,7 +151,7 @@
% $0$ is not allowed.
% Active characters cannot be generated in older versions of \XeTeX{}.
% Another way to build token lists with unusual category codes is
-% \cs{regex_replace:nnN} |{.*}| \Arg{replacement} \meta{tl~var}.
+% \cs{regex_replace_all:nnN} |{.*}| \Arg{replacement} \meta{tl~var}.
% \begin{texnote}
% Exactly two expansions are needed to produce the character.
% \end{texnote}
@@ -443,12 +443,6 @@
% not be used other than for category code tests.
% \end{variable}
%
-% \begin{variable}{\c_catcode_active_tl}
-% A token list containing an active token. This is used internally
-% for test purposes and should not be used other than in
-% appropriately-constructed category code tests.
-% \end{variable}
-%
% \section{Converting tokens}
%
% \begin{function}[EXP]{\token_to_meaning:N, \token_to_meaning:c}
@@ -799,7 +793,7 @@
% stream while leaving it in place. This is handled using the
% \enquote{peek} functions. The generic \cs{peek_after:Nw} is provided
% along with a family of predefined tests for common cases. Peeking
-% ahead does \emph{not} skip spaces: rather, \cs{peek_remove_spaces:n}.
+% ahead does \emph{not} skip spaces: rather, \cs{peek_remove_spaces:n}
% should be used. In addition, using \cs{peek_analysis_map_inline:n},
% one can map through the following tokens in the input stream and
% repeatedly perform some tests.
@@ -1833,12 +1827,12 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{variable}{\c_catcode_active_tl}
+% \begin{variable}{\c_@@_active_tl}
% Not an implicit token!
% \begin{macrocode}
\group_begin:
\char_set_catcode_active:N \*
- \tl_const:Nn \c_catcode_active_tl { \exp_not:N * }
+ \tl_const:Nn \c_@@_active_tl { \exp_not:N * }
\group_end:
% \end{macrocode}
% \end{variable}
@@ -1975,13 +1969,13 @@
%
% \begin{macro}[pTF]{\token_if_active:N}
% Check if token is an active char token. We use the constant
-% \cs{c_catcode_active_tl} for this. A technical point is that
-% \cs{c_catcode_active_tl} is in fact a macro expanding to
+% \cs{c_@@_active_tl} for this. A technical point is that
+% \cs{c_@@_active_tl} is in fact a macro expanding to
% |\exp_not:N *|, where |*| is active.
% \begin{macrocode}
\prg_new_conditional:Npnn \token_if_active:N #1 { p , T , F , TF }
{
- \if_catcode:w \exp_not:N #1 \c_catcode_active_tl
+ \if_catcode:w \exp_not:N #1 \c_@@_active_tl
\prg_return_true: \else: \prg_return_false: \fi:
}
% \end{macrocode}
@@ -2833,7 +2827,7 @@
% \peek_meaning_remove:N,
% }
% The public functions themselves cannot be defined using
-% \cs{prg_new_conditional:Npnn}. Instead, the |TF|, |T|, |F| variants
+% \cs{prg_new_protected_conditional:Npnn}. Instead, the |TF|, |T|, |F| variants
% are defined in terms of corresponding variants of
% \cs{@@_token_generic:NNTF} or \cs{@@_token_remove_generic:NNTF},
% with first argument one of \cs{@@_execute_branches_catcode:},
Modified: trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3unicode.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3unicode.dtx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/source/latex-dev/l3kernel/l3unicode.dtx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-11-02}
+% \date{Released 2024-12-09}
%
% \maketitle
%
@@ -162,9 +162,7 @@
% can generate character tokens for document use: those are defined below,
% in the data recovery setup.
% \begin{macrocode}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \codepoint_str_generate:n #1
{
@@ -390,9 +388,7 @@
{ \exp_args:Ne \@@_to_nfd:n { \int_eval:n {#1} } }
\cs_new:Npn \@@_to_nfd:n #1
{ \@@_to_nfd:nn {#1} { \char_value_catcode:n {#1} } }
-\bool_lazy_or:nnF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:F
{
\cs_gset:Npn \@@_to_nfd:n #1
{
Modified: trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex 2024-12-09 21:14:45 UTC (rev 73085)
@@ -75,7 +75,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2024-11-02}%
+\def\ExplFileDate{2024-12-09}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -3864,6 +3864,37 @@
\cs_new:Npn \__tl_replace_next_aux:w { \__tl_replace_next:w { } { } }
\cs_new_eq:NN \__tl_replace_wrap:w ?
\cs_new_eq:NN \__tl_replace_next:w ?
+\cs_new_protected:Npn \tl_regex_replace_once:Nnn #1#2#3
+ { \regex_replace_once:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_once:Nnn { c }
+\cs_new_protected:Npn \tl_regex_replace_once:NNn #1#2#3
+ { \regex_replace_once:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_once:NNn { c }
+\cs_new_protected:Npn \tl_regex_replace_all:Nnn #1#2#3
+ { \regex_replace_all:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_all:Nnn { c }
+\cs_new_protected:Npn \tl_regex_replace_all:NNn #1#2#3
+ { \regex_replace_all:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \tl_regex_replace_all:NNn { c }
+\group_begin:
+ \cs_set_protected:Npn \__tl_tmp:w #1#2#3
+ {
+ \cs_new_protected:cpe { tl_regex_greplace_ #1 :N #2 n } ##1##2##3
+ {
+ \group_begin:
+ \tl_set_eq:NN \exp_not:N \l__tl_internal_a_tl ##1
+ \exp_not:c { regex_replace_ #1 :Nn #2 }
+ #3 {##2} {##3} \exp_not:N \l__tl_internal_a_tl
+ \tl_gset_eq:NN ##1 \exp_not:N \l__tl_internal_a_tl
+ \group_end:
+ }
+ \cs_generate_variant:cn { tl_regex_greplace_ #1 :N #2 n } { c }
+ }
+ \__tl_tmp:w { once } n { }
+ \__tl_tmp:w { once } N \use:n
+ \__tl_tmp:w { all } n { }
+ \__tl_tmp:w { all } N \use:n
+\group_end:
\cs_new_protected:Npn \tl_remove_once:Nn #1#2
{ \tl_replace_once:Nnn #1 {#2} { } }
\cs_new_protected:Npn \tl_gremove_once:Nn #1#2
@@ -4016,6 +4047,20 @@
\prg_return_false:
\fi:
}
+\prg_new_protected_conditional:Npnn \tl_if_regex_match:nn #1#2 { TF , T , F }
+ {
+ \regex_match:nnTF {#2} {#1}
+ \prg_return_true: \prg_return_false:
+ }
+\prg_generate_conditional_variant:Nnn \tl_if_regex_match:nn
+ { V } { TF , T , F }
+\prg_new_protected_conditional:Npnn \tl_if_regex_match:nN #1#2 { TF , T , F }
+ {
+ \regex_match:nNTF {#2} #1
+ \prg_return_true: \prg_return_false:
+ }
+\prg_generate_conditional_variant:Nnn \tl_if_regex_match:nN
+ { V } { TF , T , F }
\cs_new:Npn \tl_map_function:nN #1#2
{
\__tl_map_function:Nnnnnnnnn #2 #1
@@ -5619,6 +5664,45 @@
#1 #2 { #3 }
\__seq_pop_item_def:
}
+\cs_new_protected:Npn \seq_set_regex_extract_once:Nnn #1#2#3
+ { \regex_extract_once:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_once:Nnn { c }
+\cs_new_protected:Npn \seq_set_regex_extract_once:NNn #1#2#3
+ { \regex_extract_once:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_once:NNn { c }
+\cs_new_protected:Npn \seq_set_regex_extract_all:Nnn #1#2#3
+ { \regex_extract_all:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_all:Nnn { c }
+\cs_new_protected:Npn \seq_set_regex_extract_all:NNn #1#2#3
+ { \regex_extract_all:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_extract_all:NNn { c }
+\cs_new_protected:Npn \seq_set_regex_split:Nnn #1#2#3
+ { \regex_split:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_split:Nnn { c }
+\cs_new_protected:Npn \seq_set_regex_split:NNn #1#2#3
+ { \regex_split:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \seq_set_regex_split:NNn { c }
+\group_begin:
+ \cs_set_protected:Npn \__seq_tmp:w #1#2#3
+ {
+ \cs_new_protected:cpe { seq_gset_regex_ #1 :N #2 n } ##1##2##3
+ {
+ \group_begin:
+ \seq_set_eq:NN \exp_not:N \l__seq_tmp_seq ##1
+ \exp_not:c { regex_ #1 :Nn #2 }
+ #3 {##2} {##3} \exp_not:N \l__seq_tmp_seq
+ \seq_gset_eq:NN ##1 \exp_not:N \l__seq_tmp_seq
+ \group_end:
+ }
+ \cs_generate_variant:cn { seq_gset_regex_ #1 :N #2 n } { c }
+ }
+ \__seq_tmp:w { extract_once } n { }
+ \__seq_tmp:w { extract_once } N \use:n
+ \__seq_tmp:w { extract_all } n { }
+ \__seq_tmp:w { extract_all } N \use:n
+ \__seq_tmp:w { split } n { }
+ \__seq_tmp:w { split } N \use:n
+\group_end:
\cs_new_protected:Npn \seq_concat:NNN #1#2#3
{ \tl_set:Nf #1 { \exp_after:wN \use_i:nn \exp_after:wN #2 #3 } }
\cs_new_protected:Npn \seq_gconcat:NNN #1#2#3
@@ -5659,7 +5743,7 @@
\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
+\seq_new:N \l__seq_tmp_seq
\cs_new_protected:Npn \seq_remove_duplicates:N
{ \__seq_remove_duplicates:NN \seq_set_eq:NN }
\cs_new_protected:Npn \seq_gremove_duplicates:N
@@ -5666,13 +5750,13 @@
{ \__seq_remove_duplicates:NN \seq_gset_eq:NN }
\cs_new_protected:Npn \__seq_remove_duplicates:NN #1#2
{
- \seq_clear:N \l__seq_remove_seq
+ \seq_clear:N \l__seq_tmp_seq
\seq_map_inline:Nn #2
{
- \seq_if_in:NnF \l__seq_remove_seq {##1}
- { \seq_put_right:Nn \l__seq_remove_seq {##1} }
+ \seq_if_in:NnF \l__seq_tmp_seq {##1}
+ { \seq_put_right:Nn \l__seq_tmp_seq {##1} }
}
- #1 #2 \l__seq_remove_seq
+ #1 #2 \l__seq_tmp_seq
}
\cs_generate_variant:Nn \seq_remove_duplicates:N { c }
\cs_generate_variant:Nn \seq_gremove_duplicates:N { c }
@@ -6470,6 +6554,30 @@
{ \tex_global:D #1 = \__int_eval:w #2 \__int_eval_end: }
\cs_generate_variant:Nn \int_set:Nn { NV , c , cV }
\cs_generate_variant:Nn \int_gset:Nn { NV , c , cV }
+\cs_new_protected:Npn \int_set_regex_count:Nnn #1#2#3
+ { \regex_count:nnN {#2} {#3} #1 }
+\cs_generate_variant:Nn \int_set_regex_count:Nnn { c }
+\cs_new_protected:Npn \int_gset_regex_count:Nnn #1#2#3
+ {
+ \group_begin:
+ \int_set_eq:NN \l__int_internal_a_int #1
+ \regex_count:nnN {#2} {#3} \l__int_internal_a_int
+ \int_gset_eq:NN #1 \l__int_internal_a_int
+ \group_end:
+ }
+\cs_generate_variant:Nn \int_gset_regex_count:Nnn { c }
+\cs_new_protected:Npn \int_set_regex_count:NNn #1#2#3
+ { \regex_count:NnN #2 {#3} #1 }
+\cs_generate_variant:Nn \int_set_regex_count:Nnn { c }
+\cs_new_protected:Npn \int_gset_regex_count:NNn #1#2#3
+ {
+ \group_begin:
+ \int_set_eq:NN \l__int_internal_a_int #1
+ \regex_count:NnN #2 {#3} \l__int_internal_a_int
+ \int_gset_eq:NN #1 \l__int_internal_a_int
+ \group_end:
+ }
+\cs_generate_variant:Nn \int_gset_regex_count:NNn { c }
\cs_new_eq:NN \int_use:N \tex_the:D
\cs_new:Npn \int_use:c #1 { \tex_the:D \cs:w #1 \cs_end: }
\cs_new_protected:Npn \__int_compare_error:
@@ -7582,6 +7690,9 @@
\__sys_const:nn { sys_if_engine_ #1 }
{ \str_if_eq_p:Vn \c_sys_engine_str {#1} }
}
+\__sys_const:nn
+ { sys_if_engine_opentype }
+ { \cs_if_exist_p:N \tex_Umathcode:D }
\group_begin:
\cs_set_eq:NN \lua_now:e \tex_directlua:D
\str_const:Ne \c_sys_engine_exec_str
@@ -8638,6 +8749,8 @@
\cs_new:Npn \clist_use:Nn #1#2
{ \clist_use:Nnnn #1 {#2} {#2} {#2} }
\cs_generate_variant:Nn \clist_use:Nn { c }
+\cs_new_eq:NN \clist_use:N \tl_use:N
+\cs_generate_variant:Nn \clist_use:N { c }
\cs_new:Npn \clist_use:nnnn #1#2#3#4
{
\__clist_use:Nw \__clist_use_none_delimit_by_s_stop:w
@@ -9072,7 +9185,7 @@
\group_end:
\group_begin:
\char_set_catcode_active:N \*
- \tl_const:Nn \c_catcode_active_tl { \exp_not:N * }
+ \tl_const:Nn \c__token_active_tl { \exp_not:N * }
\group_end:
\prg_new_conditional:Npnn \token_if_group_begin:N #1 { p , T , F , TF }
{
@@ -9130,7 +9243,7 @@
}
\prg_new_conditional:Npnn \token_if_active:N #1 { p , T , F , TF }
{
- \if_catcode:w \exp_not:N #1 \c_catcode_active_tl
+ \if_catcode:w \exp_not:N #1 \c__token_active_tl
\prg_return_true: \else: \prg_return_false: \fi:
}
\prg_new_eq_conditional:NNn \token_if_eq_meaning:NN \cs_if_eq:NN
@@ -9932,7 +10045,7 @@
\exp_after:wN { \tl_to_str:n {#2} }
}
}
- { \exp_after:wN \__prop_get_linked:w #1 {#2} \use:n { } { } }
+ { \exp_after:wN \__prop_get_linked:w #1 {#2} \exp_not:n { } { } }
}
\cs_new:Npn \__prop_item:nnn #1#2#3
{
@@ -22285,6 +22398,8 @@
}
\cs_generate_variant:Nn \bitset_to_arabic:N { c }
\cs_generate_variant:Nn \bitset_to_bin:N { c }
+\cs_new_eq:NN \bitset_use:N \tl_use:N
+\cs_generate_variant:Nn \bitset_use:N { c }
\cs_new:Npn \bitset_item:Nn #1#2
{
\prop_if_in:cnTF { g__bitset_ \cs_to_str:N #1 _name_prop } {#2}
@@ -22667,8 +22782,7 @@
\group_begin:
\int_set:Nn \tex_endlinechar:D { 32 }
\char_set_catcode_invalid:n { 0 }
- \bool_lazy_or:nnTF
- { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: }
+ \sys_if_engine_opentype:TF
{ \int_step_function:nN { 31 } \char_set_catcode_invalid:n }
{ \int_step_function:nN { 31 } \char_set_catcode_active:n }
\int_step_function:nnN { 33 } { 64 } \char_set_catcode_other:n
@@ -22693,8 +22807,7 @@
\char_set_catcode_group_end:n { 125 } % right brace
\char_set_catcode_space:n { 126 } % tilde
\char_set_catcode_invalid:n { 127 } % ^^?
- \bool_lazy_or:nnF
- { \sys_if_engine_xetex_p: } { \sys_if_engine_luatex_p: }
+ \sys_if_engine_opentype:F
{ \int_step_function:nnN { 128 } { 255 } \char_set_catcode_active:n }
\__cctab_gset:n { \c_code_cctab }
\group_end:
@@ -24473,9 +24586,7 @@
\exp_args:Ne \tl_to_str:n
{ \str_map_function:nN {#1} \__str_convert_pdfname:n }
}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \__str_convert_pdfname:n #1
{
@@ -33360,9 +33471,7 @@
\prop_gput:Nnn \g_msg_module_name_prop { luatex } { LaTeX }
\prop_gput:Nnn \g_msg_module_type_prop { luatex } { }
%% File: l3unicode.dtx
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \codepoint_str_generate:n #1
{
@@ -33540,9 +33649,7 @@
{ \exp_args:Ne \__codepoint_to_nfd:n { \int_eval:n {#1} } }
\cs_new:Npn \__codepoint_to_nfd:n #1
{ \__codepoint_to_nfd:nn {#1} { \char_value_catcode:n {#1} } }
-\bool_lazy_or:nnF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:F
{
\cs_gset:Npn \__codepoint_to_nfd:n #1
{
@@ -34130,9 +34237,7 @@
}
{ \prg_return_false: }
}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \__text_codepoint_process:nN #1#2 { #1 {#2} }
}
@@ -34170,9 +34275,7 @@
\cs_new:Npn \__text_codepoint_process:nNNNN #1#2#3#4#5
{ #1 {#2#3#4#5} }
}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\prg_new_conditional:Npnn
\__text_codepoint_compare:nNn #1#2#3 { TF , p }
@@ -35164,9 +35267,7 @@
}
}
}
-\bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:TF
{
\cs_new:Npn \__text_change_case_catcode:nn #1#2
{ \__text_char_catcode:N #1 }
@@ -36280,9 +36381,7 @@
}
}
}
-\bool_lazy_or:nnF
- { \sys_if_engine_luatex_p: }
- { \sys_if_engine_xetex_p: }
+\sys_if_engine_opentype:F
{
\text_declare_uppercase_mapping:nn { "01F0 } { \v { J } }
}
Modified: trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex 2024-12-09 21:14:45 UTC (rev 73085)
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2024-11-02}%
+\def\ExplFileDate{2024-12-09}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
Modified: trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx 2024-12-09 21:14:45 UTC (rev 73085)
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2024-11-02}%
+\def\ExplFileDate{2024-12-09}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
Modified: trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty 2024-12-09 21:14:45 UTC (rev 73085)
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2024-11-02}%
+\def\ExplFileDate{2024-12-09}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%
Modified: trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def 2024-12-09 21:14:45 UTC (rev 73085)
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: l3debug.dtx
-\ProvidesExplFile{l3debug.def}{2024-11-02}{}{L3 Debugging support}
+\ProvidesExplFile{l3debug.def}{2024-12-09}{}{L3 Debugging support}
\scan_new:N \s__debug_stop
\cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1}
\quark_new:N \q__debug_recursion_tail
Modified: trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls 2024-12-09 21:14:09 UTC (rev 73084)
+++ trunk/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls 2024-12-09 21:14:45 UTC (rev 73085)
@@ -20,7 +20,7 @@
%%
%% File: l3doc.dtx
\RequirePackage{calc}
-\ProvidesExplClass{l3doc}{2024-11-02}{}
+\ProvidesExplClass{l3doc}{2024-12-09}{}
{L3 Experimental documentation class}
\clist_new:N \g_docinput_clist
\seq_new:N \g_doc_functions_seq
@@ -439,8 +439,7 @@
\raggedbottom
\bool_if:NT \g__codedoc_lmodern_bool
{
- \bool_lazy_or:nnTF
- { \sys_if_engine_luatex_p: }{ \sys_if_engine_xetex_p: }
+ \sys_if_engine_opentype:TF
{
\group_begin:
\ttfamily
@@ -1720,7 +1719,7 @@
\AddToHook{env/variable/begin}{\def\footnote{\__codedoc_fn_footnote:nn{variable}}}
\newenvironment{TemplateInterfaceDescription}[1]
{
- \subsection{The~object~type~`#1'}
+ \subsection{The~template~type~`#1'}
\begingroup
\@beginparpenalty\@M
\description
@@ -1736,7 +1735,7 @@
}
\newenvironment{TemplateDescription}[2]
{
- \subsection{The~template~`#2'~(object~type~#1)}
+ \subsection{The~template~`#2'~(template~type~#1)}
\subsubsection*{Attributes:}
\begingroup
\@beginparpenalty\@M
More information about the tex-live-commits
mailing list.