diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex index 01c15f78e..08d97cff6 100644 --- a/texmf/tex/latex/l3kernel/expl3-code.tex +++ b/texmf/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-04-29}% +\def\ExplFileDate{2022-05-04}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -32274,12 +32274,32 @@ \__kernel_exp_not:w \exp_after:wN { \exp:w - \exp_args:Ne \__text_change_case_aux:nnn + \exp_args:Ne \__text_change_case_auxi:nnn { \text_expand:n {#3} } {#1} {#2} } } -\cs_new:Npn \__text_change_case_aux:nnn #1#2#3 +\cs_new:Npn \__text_change_case_auxi:nnn #1#2#3 + { \exp_args:No \__text_change_case_BCP:nnn { \tl_to_str:n {#3} } {#1} {#2} } +\cs_new:Npx \__text_change_case_BCP:nnn #1#2#3 + { + \exp_not:N \__text_change_case_BCP:nnw + {#2} {#3} #1 \tl_to_str:n { -x- -x- } \exp_not:N \q__text_stop + } +\use:x + { + \cs_new:Npn \exp_not:N \__text_change_case_BCP:nnw + ##1##2##3 \tl_to_str:n { -x- } ##4 \tl_to_str:n { -x- } ##5 + \exp_not:N \q__text_stop + } + { \__text_change_case_BCP:nnnnw {#1} {#2} {#4} {#3} #3 - - \q__text_stop } +\cs_new:Npn \__text_change_case_BCP:nnnnw #1#2#3#4#5 - #6 - #7 \q__text_stop + { + \cs_if_exist:cTF { __text_change_case_ #2 _ #5 -x- #3 :nnnN } + { \__text_change_case_auxii:nnn {#1} {#2} { #5 -x- #3 } } + { \__text_change_case_auxii:nnn {#1} {#2} {#4} } + } +\cs_new:Npn \__text_change_case_auxii:nnn #1#2#3 { \group_align_safe_begin: \cs_if_exist_use:c { __text_change_case_boundary_ #2 _ #3 :Nnnw } @@ -32321,7 +32341,7 @@ \exp_after:wN { \exp:w - \__text_change_case_aux:nnn {#3} {#1} {#2} + \__text_change_case_auxii:nnn {#3} {#1} {#2} } } \__text_change_case_loop:nnw {#1} {#2} @@ -32335,7 +32355,7 @@ \exp_after:wN { \exp:w - \__text_change_case_aux:nnn {#3} {#1} {#2} + \__text_change_case_auxii:nnn {#3} {#1} {#2} } } \__text_change_case_loop:nnw { lower } {#2} @@ -32347,7 +32367,7 @@ \exp_after:wN { \exp:w - \__text_change_case_aux:nnn {#3} {#1} {#2} + \__text_change_case_auxii:nnn {#3} {#1} {#2} } } \__text_change_case_break:w @@ -32684,7 +32704,7 @@ { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: } { - \cs_new:cpn { __text_change_case_upper_de-xeszett:nnnN } #1#2#3#4 + \cs_new:cpn { __text_change_case_upper_de-x-eszett:nnnN } #1#2#3#4 { \int_compare:nNnTF { `#4 } = { "00DF } { @@ -32697,16 +32717,16 @@ } } { - \cs_new:cpx { __text_change_case_upper_de-xeszett:nnnN } #1#2#3#4 + \cs_new:cpx { __text_change_case_upper_de-x-eszett:nnnN } #1#2#3#4 { \exp_not:N \int_compare:nNnTF { `#4 } = { "00C3 } { - \exp_not:c { __text_change_case_upper_de-xeszett:nnnNN } + \exp_not:c { __text_change_case_upper_de-x-eszett:nnnNN } {#1} {#2} {#3} #4 } { \exp_not:N \__text_change_case_char:nnnN {#1} {#2} {#3} #4 } } - \cs_new:cpn { __text_change_case_upper_de-xeszett:nnnNN } #1#2#3#4#5 + \cs_new:cpn { __text_change_case_upper_de-x-eszett:nnnNN } #1#2#3#4#5 { \int_compare:nNnTF { `#5 } = { "009F } { @@ -32717,7 +32737,7 @@ } } \cs_new_eq:cc { __text_change_case_upper_de-alt:nnnN } - { __text_change_case_upper_de-xeszett:nnnN } + { __text_change_case_upper_de-x-eszett:nnnN } \bool_lazy_or:nnT { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: } @@ -32741,14 +32761,14 @@ { \__text_change_case_char:nnnN {#1} {#2} {#3} #4 } } } - \cs_new_eq:cN { __text_change_case_upper_el-xiota:nnnN } + \cs_new_eq:cN { __text_change_case_upper_el-x-iota:nnnN } \__text_change_case_upper_el:nnnN \cs_new:Npn \__text_change_case_upper_el:N #1 { \char_generate:nn { "0399 } { \char_value_catcode:n { "0399 } } } - \cs_new:cpn { __text_change_case_upper_el-xiota:N } #1 + \cs_new:cpn { __text_change_case_upper_el-x-iota:N } #1 { \exp_not:n {#1} } \cs_new:Npn \__text_change_case_upper_el:nnn #1#2#3 { \__text_change_case_upper_el:nnNw {#2} {#3} #1 } @@ -33062,6 +33082,43 @@ \cs_new:Npn \__text_change_case_title_el:nnnN #1#2#3#4 { \__text_change_case_char:nnnN {#1} {#2} {#3} #4 } } +\bool_lazy_or:nnT + { \sys_if_engine_luatex_p: } + { \sys_if_engine_xetex_p: } + { + \cs_new:cpn { __text_change_case_upper_hy:nnnN } #1#2#3#4 + { + \int_compare:nNnTF { `#4 } = { "0587 } + { + \__text_change_case_store:e + { + \char_generate:nn { "0535 } { \__text_char_catcode:N #4 } + \char_generate:nn { "054E } { \__text_char_catcode:N #4 } + } + \use:c { __text_change_case_char_next_ #2 :nn } + {#2} {#3} + } + { \__text_change_case_char:nnnN {#1} {#2} {#3} #4 } + } + \cs_new:cpn { __text_change_case_title_hy:nnnN } #1#2#3#4 + { + \int_compare:nNnTF { `#4 } = { "0587 } + { + \__text_change_case_store:e + { + \char_generate:nn { "0535 } { \__text_char_catcode:N #4 } + \char_generate:nn { "057E } { \__text_char_catcode:N #4 } + } + \use:c { __text_change_case_char_next_ #2 :nn } + {#2} {#3} + } + { \__text_change_case_char:nnnN {#1} {#2} {#3} #4 } + } + \cs_new:cpn { __text_change_case_upper_hy-x-yiwn:nnnN } #1#2#3#4 + { \__text_change_case_char:nnnN {#1} {#2} {#3} #4 } + \cs_new_eq:cc { __text_change_case_title_hy-x-yiwn:nnnN } + { __text_change_case_upper_hy-x-yiwm:nnnN } + } \bool_lazy_or:nnT { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: } diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex index 3b1f9e008..fe6d8d570 100644 --- a/texmf/tex/latex/l3kernel/expl3-generic.tex +++ b/texmf/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2022-04-29}% +\def\ExplFileDate{2022-05-04}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx index 0fe1623aa..46d3ff329 100644 --- a/texmf/tex/latex/l3kernel/expl3.ltx +++ b/texmf/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2022-04-29}% +\def\ExplFileDate{2022-05-04}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty index 284b787d7..670673103 100644 --- a/texmf/tex/latex/l3kernel/expl3.sty +++ b/texmf/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2022-04-29}% +\def\ExplFileDate{2022-05-04}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [%