diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex | 49 |
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: } |