From 9d9cdc2b221d32ae6a21751625918108422dcbd6 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 17 Jun 2023 19:59:40 +0000 Subject: l3kernel (17jun23) git-svn-id: svn://tug.org/texlive/trunk@67394 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/l3kernel/expl3.dtx | 4 +- .../texmf-dist/source/latex/l3kernel/l3basics.dtx | 2 +- .../source/latex/l3kernel/l3bootstrap.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3box.dtx | 2 +- .../source/latex/l3kernel/l3candidates.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3cctab.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3clist.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3coffins.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3color.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3debug.dtx | 2 +- .../source/latex/l3kernel/l3deprecation.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3doc.dtx | 2 +- .../source/latex/l3kernel/l3docstrip.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3expan.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3file.dtx | 16 +- Master/texmf-dist/source/latex/l3kernel/l3flag.dtx | 2 +- .../source/latex/l3kernel/l3fp-assign.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-aux.dtx | 2 +- .../source/latex/l3kernel/l3fp-basics.dtx | 2 +- .../source/latex/l3kernel/l3fp-convert.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-expo.dtx | 2 +- .../source/latex/l3kernel/l3fp-extended.dtx | 2 +- .../source/latex/l3kernel/l3fp-logic.dtx | 2 +- .../source/latex/l3kernel/l3fp-parse.dtx | 2 +- .../source/latex/l3kernel/l3fp-random.dtx | 2 +- .../source/latex/l3kernel/l3fp-round.dtx | 2 +- .../source/latex/l3kernel/l3fp-traps.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fp-trig.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3fp.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3fparray.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3int.dtx | 2 +- .../source/latex/l3kernel/l3intarray.dtx | 2 +- .../source/latex/l3kernel/l3kernel-functions.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3keys.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3legacy.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3luatex.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3msg.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3names.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3prg.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3prop.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3quark.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3regex.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3seq.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3skip.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3sort.dtx | 2 +- .../source/latex/l3kernel/l3str-convert.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3str.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3sys.dtx | 2 +- .../source/latex/l3kernel/l3text-case.dtx | 299 +++++++++++++++------ .../source/latex/l3kernel/l3text-map.dtx | 2 +- .../source/latex/l3kernel/l3text-purify.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3text.dtx | 8 +- .../source/latex/l3kernel/l3tl-analysis.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3tl.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3token.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3unicode.dtx | 10 +- 57 files changed, 290 insertions(+), 151 deletions(-) (limited to 'Master/texmf-dist/source/latex') 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> % -\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: { -- cgit v1.2.3