From 7102991976623feddaa279ac0ea71a103d357bb0 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 6 Aug 2022 20:13:31 +0000 Subject: l3 (6aug22) git-svn-id: svn://tug.org/texlive/trunk@64066 c570f23f-e606-0410-a88d-b1316a301751 --- .../source/latex/l3backend/l3backend-basics.dtx | 14 +- .../source/latex/l3backend/l3backend-box.dtx | 2 +- .../source/latex/l3backend/l3backend-color.dtx | 2 +- .../source/latex/l3backend/l3backend-draw.dtx | 2 +- .../source/latex/l3backend/l3backend-graphics.dtx | 2 +- .../source/latex/l3backend/l3backend-header.dtx | 2 +- .../source/latex/l3backend/l3backend-opacity.dtx | 2 +- .../source/latex/l3backend/l3backend-pdf.dtx | 52 ++- Master/texmf-dist/source/latex/l3kernel/expl3.dtx | 8 +- .../texmf-dist/source/latex/l3kernel/l3basics.dtx | 2 +- .../source/latex/l3kernel/l3bootstrap.dtx | 2 +- Master/texmf-dist/source/latex/l3kernel/l3box.dtx | 2 +- .../source/latex/l3kernel/l3candidates.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3cctab.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3clist.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3coffins.dtx | 2 +- .../texmf-dist/source/latex/l3kernel/l3color.dtx | 21 +- .../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 | 23 +- 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 | 31 +- .../source/latex/l3kernel/l3text-case.dtx | 441 ++++++++++++++++++++- .../source/latex/l3kernel/l3text-purify.dtx | 12 +- Master/texmf-dist/source/latex/l3kernel/l3text.dtx | 81 ++-- .../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 | 2 +- 64 files changed, 677 insertions(+), 116 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx index 8945ed6f470..768bd20d506 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-basics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % @@ -70,27 +70,27 @@ % \begin{macrocode} \ProvidesExplFile %<*dvipdfmx> - {l3backend-dvipdfmx.def}{2022-07-01}{} + {l3backend-dvipdfmx.def}{2022-08-05}{} {L3 backend support: dvipdfmx} % %<*dvips> - {l3backend-dvips.def}{2022-07-01}{} + {l3backend-dvips.def}{2022-08-05}{} {L3 backend support: dvips} % %<*dvisvgm> - {l3backend-dvisvgm.def}{2022-07-01}{} + {l3backend-dvisvgm.def}{2022-08-05}{} {L3 backend support: dvisvgm} % %<*luatex> - {l3backend-luatex.def}{2022-07-01}{} + {l3backend-luatex.def}{2022-08-05}{} {L3 backend support: PDF output (LuaTeX)} % %<*pdftex> - {l3backend-pdftex.def}{2022-07-01}{} + {l3backend-pdftex.def}{2022-08-05}{} {L3 backend support: PDF output (pdfTeX)} % %<*xetex> - {l3backend-xetex.def}{2022-07-01}{} + {l3backend-xetex.def}{2022-08-05}{} {L3 backend support: XeTeX} % % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx index 844b23d67ce..628176536ab 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-box.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx index 666075840a5..336ff45135d 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-color.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx index d2174dc7a33..f23e3ec115e 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-draw.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx index 8691349cf55..e1c2af95fa9 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-graphics.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx index 401f4287afc..abc2f4a7788 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-header.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx index ae4e93ea3c2..e3132f69553 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-opacity.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx index df145f37819..052a3ba73d7 100644 --- a/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx +++ b/Master/texmf-dist/source/latex/l3backend/l3backend-pdf.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2022-07-01} +% \date{Released 2022-08-05} % % \maketitle % @@ -1597,6 +1597,56 @@ %<*dvisvgm> % \end{macrocode} % +% \subsubsection{Annotations} +% +% \begin{macro}{\@@_backend_annotation:nnnn} +% \begin{macrocode} +\cs_new_protected:Npn \@@_backend_annotation:nnnn #1#2#3#4 { } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[EXP]{\@@_backend_annotation_last:} +% \begin{macrocode} +\cs_new:Npn \@@_backend_annotation_last: { } +% \end{macrocode} +% \end{macro} +% +% \begin{macro} +% {\@@_backend_link_begin_goto:nnw, \@@_backend_link_begin_user:nnw} +% \begin{macro}{\@@_backend_link_begin:nnnw} +% \begin{macro}{\@@_backend_link_end:} +% \begin{macrocode} +\cs_new_protected:Npn \@@_backend_link_begin_goto:nnw #1#2 { } +\cs_new_protected:Npn \@@_backend_link_begin_user:nnw #1#2 { } +\cs_new_protected:Npn \@@_backend_link_begin:nnnw #1#2#3 { } +\cs_new_protected:Npn \@@_backend_link_end: { } +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@_backend_link_last:} +% \begin{macrocode} +\cs_new:Npx \@@_backend_link_last: { } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_backend_link_margin:n} +% A simple task: pass the data to the primitive. +% \begin{macrocode} +\cs_new_protected:Npn \@@_backend_link_margin:n #1 { } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@_backend_destination:nn} +% \begin{macro}{\@@_backend_destination:nnnn} +% \begin{macrocode} +\cs_new_protected:Npn \@@_backend_destination:nn #1#2 { } +\cs_new_protected:Npn \@@_backend_destination:nnnn #1#2#3#4 { } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \subsubsection{Catalogue entries} % % \begin{macro}{\@@_backend_catalog_gput:nn, \@@_backend_info_gput:nn} diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index a5a6a995f07..48808d9f499 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{2022-07-15}% +\def\ExplFileDate{2022-08-05}% %<*driver> \documentclass[full]{l3doc} \usepackage{graphicx} @@ -51,7 +51,7 @@ % }^^A % } % -% \date{Released 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % @@ -952,8 +952,8 @@ % \section{Using \pkg{expl3} with formats other than \LaTeXe{}} % % As well as the \LaTeXe{} package \pkg{expl3}, there is also a -% \enquote{generic} loader for the code, \texttt{expl3.tex}. This may be -% loaded using the plain \TeX{} syntax +% \enquote{generic} loader for the code, \texttt{expl3-generic.tex}. +% This may be loaded using the plain \TeX{} syntax % \begin{verbatim} % \input expl3-generic % % \end{verbatim} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index 4409b374c31..3eb9a3f43be 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index ff376038970..852f654cef4 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index 8a3c88779b7..502185ed650 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index 45032fc4986..b01f9169cd1 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx b/Master/texmf-dist/source/latex/l3kernel/l3cctab.dtx index 41191483d61..f108418c024 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 72b1510fbac..2d880e57222 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index 1097fc38807..fe2ce11f3e8 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color.dtx index 4b94bf8059f..8fc7268cdb7 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % @@ -1456,25 +1456,34 @@ % need separate treatment. To avoid repeatedly collecting the same % token, we first check for an alignment tab: assuming we don't have % one of those, we can \enquote{recycle} \cs{l_peek_token} safely. +% As we have an explicit \cs{c_alignment_token}, there needs to be +% an align-safe group present. % \begin{macrocode} \cs_new_protected:Npn \@@_math_scan:w { \peek_remove_filler:n { + \group_align_safe_begin: \peek_catcode:NTF \c_alignment_token - { \@@_math_scan_end: } - { \@@_math_scan_auxi: } + { + \group_align_safe_end: + \@@_math_scan_end: + } + { + \group_align_safe_end: + \@@_math_scan_auxi: + } } } % \end{macrocode} % Dealing with literal |_| and |^| is easy, and as we have exactly two cases, % we can hard-code this. We use a hard-coded list for limits: these are all -% primitives. The \cs{use_none:n} herealso removes the test token so it is +% primitives. The \cs{use_none:n} here also removes the test token so it is % left just in the right place. % \begin{macrocode} \cs_new_protected:Npn \@@_math_scan_auxi: { - \token_case_meaning:NnTF \l_peek_token + \token_case_catcode:NnTF \l_peek_token { \c_math_subscript_token { } \c_math_superscript_token { } @@ -1549,7 +1558,7 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_math_scripts:Nw #1 { - #1 + #1 \c_group_begin_token \c_group_begin_token \seq_get:NN \g_@@_math_seq \l_@@_current_tl diff --git a/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx b/Master/texmf-dist/source/latex/l3kernel/l3debug.dtx index e2dacbb72f2..cb12c2bbcca 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index d0547dcdf91..2dc1200e443 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index a1b4c72121b..4a4ef017e1d 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 2022-07-15} +% \date{Released 2022-08-05} % \maketitle % \tableofcontents % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index 8ffaa7385f3..19b2a724588 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index 46c9f30fbce..b0ab3c1fae0 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index 523fa4c6c10..7cb1ff9824d 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % @@ -981,7 +981,7 @@ \int_step_inline:nnn { 0 } { - \cs_if_exist:NTF \normalend + \cs_if_exist:NTF \contextversion { \tex_count:D 38 ~ } { \tex_count:D 16 ~ % @@ -1061,10 +1061,10 @@ % \begin{macrocode} \exp_args:NNf \cs_new_protected:Npn \@@_new:N { \exp_args:NNc \exp_after:wN \exp_stop_f: { newread } } -\cs_if_exist:NT \normalend +\cs_if_exist:NT \contextversion { \cs_new_eq:NN \@@_new_aux:N \@@_new:N - \cs_set_protected:Npn \@@_new:N #1 + \cs_gset_protected:Npn \@@_new:N #1 { \cs_undefine:N #1 \@@_new_aux:N #1 @@ -1441,7 +1441,7 @@ \int_step_inline:nnn { 0 } { - \cs_if_exist:NTF \normalend + \cs_if_exist:NTF \contextversion { \tex_count:D 39 ~ } { \tex_count:D 17 ~ @@ -1499,10 +1499,21 @@ % % \begin{macro}{\@@_new:N} % As for read streams, copy \tn{newwrite}, making sure -% that it is not \tn{outer}. +% that it is not \tn{outer}. For \ConTeXt{}, we have to +% deal with the fact that \tn{newwrite} works like our +% own: it actually checks before altering definition. % \begin{macrocode} \exp_args:NNf \cs_new_protected:Npn \@@_new:N { \exp_args:NNc \exp_after:wN \exp_stop_f: { newwrite } } +\cs_if_exist:NT \contextversion + { + \cs_new_eq:NN \@@_new_aux:N \@@_new:N + \cs_gset_protected:Npn \@@_new:N #1 + { + \cs_undefine:N #1 + \@@_new_aux:N #1 + } + } % \end{macrocode} % \end{macro} % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 8af39ddb032..fd9a9aa6111 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index a1f665de474..5b311af4d0b 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 2022-07-15} +% \date{Released 2022-08-05} % \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 72c921ff694..cbde31ce23e 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index 5a39eb65882..d787d6ee222 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index 590ab826d97..c132f4590d8 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index c6f2b9acb72..1c3279091dd 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index f5aff758dca..0350ded913b 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index 2b0f6f7aa9d..46964ea3a1b 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index 52a0dbe996c..b0797bb794e 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index cf9facf6053..54da2f30278 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index bf898ae0d6f..3c13cb4c7f6 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index 8e247394404..d613c08e5ce 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 2022-07-15} +% \date{Released 2022-08-05} % \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 2f9b1141ee1..f47ae0281b8 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index be0444ec72d..f69fcd6cc9b 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index 74cda9c649c..a1a071839e0 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index 334695520d6..3a7f061d2d2 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index 244e61bc327..41a14d591cc 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index f2da709109d..ac0b7abb131 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index 521e01b8353..b8f407f3f52 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx b/Master/texmf-dist/source/latex/l3kernel/l3legacy.dtx index 13c6a3c7f80..36303fc3770 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index b19190d305b..40d1fd00099 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index ff928d5f6a6..db98ebf8c40 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index d6ab88596a7..485e5fefde5 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx b/Master/texmf-dist/source/latex/l3kernel/l3pdf.dtx index a2b39ce0811..b9292765030 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index 71522856067..2ed4632e64e 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index a5a13f073fe..a5726a0e7bb 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index d708f237cd6..452a2cb7d54 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 508dca74cce..32e7267129f 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index 5ae4b3344e8..fd9a8b3a02c 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index d6800205e25..590b6bdf9fa 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index c764895fc39..75ced1644a5 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str-convert.dtx index ba9432c5a03..7e9cf89a7ae 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index 5097d283547..5ad97df2f91 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index a25c0867af0..46263e0b2cd 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % @@ -290,9 +290,25 @@ % use will be loaded. This command may only be used once. % \end{function} % +% \begin{function}[added = 2022-07-29]{\sys_ensure_backend:} +% \begin{syntax} +% \cs{sys_ensure_backend:} +% \end{syntax} +% Ensures that a backend has been loaded by calling \cs{sys_load_backend:n} +% if required. +% \end{function} +% % \begin{variable}{\c_sys_backend_str} % Set to the name of the backend in use by \cs{sys_load_backend:n} when -% issued. +% issued. Possible values are +% \begin{itemize} +% \item \texttt{pdftex} +% \item \texttt{luatex} +% \item \texttt{xetex} +% \item \texttt{dvips} +% \item \texttt{dvipdfmx} +% \item \texttt{dvisvgm} +% \end{itemize} % \end{variable} % % \begin{function}[added = 2019-09-12]{\sys_load_debug:} @@ -561,6 +577,17 @@ % \end{macro} % \end{macro} % +% \begin{macro}{\sys_ensure_backend:} +% A simple wrapper. +% \begin{macrocode} +\cs_new_protected:Npn \sys_ensure_backend: + { + \str_if_exist:NF \c_sys_backend_str + { \sys_load_backend:n { } } + } +% \end{macrocode} +% \end{macro} +% % \begin{variable}{\g_@@_debug_bool} % \begin{macrocode} \bool_new:N \g_@@_debug_bool diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-case.dtx index a2ed47843b2..ef6751ac93a 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % @@ -357,7 +357,7 @@ % \begin{macrocode} \cs_new:Npn \@@_change_case_N_type:nnN #1#2#3 { - \@@_if_recursion_tail_stop_do:Nn #3 + \@@_if_q_recursion_tail_stop_do:Nn #3 { \@@_change_case_end:w } \@@_change_case_N_type_aux:nnN {#1} {#2} #3 } @@ -374,7 +374,7 @@ } \cs_new:Npn \@@_change_case_math_search:nnNNN #1#2#3#4#5 { - \@@_if_recursion_tail_stop_do:Nn #4 + \@@_if_q_recursion_tail_stop_do:Nn #4 { \@@_change_case_cs_check:nnN {#1} {#2} #3 } \token_if_eq_meaning:NNTF #3 #4 { @@ -399,7 +399,7 @@ } \cs_new:Npn \@@_change_case_math_N_type:nnNN #1#2#3#4 { - \@@_if_recursion_tail_stop_do:Nn #4 + \@@_if_q_recursion_tail_stop_do:Nn #4 { \@@_change_case_end:w } \@@_change_case_store:n {#4} \token_if_eq_meaning:NNTF #4 #3 @@ -454,7 +454,7 @@ } \cs_new:Npn \@@_change_case_exclude:nnNN #1#2#3#4 { - \@@_if_recursion_tail_stop_do:Nn #4 + \@@_if_q_recursion_tail_stop_do:Nn #4 { \@@_change_case_replace:nnN {#1} {#2} #3 } \str_if_eq:nnTF {#3} {#4} { @@ -910,6 +910,9 @@ % \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnN} % \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:nnnNN} +% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnNNN} +% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnn} % \begin{macro}[EXP,TF]{\@@_change_case_if_greek:n} % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n} % \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_accent:n} @@ -927,7 +930,7 @@ % \emph{ypogegrammeni} is filtered out here as it is not actually in the % Greek range, so gets lost if we leave until later. % \begin{macrocode} -\bool_lazy_or:nnT +\bool_lazy_or:nnTF { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: } { @@ -1130,6 +1133,43 @@ } } % \end{macrocode} +% For $8$-bit engines we use a simplified approach: covers the common +% requirements. This is basically how \pkg{xgreek} works but done by +% expansion: use fixed mappings from accented to accent-free letters. +% Only the two- and three-byte ranges can be involved. +% \begin{macrocode} + { + \cs_new:Npn \@@_change_case_upper_el:nnnN #1#2#3#4 + { + \int_compare:nNnTF { `#4 } > { "80 } + { + \int_compare:nNnTF { `#4 } < { "E0 } + { \@@_change_case_upper_el:nnnNN } + { + \int_compare:nNnTF { `#4 } < { "F0 } + { \@@_change_case_upper_el:nnnNNN } + { \@@_change_case_char:nnnN } + } + } + { \@@_change_case_char:nnnN } + {#1} {#2} {#3} #4 + } + \cs_new:Npn \@@_change_case_upper_el:nnnNN #1#2#3#4#5 + { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4#5} } + \cs_new:Npn \@@_change_case_upper_el:nnnNNN #1#2#3#4#5#6 + { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4#5#6} } + \cs_new:Npn \@@_change_case_upper_el:nnnn #1#2#3#4 + { + \cs_if_exist:cTF { c_@@_uppercase_el_ \tl_to_str:n {#4} _tl } + { + \@@_change_case_store:v + { c_@@_uppercase_el_ \tl_to_str:n {#4} _tl } + \@@_change_case_loop:nnw {#1} {#3} + } + { \@@_change_case_char:nnnN {#1} {#2} {#3} #4 } + } + } +% \end{macrocode} % Luckily the Greek range is limited and clear. % \begin{macrocode} \prg_new_conditional:Npnn \@@_change_case_if_greek:n #1 { TF } @@ -1268,6 +1308,9 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:Nnnw} % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnN} % \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnNw} @@ -2114,6 +2157,27 @@ \@@_tmp:w { 03F4 } { 03B8 } { lower } \@@_tmp:w { 03F5 } { 0395 } { upper } % \end{macrocode} +% Croatian digraph letters: these have a titlecase variant. +% \begin{macrocode} + \@@_tmp:w { 01C4 } { 01C5 } { title } + \@@_tmp:w { 01C4 } { 01C6 } { lower } + \@@_tmp:w { 01C5 } { 01C4 } { upper } + \@@_tmp:w { 01C5 } { 01C6 } { lower } + \@@_tmp:w { 01C6 } { 01C4 } { upper } + \@@_tmp:w { 01C6 } { 01C5 } { title } + \@@_tmp:w { 01C7 } { 01C8 } { title } + \@@_tmp:w { 01C7 } { 01C9 } { lower } + \@@_tmp:w { 01C8 } { 01C7 } { upper } + \@@_tmp:w { 01C8 } { 01C9 } { lower } + \@@_tmp:w { 01C9 } { 01C7 } { upper } + \@@_tmp:w { 01C9 } { 01C8 } { title } + \@@_tmp:w { 01CA } { 01CB } { title } + \@@_tmp:w { 01CA } { 01CC } { lower } + \@@_tmp:w { 01CB } { 01CA } { upper } + \@@_tmp:w { 01CB } { 01CC } { lower } + \@@_tmp:w { 01CC } { 01CA } { upper } + \@@_tmp:w { 01CC } { 01CB } { title } +% \end{macrocode} % Odds and ends that are not simple one-to-one mappings. These % are still two-octet code points. % \begin{macrocode} @@ -2312,6 +2376,371 @@ \group_end: } \@@_tmp:w { 1FBE } { 0399 } { upper } +% \end{macrocode} +% Greek accent suppression for uppercasing. +% \begin{macrocode} + \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8 + { + \tl_const:cx + { + c_@@_uppercase_el_ + \char_generate:nn {#1} { 12 } + \char_generate:nn {#2} { 12 } + _tl + } + { + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#5} { 13 } + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#6} { 13 } + } + } + \@@_loop:nn + { 0370 } { 0370 } + { 0371 } { 0370 } + { 0372 } { 0372 } + { 0373 } { 0372 } + { 0376 } { 0376 } + { 0377 } { 0376 } + { 03FD } { 03FD } + { 037B } { 03FD } + { 03FE } { 03FE } + { 037C } { 03FE } + { 03FF } { 03FF } + { 037D } { 03FF } + { 0386 } { 0391 } + { 0388 } { 0395 } + { 0389 } { 0397 } + { 038A } { 0399 } + { 038C } { 039F } + { 038E } { 03A5 } + { 038F } { 03A9 } + { 0390 } { 03AA } + { 0391 } { 0391 } + { 0392 } { 0392 } + { 0393 } { 0393 } + { 0394 } { 0394 } + { 0395 } { 0395 } + { 0396 } { 0396 } + { 0397 } { 0397 } + { 0398 } { 0398 } + { 0399 } { 0399 } + { 039A } { 039A } + { 039B } { 039B } + { 039C } { 039C } + { 039D } { 039D } + { 039E } { 039E } + { 039F } { 039F } + { 03A0 } { 03A0 } + { 03A1 } { 03A1 } + { 03A3 } { 03A3 } + { 03A4 } { 03A4 } + { 03A5 } { 03A5 } + { 03A6 } { 03A6 } + { 03A7 } { 03A7 } + { 03A8 } { 03A8 } + { 03A9 } { 03A9 } + { 03AA } { 03AA } + { 03AB } { 03AB } + { 03AC } { 0391 } + { 03AD } { 0395 } + { 03AE } { 0397 } + { 03AF } { 0399 } + { 03B0 } { 03AB } + { 03B1 } { 0391 } + { 03B2 } { 0392 } + { 03B3 } { 0393 } + { 03B4 } { 0394 } + { 03B5 } { 0395 } + { 03B6 } { 0396 } + { 03B7 } { 0397 } + { 03B8 } { 0398 } + { 03B9 } { 0399 } + { 03BA } { 039A } + { 03BB } { 039B } + { 03BC } { 039C } + { 03BD } { 039D } + { 03BE } { 039E } + { 03BF } { 039F } + { 03C0 } { 03A0 } + { 03C1 } { 03A1 } + { 03C2 } { 03A3 } + { 03C3 } { 03A3 } + { 03C4 } { 03A4 } + { 03C5 } { 03A5 } + { 03C6 } { 03A6 } + { 03C7 } { 03A7 } + { 03C8 } { 03A8 } + { 03C9 } { 03A9 } + { 03CA } { 03AA } + { 03CB } { 03AB } + { 03CC } { 039F } + { 03CD } { 03A5 } + { 03CE } { 03A9 } + { 03D0 } { 0392 } + { 03D1 } { 0398 } + { 03D2 } { 03A5 } + { 03D3 } { 03A5 } + { 03D4 } { 03AB } + { 03D5 } { 03A6 } + { 03D6 } { 03A0 } + { 03DA } { 03DA } + { 03DB } { 03DA } + { 03DC } { 03DC } + { 03DD } { 03DC } + { 03DE } { 03DE } + { 03DF } { 03DE } + { 03E0 } { 03E0 } + { 03E1 } { 03E0 } + { 03F0 } { 039A } + { 03F1 } { 03A1 } + { 03F2 } { 03F9 } + { 03F9 } { 03F9 } + \q_recursion_tail ? + \q_recursion_stop + \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8 + { + \tl_const:cx + { + c_@@_uppercase_el_ + \char_generate:nn {#1} { 12 } + \char_generate:nn {#2} { 12 } + \char_generate:nn {#3} { 12 } + _tl + } + { + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#5} { 13 } + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#6} { 13 } + \tl_if_blank:nF {#7} + { + \exp_after:wN \exp_after:wN \exp_after:wN + \exp_not:N \char_generate:nn {#7} { 13 } + } + } + } + \@@_loop:nn + { 1F00 } { 0391 } + { 1F01 } { 0391 } + { 1F02 } { 0391 } + { 1F03 } { 0391 } + { 1F04 } { 0391 } + { 1F05 } { 0391 } + { 1F06 } { 0391 } + { 1F07 } { 0391 } + { 1F08 } { 0391 } + { 1F09 } { 0391 } + { 1F0A } { 0391 } + { 1F0B } { 0391 } + { 1F0C } { 0391 } + { 1F0D } { 0391 } + { 1F0E } { 0391 } + { 1F0F } { 0391 } + { 1F10 } { 0395 } + { 1F11 } { 0395 } + { 1F12 } { 0395 } + { 1F13 } { 0395 } + { 1F14 } { 0395 } + { 1F15 } { 0395 } + { 1F18 } { 0395 } + { 1F19 } { 0395 } + { 1F1A } { 0395 } + { 1F1B } { 0395 } + { 1F1C } { 0395 } + { 1F1D } { 0395 } + { 1F20 } { 0397 } + { 1F21 } { 0397 } + { 1F22 } { 0397 } + { 1F23 } { 0397 } + { 1F24 } { 0397 } + { 1F25 } { 0397 } + { 1F26 } { 0397 } + { 1F27 } { 0397 } + { 1F28 } { 0397 } + { 1F29 } { 0397 } + { 1F2A } { 0397 } + { 1F2B } { 0397 } + { 1F2C } { 0397 } + { 1F2D } { 0397 } + { 1F2E } { 0397 } + { 1F2F } { 0397 } + { 1F30 } { 0399 } + { 1F31 } { 0399 } + { 1F32 } { 0399 } + { 1F33 } { 0399 } + { 1F34 } { 0399 } + { 1F35 } { 0399 } + { 1F36 } { 0399 } + { 1F37 } { 0399 } + { 1F38 } { 0399 } + { 1F39 } { 0399 } + { 1F3A } { 0399 } + { 1F3B } { 0399 } + { 1F3C } { 0399 } + { 1F3D } { 0399 } + { 1F3E } { 0399 } + { 1F3F } { 0399 } + { 1F40 } { 039F } + { 1F41 } { 039F } + { 1F42 } { 039F } + { 1F43 } { 039F } + { 1F44 } { 039F } + { 1F45 } { 039F } + { 1F48 } { 039F } + { 1F49 } { 039F } + { 1F4A } { 039F } + { 1F4B } { 039F } + { 1F4C } { 039F } + { 1F4D } { 039F } + { 1F50 } { 03A5 } + { 1F51 } { 03A5 } + { 1F52 } { 03A5 } + { 1F53 } { 03A5 } + { 1F54 } { 03A5 } + { 1F55 } { 03A5 } + { 1F56 } { 03A5 } + { 1F57 } { 03A5 } + { 1F59 } { 03A5 } + { 1F5B } { 03A5 } + { 1F5D } { 03A5 } + { 1F5F } { 03A5 } + { 1F60 } { 03A9 } + { 1F61 } { 03A9 } + { 1F62 } { 03A9 } + { 1F63 } { 03A9 } + { 1F64 } { 03A9 } + { 1F65 } { 03A9 } + { 1F66 } { 03A9 } + { 1F67 } { 03A9 } + { 1F68 } { 03A9 } + { 1F69 } { 03A9 } + { 1F6A } { 03A9 } + { 1F6B } { 03A9 } + { 1F6C } { 03A9 } + { 1F6D } { 03A9 } + { 1F6E } { 03A9 } + { 1F6F } { 03A9 } + { 1F70 } { 0391 } + { 1F71 } { 0391 } + { 1F72 } { 0395 } + { 1F73 } { 0395 } + { 1F74 } { 0397 } + { 1F75 } { 0397 } + { 1F76 } { 0399 } + { 1F77 } { 0399 } + { 1F78 } { 039F } + { 1F79 } { 039F } + { 1F7A } { 03A5 } + { 1F7B } { 03A5 } + { 1F7C } { 03A9 } + { 1F7D } { 03A9 } + { 1F80 } { 1FBC } + { 1F81 } { 1FBC } + { 1F82 } { 1FBC } + { 1F83 } { 1FBC } + { 1F84 } { 1FBC } + { 1F85 } { 1FBC } + { 1F86 } { 1FBC } + { 1F87 } { 1FBC } + { 1F88 } { 1FBC } + { 1F89 } { 1FBC } + { 1F8A } { 1FBC } + { 1F8B } { 1FBC } + { 1F8C } { 1FBC } + { 1F8D } { 1FBC } + { 1F8E } { 1FBC } + { 1F8F } { 1FBC } + { 1F90 } { 1FCC } + { 1F91 } { 1FCC } + { 1F92 } { 1FCC } + { 1F93 } { 1FCC } + { 1F94 } { 1FCC } + { 1F95 } { 1FCC } + { 1F96 } { 1FCC } + { 1F97 } { 1FCC } + { 1F98 } { 1FCC } + { 1F99 } { 1FCC } + { 1F9A } { 1FCC } + { 1F9B } { 1FCC } + { 1F9C } { 1FCC } + { 1F9D } { 1FCC } + { 1F9E } { 1FCC } + { 1F9F } { 1FCC } + { 1FA0 } { 1FFC } + { 1FA1 } { 1FFC } + { 1FA2 } { 1FFC } + { 1FA3 } { 1FFC } + { 1FA4 } { 1FFC } + { 1FA5 } { 1FFC } + { 1FA6 } { 1FFC } + { 1FA7 } { 1FFC } + { 1FA8 } { 1FFC } + { 1FA9 } { 1FFC } + { 1FAA } { 1FFC } + { 1FAB } { 1FFC } + { 1FAC } { 1FFC } + { 1FAD } { 1FFC } + { 1FAE } { 1FFC } + { 1FAF } { 1FFC } + { 1FB0 } { 1FB8 } + { 1FB1 } { 1FB9 } + { 1FB2 } { 1FBC } + { 1FB3 } { 1FBC } + { 1FB4 } { 1FBC } + { 1FB6 } { 0391 } + { 1FB7 } { 1FBC } + { 1FB8 } { 1FB8 } + { 1FB9 } { 1FB9 } + { 1FBA } { 0391 } + { 1FBB } { 0391 } + { 1FBC } { 1FBC } + { 1FBD } { 1FBD } + { 1FC2 } { 1FCC } + { 1FC3 } { 1FCC } + { 1FC4 } { 1FCC } + { 1FC6 } { 0397 } + { 1FC7 } { 1FCC } + { 1FC8 } { 0395 } + { 1FC9 } { 0395 } + { 1FCA } { 0397 } + { 1FCB } { 0397 } + { 1FCC } { 1FCC } + { 1FD0 } { 1FD8 } + { 1FD1 } { 1FD9 } + { 1FD2 } { 03AA } + { 1FD3 } { 03AA } + { 1FD6 } { 0399 } + { 1FD7 } { 03AA } + { 1FD8 } { 1FD8 } + { 1FD9 } { 1FD9 } + { 1FDA } { 0399 } + { 1FDB } { 0399 } + { 1FE0 } { 1FE8 } + { 1FE1 } { 1FE9 } + { 1FE2 } { 03AB } + { 1FE3 } { 03AB } + { 1FE4 } { 03A1 } + { 1FE5 } { 03A1 } + { 1FE6 } { 03A5 } + { 1FE7 } { 03AB } + { 1FE8 } { 1FE8 } + { 1FE9 } { 1FE9 } + { 1FEA } { 03A5 } + { 1FEB } { 03A5 } + { 1FEC } { 1FEC } + { 1FF2 } { 1FFC } + { 1FF3 } { 1FFC } + { 1FF4 } { 1FFC } + { 1FF6 } { 03A9 } + { 1FF7 } { 1FFC } + { 1FF8 } { 039F } + { 1FF9 } { 039F } + { 1FFA } { 03A9 } + { 1FFB } { 03A9 } + { 1FFC } { 1FFC } + \q_recursion_tail ? + \q_recursion_stop } \group_end: % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text-purify.dtx index 605a30a5a6b..6006409985a 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % @@ -157,7 +157,7 @@ % \begin{macrocode} \cs_new:Npn \@@_purify_N_type:N #1 { - \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w } + \@@_if_q_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w } \@@_purify_N_type_aux:N #1 } \cs_new:Npn \@@_purify_N_type_aux:N #1 @@ -169,7 +169,7 @@ } \cs_new:Npn \@@_purify_math_search:NNN #1#2#3 { - \@@_if_recursion_tail_stop_do:Nn #2 + \@@_if_q_recursion_tail_stop_do:Nn #2 { \@@_purify_math_cmd:N #1 } \token_if_eq_meaning:NNTF #1 #2 { @@ -210,7 +210,7 @@ } \cs_new:Npn \@@_purify_math_N_type:NNN #1#2#3 { - \@@_if_recursion_tail_stop_do:Nn #3 + \@@_if_q_recursion_tail_stop_do:Nn #3 { \@@_purify_math_stop:Nw #1 } \token_if_eq_meaning:NNTF #3 #2 { \@@_purify_math_end:w } @@ -242,7 +242,7 @@ } \cs_new:Npn \@@_purify_math_cmd:NN #1#2 { - \@@_if_recursion_tail_stop_do:Nn #2 + \@@_if_q_recursion_tail_stop_do:Nn #2 { \@@_purify_replace:N #1 } \cs_if_eq:NNTF #2 #1 { @@ -293,7 +293,7 @@ } \cs_new:Npn \@@_purify_protect:N #1 { - \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w } + \@@_if_q_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w } \@@_purify_loop:w } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3text.dtx b/Master/texmf-dist/source/latex/l3kernel/l3text.dtx index 7615cf39696..67218edf309 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % @@ -170,11 +170,12 @@ % Unicode \TeX{} engines. % \item Greek (\texttt{el}). % Removes accents from Greek letters when uppercasing; titlecasing -% leaves accents in place. (At present this is implemented only -% for Unicode engines.) A variant \texttt{el-x-iota} is available +% leaves accents in place. A variant \texttt{el-x-iota} is available % which retains the \textit{ypogegrammeni} (subscript muted iota) % when uppercasing: the standard version converts these to a following -% capital iota. +% capital iota. For $8$-bit engines a simplified approach is taken +% which will remove accents when uppercasing but without full +% context analysis. % \item Lithuanian (\texttt{lt}). % The lowercase letters i and j should retain a dot above when the % accents grave, acute or tilde are present. This is implemented for @@ -355,10 +356,42 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_if_recursion_tail_stop_do:Nn} +% \begin{macro}[EXP]{\@@_if_q_recursion_tail_stop_do:Nn} % Functions to query recursion quarks. % \begin{macrocode} -\__kernel_quark_new_test:N \@@_if_recursion_tail_stop_do:Nn +\__kernel_quark_new_test:N \@@_if_q_recursion_tail_stop_do:Nn +% \end{macrocode} +% \end{macro} +% +% \begin{variable}{\s_@@_recursion_tail,\s_@@_recursion_stop} +% Internal scan marks quarks. +% \begin{macrocode} +\scan_new:N \s_@@_recursion_tail +\scan_new:N \s_@@_recursion_stop +% \end{macrocode} +% \end{variable} +% +% \begin{macro}[EXP]{\@@_use_i_delimit_by_s_recursion_stop:nw} +% Functions to gobble up to a scan mark. +% \begin{macrocode} +\cs_new:Npn \@@_use_i_delimit_by_s_recursion_stop:nw + #1 #2 \s_@@_recursion_stop {#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[EXP]{\@@_if_s_recursion_tail_stop_do:Nn} +% Functions to query recursion scan marks. Slower than a quark +% test but needed to avoid issues in the outer expansion loop +% with unterminated \tn{romannumeral} primitives. +% \begin{macrocode} +\cs_new:Npn \@@_if_s_recursion_tail_stop_do:Nn #1 + { + \bool_lazy_and:nnTF + { \cs_if_eq_p:NN \s_@@_recursion_tail #1 } + { \str_if_eq_p:nn { \s_@@_recursion_tail } {#1} } + { \@@_use_i_delimit_by_s_recursion_stop:nw } + { \use_none:n } + } % \end{macrocode} % \end{macro} % @@ -731,7 +764,9 @@ % arbitrary user commands which might be protected \emph{and} take % arguments, and if the expansion code is used in a typesetting % context, that will otherwise explode. (The same issue applies more -% clearly to case changing: see the example there.) +% clearly to case changing: see the example there.) The outer +% loop has to use scan marks as delimiters to protect against +% unterminated \tn{romannumeral} usage in the input. % \begin{macrocode} \cs_new:Npn \text_expand:n #1 { @@ -745,7 +780,7 @@ { \group_align_safe_begin: \@@_expand_loop:w #1 - \q_@@_recursion_tail \q_@@_recursion_stop + \s_@@_recursion_tail \s_@@_recursion_stop \@@_expand_result:n { } } % \end{macrocode} @@ -768,7 +803,7 @@ % recursively, while spaces are just passed through. Thus all of the % action is in handling \texttt{N}-type tokens. % \begin{macrocode} -\cs_new:Npn \@@_expand_loop:w #1 \q_@@_recursion_stop +\cs_new:Npn \@@_expand_loop:w #1 \s_@@_recursion_stop { \tl_if_head_is_N_type:nTF {#1} { \@@_expand_N_type:N } @@ -777,7 +812,7 @@ { \@@_expand_group:n } { \@@_expand_space:w } } - #1 \q_@@_recursion_stop + #1 \s_@@_recursion_stop } \cs_new:Npn \@@_expand_group:n #1 { @@ -805,7 +840,7 @@ % \begin{macrocode} \cs_new:Npx \@@_expand_N_type:N #1 { - \exp_not:N \@@_if_recursion_tail_stop_do:Nn #1 + \exp_not:N \@@_if_s_recursion_tail_stop_do:Nn #1 { \exp_not:N \@@_expand_end:w } \exp_not:N \bool_lazy_any:nTF { @@ -884,7 +919,7 @@ } \cs_new:Npn \@@_expand_math_search:NNN #1#2#3 { - \@@_if_recursion_tail_stop_do:Nn #2 + \@@_if_q_recursion_tail_stop_do:Nn #2 { \@@_expand_explicit:N #1 } \token_if_eq_meaning:NNTF #1 #2 { @@ -896,7 +931,7 @@ } { \@@_expand_math_search:NNN #1 } } -\cs_new:Npn \@@_expand_math_loop:Nw #1#2 \q_@@_recursion_stop +\cs_new:Npn \@@_expand_math_loop:Nw #1#2 \s_@@_recursion_stop { \tl_if_head_is_N_type:nTF {#2} { \@@_expand_math_N_type:NN } @@ -905,11 +940,11 @@ { \@@_expand_math_group:Nn } { \@@_expand_math_space:Nw } } - #1#2 \q_@@_recursion_stop + #1#2 \s_@@_recursion_stop } \cs_new:Npn \@@_expand_math_N_type:NN #1#2 { - \@@_if_recursion_tail_stop_do:Nn #2 + \@@_if_s_recursion_tail_stop_do:Nn #2 { \@@_expand_end:w } \@@_expand_store:n {#2} \token_if_eq_meaning:NNTF #2 #1 @@ -989,7 +1024,7 @@ } \cs_new:Npn \@@_expand_exclude:NN #1#2 { - \@@_if_recursion_tail_stop_do:Nn #2 + \@@_if_q_recursion_tail_stop_do:Nn #2 { \@@_expand_accent:N #1 } \str_if_eq:nnTF {#1} {#2} { @@ -1016,7 +1051,7 @@ } \cs_new:Npn \@@_expand_accent:NN #1#2 { - \@@_if_recursion_tail_stop_do:Nn #2 + \@@_if_q_recursion_tail_stop_do:Nn #2 { \@@_expand_letterlike:N #1 } \cs_if_eq:NNTF #2 #1 { @@ -1040,7 +1075,7 @@ } \cs_new:Npn \@@_expand_letterlike:NN #1#2 { - \@@_if_recursion_tail_stop_do:Nn #2 + \@@_if_q_recursion_tail_stop_do:Nn #2 { \@@_expand_cs:N #1 } \cs_if_eq:NNTF #2 #1 { @@ -1072,7 +1107,7 @@ { \exp_not:N \@@_expand_replace:N #1 } } } -\cs_new:Npn \@@_expand_protect:w #1 \q_@@_recursion_stop +\cs_new:Npn \@@_expand_protect:w #1 \s_@@_recursion_stop { \tl_if_head_is_N_type:nTF {#1} { \@@_expand_protect:N } @@ -1080,11 +1115,11 @@ \@@_expand_store:n { \protect } \@@_expand_loop:w } - #1 \q_@@_recursion_stop + #1 \s_@@_recursion_stop } \cs_new:Npn \@@_expand_protect:N #1 { - \@@_if_recursion_tail_stop_do:Nn #1 + \@@_if_s_recursion_tail_stop_do:Nn #1 { \@@_expand_store:n { \protect } \@@_expand_end:w @@ -1186,7 +1221,7 @@ \exp_after:wN \@@_expand_unexpanded_test:w \exp:w \exp_end_continue_f:w } -\cs_new:Npn \@@_expand_unexpanded_test:w #1 \q_@@_recursion_stop +\cs_new:Npn \@@_expand_unexpanded_test:w #1 \s_@@_recursion_stop { \tl_if_head_is_group:nTF {#1} { \@@_expand_unexpanded:n } @@ -1194,7 +1229,7 @@ \@@_expand_unexpanded:w \tl_if_head_is_N_type:nT {#1} { \@@_expand_unexpanded:N } } - #1 \q_@@_recursion_stop + #1 \s_@@_recursion_stop } \cs_new:Npn \@@_expand_unexpanded:N #1 { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index c9cffed9540..8d9106b617d 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index 65178fa7b23..e4a04070ba0 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index 0994d2de2d5..728a54a47a2 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index fbf1d0bd6cd..b2df6d94dd3 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 2022-07-15} +% \date{Released 2022-08-05} % % \maketitle % -- cgit v1.2.3