summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex49
1 files changed, 47 insertions, 2 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 8002f1b319e..d303b6c46c5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -70,7 +70,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2022-07-01}%
+\def\ExplFileDate{2022-07-04}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -32121,6 +32121,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
{
\exp_not:V \l_text_math_arg_tl
\exp_not:V \l_text_expand_exclude_tl
+ \exp_not:N \text_case_switch:nnnn
}
#1
}
@@ -32534,7 +32535,7 @@ Type H <return> for immediate help}\def~{\errmessage{%
\cs_new:Npn \__text_change_case_exclude:nnNN #1#2#3#4
{
\__text_if_recursion_tail_stop_do:Nn #4
- { \use:c { __text_change_case_letterlike_ #1 :nnN } {#1} {#2} #3 }
+ { \__text_change_case_replace:nnN {#1} {#2} #3 }
\str_if_eq:nnTF {#3} {#4}
{
\__text_use_i_delimit_by_q_recursion_stop:nw
@@ -32558,6 +32559,39 @@ Type H <return> for immediate help}\def~{\errmessage{%
}
\__text_change_case_loop:nnw {#1} {#2}
}
+\cs_new:Npn \__text_change_case_replace:nnN #1#2#3
+ {
+ \cs_if_exist:cTF { l__text_case_ \token_to_str:N #3 _tl }
+ {
+ \exp_args:Nv \__text_change_case_replace:nnn
+ { l__text_case_ \token_to_str:N #3 _tl } {#1} {#2}
+ }
+ { \__text_change_case_switch:nnN {#1} {#2} #3 }
+ }
+\cs_new:Npn \__text_change_case_replace:nnn #1#2#3
+ { \__text_change_case_loop:nnw {#2} {#3} #1 }
+\cs_new:Npn \__text_change_case_switch:nnN #1#2#3
+ {
+ \cs_if_eq:NNTF #3 \text_case_switch:nnnn
+ { \use:c { __text_change_case_switch_ #1 :nnNnnnn } }
+ { \use:c { __text_change_case_letterlike_ #1 :nnN } }
+ {#1} {#2} #3
+ }
+\cs_new:Npn \__text_change_case_switch_lower:nnNnnnn #1#2#3#4#5#6#7
+ {
+ \__text_change_case_store:n {#5}
+ \__text_change_case_loop:nnw {#1} {#2}
+ }
+\cs_new:Npn \__text_change_case_switch_upper:nnNnnnn #1#2#3#4#5#6#7
+ {
+ \__text_change_case_store:n {#6}
+ \__text_change_case_loop:nnw {#1} {#2}
+ }
+\cs_new:Npn \__text_change_case_switch_title:nnNnnnn #1#2#3#4#5#6#7
+ {
+ \__text_change_case_store:n {#7}
+ \__text_change_case_loop:nnw {#1} {#2}
+ }
\cs_new:Npn \__text_change_case_letterlike_lower:nnN #1#2#3
{ \__text_change_case_letterlike:nnnnN {#1} {#1} {#1} {#2} #3 }
\cs_new_eq:NN \__text_change_case_letterlike_upper:nnN
@@ -32773,6 +32807,17 @@ Type H <return> for immediate help}\def~{\errmessage{%
\__text_change_case_char_next_lower:nn
\cs_new:Npn \__text_change_case_char_next_end:nn #1#2
{ \__text_change_case_break:w }
+\cs_new_protected:Npn \text_declare_case_equivalent:Nn #1#2
+ {
+ \tl_clear_new:c { l__text_case_ \token_to_str:N #1 _tl }
+ \tl_set:cn { l__text_case_ \token_to_str:N #1 _tl } {#2}
+ }
+\cs_new:Npn \text_case_switch:nnnn #1#2#3#4
+ {
+ \__text_case_switch_marker:
+ #1
+ }
+\cs_new:Npn \__text_case_switch_marker: { }
\bool_lazy_or:nnTF
{ \sys_if_engine_luatex_p: }
{ \sys_if_engine_xetex_p: }