summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-06-17 19:59:40 +0000
committerKarl Berry <karl@freefriends.org>2023-06-17 19:59:40 +0000
commit9d9cdc2b221d32ae6a21751625918108422dcbd6 (patch)
tree6fd365fd7b22818d1f505064bb7ee10bc9f5d643 /Master
parentfb8f69e8be474162b1ec98c0e839e6b7ec6f2ff8 (diff)
l3kernel (17jun23)
git-svn-id: svn://tug.org/texlive/trunk@67394 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md15
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/expl3.pdfbin623094 -> 622937 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.pdfbin1722452 -> 1722473 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3doc.pdfbin558448 -> 558322 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdfbin152256 -> 152121 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news.pdfbin395887 -> 395887 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news01.pdfbin122712 -> 122712 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news02.pdfbin150674 -> 150674 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news03.pdfbin148700 -> 148700 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news04.pdfbin114586 -> 114586 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news05.pdfbin112483 -> 112483 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news06.pdfbin151568 -> 151568 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news07.pdfbin128313 -> 128313 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news08.pdfbin163457 -> 163457 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news09.pdfbin250136 -> 250136 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news10.pdfbin150283 -> 150283 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news11.pdfbin170073 -> 170073 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3news12.pdfbin204998 -> 204998 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdfbin81695 -> 81695 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdfbin296797 -> 296641 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdfbin243431 -> 243276 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdfbin218589 -> 218435 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex2
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.pdfbin7352030 -> 7358891 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.tex2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3box.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3clist.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3color.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3debug.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3doc.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3expan.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3file.dtx16
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3flag.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3names.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prop.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3quark.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3regex.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3seq.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3skip.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sort.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3sys.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx299
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3text.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx2
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx10
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex209
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.ltx2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
90 files changed, 471 insertions, 212 deletions
diff --git a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
index 2ad6244fbd3..1be2493081d 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
+++ b/Master/texmf-dist/doc/latex/l3kernel/CHANGELOG.md
@@ -7,6 +7,18 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2023-06-16]
+
+### Changed
+- Exclude entries in `\l_text_case_exclude_arg_tl` from expansion in `\text_expand:n`
+ (latex3/latex2e\#904)
+- Generate _dialytika_ if appropriate when uppercasing Greek words starting with a
+ vowel taking a breathing mark (issue \#1228)
+- Retain stress diacritics when uppercasing Greek (issue \#1230)
+- Expand (partial) paths in `\l_file_search_path_seq` and `\input@path`
+ (see latex3/latex2e\#1086)
+
+
## [2023-06-05]
### Added
@@ -1451,7 +1463,8 @@ this project uses date-based 'snapshot' version identifiers.
- Step functions have been added for dim variables,
e.g. `\dim_step_inline:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2023-06-05...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2023-06-16...HEAD
+[2023-06-16]: https://github.com/latex3/latex3/compare/2023-06-05...2023-06-16
[2023-06-05]: https://github.com/latex3/latex3/compare/2023-05-22...2023-06-05
[2023-05-22]: https://github.com/latex3/latex3/compare/2023-05-15...2023-05-22
[2023-05-15]: https://github.com/latex3/latex3/compare/2023-05-11...2023-05-15
diff --git a/Master/texmf-dist/doc/latex/l3kernel/README.md b/Master/texmf-dist/doc/latex/l3kernel/README.md
index e340b712e07..28b328f366b 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/README.md
+++ b/Master/texmf-dist/doc/latex/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2023-06-05
+Release 2023-06-16
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
index abe1806c378..cdb6b5dd999 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
index 4c97703ecea..4071671ac9b 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
index 48deef820b2..b64664d912e 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
@@ -62,7 +62,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-06-05}
+\date{Released 2023-06-16}
\pagenumbering{roman}
\maketitle
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
index 4de407b4bf0..75c197361dc 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
index cd86234a1be..e50d3bcbec3 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
index 9c485f66f18..85243324946 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
index 50bb4103ffa..a6a5db123e5 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news01.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
index a0c6f3f6e4c..697d13b8fa3 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news02.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
index 2ebae6016e5..cb6dd5cde74 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news03.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
index a61d3e009f0..63dac876c02 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news04.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
index b750ca4d87c..d000bb7371f 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news05.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
index 5e01a63e751..cab18a2c4c6 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news06.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
index 6e0298e5a2e..39467cdce56 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news07.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
index 35b0094b1d3..be0e010f72c 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news08.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
index dcf4d4ed808..3072a506c04 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news09.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
index aff50d892be..38375df8965 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news10.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
index 7d4d2e520ef..04070b2e150 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news11.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
index 86ef749e1ec..ac8097cb3a6 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3news12.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
index bde496ca75c..7aed5611003 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
index 07265313965..a0751c9b369 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
index 8840a0aca60..d1a85b937e5 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-06-05}
+\date{Released 2023-06-16}
\begin{document}
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
index 3fef1f71e03..f0dbdcdba5c 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
index 7dc2f1b9bfb..8c8d338096f 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-06-05}
+\date{Released 2023-06-16}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
index abcc44bc3a3..d740b82b462 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
index 5fe65ecce40..aa996351fe6 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-06-05}
+\date{Released 2023-06-16}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
index 5657c614fb7..e16a458212e 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex
index 5e66150ee13..1d7c4a54182 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.tex
@@ -53,7 +53,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2023-06-05}
+\date{Released 2023-06-16}
\pagenumbering{roman}
\maketitle
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index 9066920e355..d95bda9fa94 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-16}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index da72c5cba95..309f26d5991 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index 152ace24f6c..e1b8e779ee6 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
index 093a1b23cd6..966e1b29e3e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index fb60287e470..272f93e92cf 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
index f4e8088e3d8..da533ae3097 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
index 4d712152b5e..42825a59f5b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
index 39fdb7700e4..737538a75e0 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
index fd20fd79038..ec2010b1323 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
index fe3e669c560..ca462b79d8d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
index 806c62670e7..7fb8e5c631c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
index 58778973a49..938715c87aa 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx
@@ -85,7 +85,7 @@ and all files in that bundle must be distributed together.
% require you to do updates, if the class changes.}}
%
% \author{\Team}
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
% \maketitle
% \tableofcontents
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
index 3d4536d5a43..f2a689c3d96 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
index 8e52b526595..76bb8b0605d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
index 5e2d8ba74d5..0fce245ddaf 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
@@ -690,12 +690,11 @@
% |--jobname|, for example).
% \end{variable}
%
-% \begin{variable}[added = 2017-06-18]{\l_file_search_path_seq}
+% \begin{variable}[added = 2017-06-18, updated = 2023-06-15]
+% {\l_file_search_path_seq}
% Each entry is the path to a directory which should be searched when
-% seeking a file. Each path can be relative or absolute, and should
-% not include the trailing slash. The entries are not expanded when
-% used so may contain active characters but should not feature any
-% variable content. Spaces need not be quoted.
+% seeking a file. Each path can be relative or absolute, and need
+% not include the trailing slash. Spaces need not be quoted.
%
% \begin{texnote}
% When working as a package in \LaTeXe{}, \pkg{expl3} will
@@ -2962,10 +2961,7 @@
\cs_new:Npn \@@_full_name_aux:Nnn #1#2#3
{
\exp_args:Ne \@@_full_name_aux:nN
- {
- \exp_args:Ne \@@_full_name_slash:n
- { \tl_to_str:n {#3} } #2
- }
+ { \@@_full_name_slash:n {#3} #2 }
#1
}
\cs_new:Npn \@@_full_name_slash:n #1
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
index 9640a6d2db6..02543c36e5a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
index ae30092b63f..abcfead9949 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
index 025a0af647a..99aa9279baf 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
index 875027466d0..dc6a92e10cc 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
index 6651d7931c6..4cf841cf235 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
index 42a6ebbbf1b..df680daaff1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
index 6e57dbc01b9..39f16674c9d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
index 4f58336b126..09d901bd195 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 84ca08a5459..afaa7a6218b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
index 0bb4a9209a0..e8a5274cfb0 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
index 1ceeb011efc..65f7d3e99a3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
index d8c7b6aef56..8273fa4ef4d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
% \maketitle
%
% \begin{documentation}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
index 6cd98b62d9b..6bfab36b219 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index 3c7144eb284..9a2069c11d8 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
index afc55ae4af8..bba4b879be4 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index a5bf5279a2a..9be9793d931 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
index 1eeec96a3d4..bfe8307d049 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
index 471c3c52dca..765ed7fd957 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index d8cec60f8fc..086ee85b9c7 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
index 5e199990a48..62e88766bbb 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
index 2735f6efa26..19e2adde955 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index 88bf2d8b554..311f82e58eb 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
index 9158270a84b..31e4154a38e 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
index c223938d2a6..9f21d2a4105 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 27a383899b1..d82d8a4eed9 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
index d254e432808..96c629fcbf5 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
index bc18bd95a90..a0a27fa857a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
index a87896011a8..c3642680123 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
index 25b316dfcdf..718d14fd5ee 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 23d32a1b871..875acbcc279 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
index bab6a36448e..774bdb0ab47 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
index ed4e866d736..43116a29e41 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index 473e55f6d04..98839638462 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
index 6b7aab34889..b27cc1d8235 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
index a69a695f493..f761831a6b7 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
@@ -935,6 +935,14 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}[EXP]{\@@_change_case_generate:n}
+% A utility.
+% \begin{macrocode}
+\cs_new:Npn \@@_change_case_generate:n #1
+ { \codepoint_generate:nn {#1} { \char_value_catcode:n {#1} } }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[EXP]
% {\@@_change_case_upper_de-x-eszett:nnnn, \@@_change_case_upper_de-alt:nnnn}
% A simple alternative version for German.
@@ -979,25 +987,22 @@
% \begin{macro}[EXP]
% {
% \@@_change_case_upper_el_ypogegrammeni:n ,
-% \@@_change_case_upper_el-x-iota_ypogegrammeni:n ,
-% \@@_change_case_upper_el_ypogegrammeni_aux:n
+% \@@_change_case_upper_el-x-iota_ypogegrammeni:n
% }
+% \begin{macro}[EXP]{\@@_change_case_upper_el_stress:nn}
% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnw}
% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnN}
% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnn}
-% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n}
-% \begin{macro}[EXP]{\@@_change_case_if_greek:n}
-% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n}
-% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_spacing_diacritic:n}
-% \begin{macro}[EXP]{\@@_change_case_if_greek_spacing_diacritic:n}
-% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_accent:n}
-% \begin{macro}[EXP]{\@@_change_case_if_greek_accent:n}
-% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_diacritic:n}
-% \begin{macro}[EXP]{\@@_change_case_if_greek_diacritic:n}
-% \begin{macro}[EXP,TF]{\@@_change_case_if_takes_dialytika:n}
-% \begin{macro}[EXP]{\@@_change_case_if_takes_dialytika:n}
-% \begin{macro}[EXP,TF]{\@@_change_case_if_takes_ypogegrammeni:n}
-% \begin{macro}[EXP]{\@@_change_case_if_takes_ypogegrammeni:n}
+% \begin{macro}[EXP,noTF]
+% {
+% \@@_change_case_if_greek:n ,
+% \@@_change_case_if_greek_spacing_diacritic:n ,
+% \@@_change_case_if_greek_accent:n ,
+% \@@_change_case_if_greek_breathing:n ,
+% \@@_change_case_if_greek_stress:n ,
+% \@@_change_case_if_takes_dialytika:n ,
+% \@@_change_case_if_takes_ypogegrammeni:n
+% }
% For Greek uppercasing, we need to know if characters \emph{in the Greek
% range} have accents. That means doing a \textsc{nfd} conversion first, then
% starting a search. As described by the Unicode \textsc{cldr}, Greek accents
@@ -1131,7 +1136,7 @@
{
\bool_lazy_or:nnTF
{ \@@_change_case_if_greek_accent_p:n {#6} }
- { \@@_change_case_if_greek_diacritic_p:n {#6} }
+ { \@@_change_case_if_greek_breathing_p:n {#6} }
{
\@@_change_case_upper_el_ypogegrammeni:nnnnnw
{#1} {#2} {#3} {#4#6} {#5}
@@ -1152,7 +1157,7 @@
\@@_change_case_if_greek_accent:nTF {#4}
{ \@@_change_case_upper_el_hiatus:nnnw {#2} {#3} {#1} }
{
- \@@_change_case_if_greek_diacritic:nTF {#4}
+ \@@_change_case_if_greek_breathing:nTF {#4}
{ \@@_change_case_upper_el:nnn {#1} {#2} {#3} }
{
\@@_codepoint_compare:nNnTF {#4} = { "0345 }
@@ -1162,15 +1167,24 @@
\@@_change_case_loop:nnw {#2} {#3}
}
{
- \@@_change_case_store:e
- { \@@_change_case_codepoint:nn { upper } {#1} }
- \@@_change_case_loop:nnw {#2} {#3} #4
+ \@@_change_case_if_greek_stress:nTF {#4}
+ {
+ \@@_change_case_store:e
+ { \@@_change_case_upper_el_stress:nn {#1} {#4} }
+ \@@_change_case_loop:nnw {#2} {#3}
+
+ }
+ {
+ \@@_change_case_store:e
+ { \@@_change_case_codepoint:nn { upper } {#1} }
+ \@@_change_case_loop:nnw {#2} {#3} #4
+ }
}
}
}
}
}
-% \end{macrocode}
+% \end{macrocode}
% We handle \emph{dialytika} in parts as it's also needed for the hiatus.
% We know only two letters take it, so we can shortcut here on the second
% part of the tests.
@@ -1247,20 +1261,20 @@
% \begin{macrocode}
\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni:n #1
{
- \int_case:nnF
- { \@@_codepoint_from_chars:Nw #1 }
+ \exp_args:Ne \@@_change_case_generate:n
{
- { "0391 } { \@@_change_case_upper_el_ypogegrammeni_aux:n { "1FBC } }
- { "03B1 } { \@@_change_case_upper_el_ypogegrammeni_aux:n { "1FBC } }
- { "0397 } { \@@_change_case_upper_el_ypogegrammeni_aux:n { "1FCC } }
- { "03B7 } { \@@_change_case_upper_el_ypogegrammeni_aux:n { "1FCC } }
- { "03A9 } { \@@_change_case_upper_el_ypogegrammeni_aux:n { "1FFC } }
- { "03C9 } { \@@_change_case_upper_el_ypogegrammeni_aux:n { "1FFC } }
+ \int_case:nn
+ { \@@_codepoint_from_chars:Nw #1 }
+ {
+ { "0391 } { "1FBC }
+ { "03B1 } { "1FBC }
+ { "0397 } { "1FCC }
+ { "03B7 } { "1FCC }
+ { "03A9 } { "1FFC }
+ { "03C9 } { "1FFC }
+ }
}
- { \@@_change_case_upper_el_ypogegrammeni:n {#1} }
}
-\cs_new:Npn \@@_change_case_upper_el_ypogegrammeni_aux:n #1
- { \codepoint_generate:nn {#1} { \char_value_catcode:n {#1} } }
\cs_new:cpn { @@_change_case_upper_el-x-iota_ypogegrammeni:n } #1
{
\@@_change_case_codepoint:nn { upper } {#1}
@@ -1268,6 +1282,44 @@
{ \char_value_catcode:n { "0399 } }
}
% \end{macrocode}
+% We choose to retain stress diacritics, but we also need to recombine
+% them for pdf\TeX{}. That is handled here.
+% \begin{macrocode}
+\cs_new:Npn \_@@_change_case_upper_el_stress:nn #1#2
+ {
+ \exp_args:Ne \@@_change_case_generate:n
+ {
+ \int_case:nn
+ { \@@_codepoint_from_chars:Nw #2 }
+ {
+ { "0304 }
+ {
+ \int_case:nn { \@@_codepoint_from_chars:Nw #1 }
+ {
+ { "0391 } { "1FB9 }
+ { "03B1 } { "1FB9 }
+ { "0399 } { "1FD9 }
+ { "03B9 } { "1FD9 }
+ { "03A5 } { "1FE9 }
+ { "03C5 } { "1FE9 }
+ }
+ }
+ { "0306 }
+ {
+ \int_case:nn { \@@_codepoint_from_chars:Nw #1 }
+ {
+ { "0391 } { "1FB8 }
+ { "03B1 } { "1FB8 }
+ { "0399 } { "1FD8 }
+ { "03B9 } { "1FD8 }
+ { "03A5 } { "1FE8 }
+ { "03C5 } { "1FE8 }
+ }
+ }
+ }
+ }
+ }
+% \end{macrocode}
% For clearing out trailing combining marks after we have dealt with
% the first one.
% \begin{macrocode}
@@ -1293,7 +1345,7 @@
{
\bool_lazy_or:nnTF
{ \@@_change_case_if_greek_accent_p:n {#3} }
- { \@@_change_case_if_greek_diacritic_p:n {#3} }
+ { \@@_change_case_if_greek_breathing_p:n {#3} }
{ \@@_change_case_upper_el_gobble:nnw {#1} {#2} }
{ \@@_change_case_loop:nnw {#1} {#2} #3 }
}
@@ -1443,13 +1495,31 @@
\fi:
\fi:
}
-\prg_new_conditional:Npnn \@@_change_case_if_greek_diacritic:n
+\prg_new_conditional:Npnn \@@_change_case_if_greek_breathing:n
#1 { TF , p }
{
- \exp_args:Nf \@@_change_case_if_greek_diacritic:n
+ \exp_args:Nf \@@_change_case_if_greek_breathing:n
{ \int_eval:n { \@@_codepoint_from_chars:Nw #1 } }
}
-\cs_new:Npn \@@_change_case_if_greek_diacritic:n #1
+\cs_new:Npn \@@_change_case_if_greek_breathing:n #1
+ {
+ \if_int_compare:w #1 = "0313 \exp_stop_f:
+ \prg_return_true:
+ \else:
+ \if_int_compare:w #1 = "0314 \exp_stop_f:
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ \fi:
+ }
+\prg_new_conditional:Npnn \@@_change_case_if_greek_stress:n
+ #1 { TF , p }
+ {
+ \exp_args:Nf \@@_change_case_if_greek_stress:n
+ { \int_eval:n { \@@_codepoint_from_chars:Nw #1 } }
+ }
+\cs_new:Npn \@@_change_case_if_greek_stress:n #1
{
\if_int_compare:w #1 = "0304 \exp_stop_f:
\prg_return_true:
@@ -1457,15 +1527,7 @@
\if_int_compare:w #1 = "0306 \exp_stop_f:
\prg_return_true:
\else:
- \if_int_compare:w #1 = "0313 \exp_stop_f:
- \prg_return_true:
- \else:
- \if_int_compare:w #1 = "0314 \exp_stop_f:
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- \fi:
+ \prg_return_false:
\fi:
\fi:
}
@@ -1534,26 +1596,15 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
% \begin{macro}[EXP]
% {\@@_change_case_boundary_upper_el:Nnnw, \@@_change_case_boundary_upper_el-x-iota:Nnnw}
% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnN}
% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnn}
% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnnw}
-% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnnN}
-% There is one special case in Greek that needs to be picked up based on
-% being an isolated letter. We do that using a test similar to final sigma,
-% but it has to fire off from the space grabber.
+% There is one things that need special treatment at start start of
+% words in Greek. For an isolated accent \emph{eta},
+% which is handled by seeing if we have exactly one of the affected
+% codepoints followed by a space or brace group.
% \begin{macrocode}
\cs_new:Npn \@@_change_case_boundary_upper_el:Nnnw
#1#2#3#4 \q_@@_recursion_stop
@@ -1585,43 +1636,133 @@
{ \@@_codepoint_compare_p:nNn {#3} = { "1F2A } }
}
{ \@@_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} }
- { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ { \@@_change_case_breathing:nnn {#1} {#2} {#3} }
}
\cs_new:Npn \@@_change_case_boundary_upper_el:nnnw
#1#2#3#4 \q_@@_recursion_stop
{
\tl_if_head_is_N_type:nTF {#4}
- { \@@_change_case_boundary_upper_el:nnnN {#3} }
+ { \@@_change_case_loop:nnw {#1} {#2} #3 }
{
\@@_change_case_store:e
{
\codepoint_generate:nn { "0389 }
{ \@@_change_case_catcode:nn {#3} { "0389 } }
}
- \@@_change_case_loop:nnw
+ \@@_change_case_loop:nnw {#1} {#2}
}
- {#1} {#2} #4 \q_@@_recursion_stop
+ #4 \q_@@_recursion_stop
}
-\cs_new:Npn \@@_change_case_boundary_upper_el:nnnN #1#2#3#4
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}[EXP]{\@@_change_case_breathing:nnn}
+% \begin{macro}[EXP]{\@@_change_case_breathing:nnnn}
+% \begin{macro}[EXP]{\@@_change_case_breathing:nnnnw}
+% \begin{macro}[EXP]{\@@_change_case_breathing:nnnnnw}
+% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnnnn}
+% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnnw}
+% \begin{macro}[EXP]{\@@_change_case_breathing_aux:nnN}
+% \begin{macro}[EXP]{\@@_change_case_breathing_dialytika:nnn}
+% In Greek, breathing diacritics are normally dropped when uppercasing:
+% see the code for the general case. However, for the first character
+% of a word, if there is a breather \emph{and} the next character takes
+% a \emph{dialytika}, it needs to be added. We start by checking if
+% the current codepoint is in the Greek range, then decomposing.
+% \begin{macrocode}
+\cs_new:Npn \@@_change_case_breathing:nnn #1#2#3
{
- \bool_lazy_or:nnTF
- { \token_if_letter_p:N #4 }
- {
- \bool_lazy_and_p:nn
- { \token_if_active_p:N #4 }
- { ! \int_compare_p:nNn {`#4} < { "80 } }
- }
- { \@@_change_case_loop:nnw {#2} {#3} #1#4 }
+ \@@_change_case_if_greek:nTF {#3}
{
- \@@_change_case_store:e
+ \exp_args:Ne \@@_change_case_breathing:nnnn
{
- \codepoint_generate:nn { "0389 }
- { \@@_change_case_catcode:nn {#1} { "0389 } }
+ \codepoint_to_nfd:n
+ { \@@_codepoint_from_chars:Nw #3 }
}
- \@@_change_case_loop:nnw {#2} {#3} #4
+ {#1} {#2} {#3}
}
+ { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ }
+\cs_new:Npn \@@_change_case_breathing:nnnn #1#2#3#4
+ {
+ \@@_codepoint_process:nN
+ { \@@_change_case_breathing:nnnnw {#2} {#3} {#4} }
+ #1 \q_mark
}
% \end{macrocode}
+% Normal form decomposition will always give between one and three
+% codepoints. Luckily, the two breathing marks (\emph{psili} and
+% \emph{dasia}) will be in a predictable position: last. So we can
+% quickly establish first that there was a change on decomposition,
+% and second if the final resulting codepoint is one of the two we
+% care about.
+% \begin{macrocode}
+\cs_new:Npn \@@_change_case_breathing:nnnnw #1#2#3#4#5 \q_mark
+ {
+ \tl_if_blank:nTF {#5}
+ { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ {
+ \@@_codepoint_process:nN
+ { \@@_change_case_breathing:nnnnnw {#1} {#2} {#3} {#4} }
+ #5 \q_mark
+ }
+ }
+\cs_new:Npn \@@_change_case_breathing:nnnnnw #1#2#3#4#5#6 \q_mark
+ {
+ \tl_if_blank:nTF {#6}
+ {
+ \@@_change_case_breathing_aux:nnnnn
+ {#1} {#2} {#3} {#4} {#5}
+ }
+ {
+ \@@_change_case_breathing_aux:nnnnn
+ {#1} {#2} {#3} {#4} {#6}
+ }
+ }
+\cs_new:Npn \@@_change_case_breathing_aux:nnnnn #1#2#3#4#5
+ {
+ \bool_lazy_or:nnTF
+ { \@@_codepoint_compare_p:nNn {#5} = { "0313 } }
+ { \@@_codepoint_compare_p:nNn {#5} = { "0314 } }
+ { \@@_change_case_breathing_aux:nnnw {#1} {#2} {#4} }
+ { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ }
+% \end{macrocode}
+% Now the lookahead can be fired: check the next codepoint and assess
+% whether it takes a \emph{dialytika}. Drop the
+% breathing mark or generate the \emph{dialytika}: the
+% latter is code shared with the general mechanism.
+% \begin{macrocode}
+\cs_new:Npn \@@_change_case_breathing_aux:nnnw #1#2#3#4
+ \q_@@_recursion_stop
+ {
+ \@@_change_case_store:e
+ { \@@_change_case_codepoint:nn { upper } {#3} }
+ \tl_if_head_is_N_type:nTF {#4}
+ { \@@_change_case_breathing_aux:nnN }
+ { \@@_change_case_loop:nnw }
+ {#1} {#2} #4 \q_@@_recursion_stop
+ }
+\cs_new:Npn \@@_change_case_breathing_aux:nnN #1#2#3
+ {
+ \@@_codepoint_process:nN
+ { \@@_change_case_breathing_dialytika:nnn {#1} {#2} } #3
+ }
+\cs_new:Npn \@@_change_case_breathing_dialytika:nnn #1#2#3
+ {
+ \@@_change_case_if_takes_dialytika:nTF {#3}
+ {
+ \@@_change_case_upper_el_dialytika:n {#3}
+ \@@_change_case_loop:nnw {#1} {#2}
+ }
+ { \@@_change_case_loop:nnw {#1} {#2} #3 }
+ }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -1744,7 +1885,7 @@
% \end{macrocode}
% If there was a hit, output the result with the dot-above and move on.
% Otherwise, look for one of the three letters that can take a combining
-% accent: I, J and I-ogonek.
+% accent: I, J nd I-ogonek.
% \begin{macrocode}
\cs_new:Npn \@@_change_case_lower_lt_auxi:nnnn #1#2#3#4
{
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
index a2f9e5fae77..787c3f9dfc3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-map.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
index d3e8e099fb5..e2bac1b756b 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
index bcdfa869f27..47341eeea41 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
@@ -58,7 +58,7 @@
%
% \section{Expanding text}
%
-% \begin{function}[EXP, added = 2020-01-02, updated = 2023-02-07]
+% \begin{function}[EXP, added = 2020-01-02, updated = 2023-06-09]
% {\text_expand:n}
% \begin{syntax}
% \cs{text_expand:n} \Arg{text}
@@ -71,7 +71,8 @@
% in \cs{l_text_math_arg_tl}). Commands which are neither engine-
% nor \LaTeX{} protected are expanded exhaustively.
% Any commands listed in \cs{l_text_expand_exclude_tl} are excluded from
-% expansion.
+% expansion, as are those in \cs{l_text_case_exclude_arg_tl} and
+% \cs{l_text_math_arg_tl}.
% \end{function}
%
% \begin{function}[added = 2020-01-22]
@@ -1142,6 +1143,7 @@
{
\exp_not:V \l_text_math_arg_tl
\exp_not:V \l_text_expand_exclude_tl
+ \exp_not:V \l_text_case_exclude_arg_tl
}
#1
}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
index 7519981f52e..116be7de53a 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 67154547b7f..58d4276197d 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index 818018d10ef..bedbb2e2a53 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
index 48b121f20a1..b44b307bbf1 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2023-06-05}
+% \date{Released 2023-06-16}
%
% \maketitle
%
@@ -479,8 +479,8 @@
% \end{macrocode}
% Parse the main Unicode data file and pull out the NFD and case changing
% data. The NFD data is stored on using the hash table approach and can yield
-% a predictable number of code points: one or two. We also need the case data,
-% which will be modified further below. To allow for finding rangs, the
+% a predictable number of codepoints: one or two. We also need the case data,
+% which will be modified further below. To allow for finding ranges, the
% description of the codepoint needs to be carried forward.
% \begin{macrocode}
\cs_set_protected:Npn \@@_data_auxi:w
@@ -601,7 +601,7 @@
% \end{macrocode}
% Here we want to do three things: add to and possibly complete the current
% block, add complete blocks quickly, then finish up the range in a final
-% open block. We need to avoid as far as possible avoid dealing with ever
+% open block. We need to avoid as far as possible avoid dealing with every
% single codepoint, so the middle step is optimised.
% \begin{macrocode}
\cs_set_protected:Npn \@@_range:nnnn #1#2#3#4
@@ -668,7 +668,7 @@
% \end{macrocode}
% Close out the final block, rename the first stage table, then combine all
% of the block comma-lists into one large second-stage table with offsets.
-% As we use an index not an offet, there is a little back-and-forward to do.
+% As we use an index not an offset, there is a little back-and-forward to do.
% \begin{macrocode}
\cs_set_protected:Npn \@@_finalise_blocks:
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index cc7f3c32b25..4d4e1a5e850 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -71,7 +71,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-16}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -11418,10 +11418,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new:Npn \__file_full_name_aux:Nnn #1#2#3
{
\exp_args:Ne \__file_full_name_aux:nN
- {
- \exp_args:Ne \__file_full_name_slash:n
- { \tl_to_str:n {#3} } #2
- }
+ { \__file_full_name_slash:n {#3} #2 }
#1
}
\cs_new:Npn \__file_full_name_slash:n #1
@@ -32543,6 +32540,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
{
\exp_not:V \l_text_math_arg_tl
\exp_not:V \l_text_expand_exclude_tl
+ \exp_not:V \l_text_case_exclude_arg_tl
}
#1
}
@@ -33322,6 +33320,8 @@ Type H <return> for immediate help}\def~{\errmessage{%
#1
}
\cs_new:Npn \__text_case_switch_marker: { }
+\cs_new:Npn \__text_change_case_generate:n #1
+ { \codepoint_generate:nn {#1} { \char_value_catcode:n {#1} } }
\cs_new:cpn { __text_change_case_upper_de-x-eszett:nnnn } #1#2#3#4
{
\__text_codepoint_compare:nNnTF {#4} = { "00DF }
@@ -33444,7 +33444,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
{
\bool_lazy_or:nnTF
{ \__text_change_case_if_greek_accent_p:n {#6} }
- { \__text_change_case_if_greek_diacritic_p:n {#6} }
+ { \__text_change_case_if_greek_breathing_p:n {#6} }
{
\__text_change_case_upper_el_ypogegrammeni:nnnnnw
{#1} {#2} {#3} {#4#6} {#5}
@@ -33465,7 +33465,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__text_change_case_if_greek_accent:nTF {#4}
{ \__text_change_case_upper_el_hiatus:nnnw {#2} {#3} {#1} }
{
- \__text_change_case_if_greek_diacritic:nTF {#4}
+ \__text_change_case_if_greek_breathing:nTF {#4}
{ \__text_change_case_upper_el:nnn {#1} {#2} {#3} }
{
\__text_codepoint_compare:nNnTF {#4} = { "0345 }
@@ -33475,9 +33475,18 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__text_change_case_loop:nnw {#2} {#3}
}
{
- \__text_change_case_store:e
- { \__text_change_case_codepoint:nn { upper } {#1} }
- \__text_change_case_loop:nnw {#2} {#3} #4
+ \__text_change_case_if_greek_stress:nTF {#4}
+ {
+ \__text_change_case_store:e
+ { \__text_change_case_upper_el_stress:nn {#1} {#4} }
+ \__text_change_case_loop:nnw {#2} {#3}
+
+ }
+ {
+ \__text_change_case_store:e
+ { \__text_change_case_codepoint:nn { upper } {#1} }
+ \__text_change_case_loop:nnw {#2} {#3} #4
+ }
}
}
}
@@ -33548,26 +33557,60 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
\cs_new:Npn \__text_change_case_upper_el_ypogegrammeni:n #1
{
- \int_case:nnF
- { \__text_codepoint_from_chars:Nw #1 }
+ \exp_args:Ne \__text_change_case_generate:n
{
- { "0391 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FBC } }
- { "03B1 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FBC } }
- { "0397 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FCC } }
- { "03B7 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FCC } }
- { "03A9 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FFC } }
- { "03C9 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FFC } }
+ \int_case:nn
+ { \__text_codepoint_from_chars:Nw #1 }
+ {
+ { "0391 } { "1FBC }
+ { "03B1 } { "1FBC }
+ { "0397 } { "1FCC }
+ { "03B7 } { "1FCC }
+ { "03A9 } { "1FFC }
+ { "03C9 } { "1FFC }
+ }
}
- { \__text_change_case_upper_el_ypogegrammeni:n {#1} }
}
-\cs_new:Npn \__text_change_case_upper_el_ypogegrammeni_aux:n #1
- { \codepoint_generate:nn {#1} { \char_value_catcode:n {#1} } }
\cs_new:cpn { __text_change_case_upper_el-x-iota_ypogegrammeni:n } #1
{
\__text_change_case_codepoint:nn { upper } {#1}
\codepoint_generate:nn { "0399 }
{ \char_value_catcode:n { "0399 } }
}
+\cs_new:Npn \__text_change_case_upper_el_stress:nn #1#2
+ {
+ \exp_args:Ne \__text_change_case_generate:n
+ {
+ \int_case:nn
+ { \__text_codepoint_from_chars:Nw #2 }
+ {
+ { "0304 }
+ {
+ \int_case:nn { \__text_codepoint_from_chars:Nw #1 }
+ {
+ { "0391 } { "1FB9 }
+ { "03B1 } { "1FB9 }
+ { "0399 } { "1FD9 }
+ { "03B9 } { "1FD9 }
+ { "03A5 } { "1FE9 }
+ { "03C5 } { "1FE9 }
+ }
+ }
+ { "0306 }
+ {
+ \int_case:nn { \__text_codepoint_from_chars:Nw #1 }
+ {
+ { "0391 } { "1FB8 }
+ { "03B1 } { "1FB8 }
+ { "0399 } { "1FD8 }
+ { "03B9 } { "1FD8 }
+ { "03A5 } { "1FE8 }
+ { "03C5 } { "1FE8 }
+ }
+ }
+ }
+ }
+ }
\cs_new:Npn \__text_change_case_upper_el_gobble:nnw
#1#2#3 \q__text_recursion_stop
{
@@ -33590,7 +33633,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
{
\bool_lazy_or:nnTF
{ \__text_change_case_if_greek_accent_p:n {#3} }
- { \__text_change_case_if_greek_diacritic_p:n {#3} }
+ { \__text_change_case_if_greek_breathing_p:n {#3} }
{ \__text_change_case_upper_el_gobble:nnw {#1} {#2} }
{ \__text_change_case_loop:nnw {#1} {#2} #3 }
}
@@ -33734,13 +33777,31 @@ Type H <return> for immediate help}\def~{\errmessage{%
\fi:
\fi:
}
-\prg_new_conditional:Npnn \__text_change_case_if_greek_diacritic:n
+\prg_new_conditional:Npnn \__text_change_case_if_greek_breathing:n
#1 { TF , p }
{
- \exp_args:Nf \__text_change_case_if_greek_diacritic:n
+ \exp_args:Nf \__text_change_case_if_greek_breathing:n
{ \int_eval:n { \__text_codepoint_from_chars:Nw #1 } }
}
-\cs_new:Npn \__text_change_case_if_greek_diacritic:n #1
+\cs_new:Npn \__text_change_case_if_greek_breathing:n #1
+ {
+ \if_int_compare:w #1 = "0313 \exp_stop_f:
+ \prg_return_true:
+ \else:
+ \if_int_compare:w #1 = "0314 \exp_stop_f:
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ \fi:
+ }
+\prg_new_conditional:Npnn \__text_change_case_if_greek_stress:n
+ #1 { TF , p }
+ {
+ \exp_args:Nf \__text_change_case_if_greek_stress:n
+ { \int_eval:n { \__text_codepoint_from_chars:Nw #1 } }
+ }
+\cs_new:Npn \__text_change_case_if_greek_stress:n #1
{
\if_int_compare:w #1 = "0304 \exp_stop_f:
\prg_return_true:
@@ -33748,15 +33809,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\if_int_compare:w #1 = "0306 \exp_stop_f:
\prg_return_true:
\else:
- \if_int_compare:w #1 = "0313 \exp_stop_f:
- \prg_return_true:
- \else:
- \if_int_compare:w #1 = "0314 \exp_stop_f:
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- \fi:
+ \prg_return_false:
\fi:
\fi:
}
@@ -33836,42 +33889,96 @@ Type H <return> for immediate help}\def~{\errmessage{%
{ \__text_codepoint_compare_p:nNn {#3} = { "1F2A } }
}
{ \__text_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} }
- { \__text_change_case_loop:nnw {#1} {#2} #3 }
+ { \__text_change_case_breathing:nnn {#1} {#2} {#3} }
}
\cs_new:Npn \__text_change_case_boundary_upper_el:nnnw
#1#2#3#4 \q__text_recursion_stop
{
\tl_if_head_is_N_type:nTF {#4}
- { \__text_change_case_boundary_upper_el:nnnN {#3} }
+ { \__text_change_case_loop:nnw {#1} {#2} #3 }
{
\__text_change_case_store:e
{
\codepoint_generate:nn { "0389 }
{ \__text_change_case_catcode:nn {#3} { "0389 } }
}
- \__text_change_case_loop:nnw
+ \__text_change_case_loop:nnw {#1} {#2}
}
- {#1} {#2} #4 \q__text_recursion_stop
+ #4 \q__text_recursion_stop
}
-\cs_new:Npn \__text_change_case_boundary_upper_el:nnnN #1#2#3#4
+\cs_new:Npn \__text_change_case_breathing:nnn #1#2#3
{
- \bool_lazy_or:nnTF
- { \token_if_letter_p:N #4 }
- {
- \bool_lazy_and_p:nn
- { \token_if_active_p:N #4 }
- { ! \int_compare_p:nNn {`#4} < { "80 } }
- }
- { \__text_change_case_loop:nnw {#2} {#3} #1#4 }
+ \__text_change_case_if_greek:nTF {#3}
{
- \__text_change_case_store:e
+ \exp_args:Ne \__text_change_case_breathing:nnnn
{
- \codepoint_generate:nn { "0389 }
- { \__text_change_case_catcode:nn {#1} { "0389 } }
+ \codepoint_to_nfd:n
+ { \__text_codepoint_from_chars:Nw #3 }
}
- \__text_change_case_loop:nnw {#2} {#3} #4
+ {#1} {#2} {#3}
+ }
+ { \__text_change_case_loop:nnw {#1} {#2} #3 }
+ }
+\cs_new:Npn \__text_change_case_breathing:nnnn #1#2#3#4
+ {
+ \__text_codepoint_process:nN
+ { \__text_change_case_breathing:nnnnw {#2} {#3} {#4} }
+ #1 \q_mark
+ }
+\cs_new:Npn \__text_change_case_breathing:nnnnw #1#2#3#4#5 \q_mark
+ {
+ \tl_if_blank:nTF {#5}
+ { \__text_change_case_loop:nnw {#1} {#2} #3 }
+ {
+ \__text_codepoint_process:nN
+ { \__text_change_case_breathing:nnnnnw {#1} {#2} {#3} {#4} }
+ #5 \q_mark
}
}
+\cs_new:Npn \__text_change_case_breathing:nnnnnw #1#2#3#4#5#6 \q_mark
+ {
+ \tl_if_blank:nTF {#6}
+ {
+ \__text_change_case_breathing_aux:nnnnn
+ {#1} {#2} {#3} {#4} {#5}
+ }
+ {
+ \__text_change_case_breathing_aux:nnnnn
+ {#1} {#2} {#3} {#4} {#6}
+ }
+ }
+\cs_new:Npn \__text_change_case_breathing_aux:nnnnn #1#2#3#4#5
+ {
+ \bool_lazy_or:nnTF
+ { \__text_codepoint_compare_p:nNn {#5} = { "0313 } }
+ { \__text_codepoint_compare_p:nNn {#5} = { "0314 } }
+ { \__text_change_case_breathing_aux:nnnw {#1} {#2} {#4} }
+ { \__text_change_case_loop:nnw {#1} {#2} #3 }
+ }
+\cs_new:Npn \__text_change_case_breathing_aux:nnnw #1#2#3#4
+ \q__text_recursion_stop
+ {
+ \__text_change_case_store:e
+ { \__text_change_case_codepoint:nn { upper } {#3} }
+ \tl_if_head_is_N_type:nTF {#4}
+ { \__text_change_case_breathing_aux:nnN }
+ { \__text_change_case_loop:nnw }
+ {#1} {#2} #4 \q__text_recursion_stop
+ }
+\cs_new:Npn \__text_change_case_breathing_aux:nnN #1#2#3
+ {
+ \__text_codepoint_process:nN
+ { \__text_change_case_breathing_dialytika:nnn {#1} {#2} } #3
+ }
+\cs_new:Npn \__text_change_case_breathing_dialytika:nnn #1#2#3
+ {
+ \__text_change_case_if_takes_dialytika:nTF {#3}
+ {
+ \__text_change_case_upper_el_dialytika:n {#3}
+ \__text_change_case_loop:nnw {#1} {#2}
+ }
+ { \__text_change_case_loop:nnw {#1} {#2} #3 }
+ }
\cs_new:Npn \__text_change_case_title_el:nnnn #1#2#3#4
{ \__text_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
\cs_new:Npn \__text_change_case_upper_hy:nnnn #1#2#3#4
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
index 80c60e571c3..9e6bce78818 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-16}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
index 8b7ed14e8f7..acdb94412d4 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-16}%
\let\ExplLoaderFileDate\ExplFileDate
\begingroup
\catcode`\_=11
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 41c154b892d..34b05bb0e77 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-16}%
\let\ExplLoaderFileDate\ExplFileDate
\ProvidesPackage{expl3}
[%