diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
4 files changed, 127 insertions, 139 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 2b822a03cdf..2630452ff12 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -71,7 +71,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-05-05}% +\def\ExplFileDate{2023-05-11}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -5810,6 +5810,72 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_generate_variant:Nn \seq_remove_all:Nn { c } \cs_generate_variant:Nn \seq_gremove_all:Nn { c } +\cs_new_eq:NN \__seq_int_eval:w \tex_numexpr:D +\cs_new_protected:Npn \seq_set_item:Nnn #1#2#3 + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_i:nn } +\cs_new_protected:Npn \seq_gset_item:Nnn #1#2#3 + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_i:nn } +\cs_generate_variant:Nn \seq_set_item:Nnn { c } +\cs_generate_variant:Nn \seq_gset_item:Nnn { c } +\prg_new_protected_conditional:Npnn \seq_set_item:Nnn #1#2#3 { TF , T , F } + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_ii:nn } +\prg_new_protected_conditional:Npnn \seq_gset_item:Nnn #1#2#3 { TF , T , F } + { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_ii:nn } +\prg_generate_conditional_variant:Nnn \seq_set_item:Nnn { c } { TF , T , F } +\prg_generate_conditional_variant:Nnn \seq_gset_item:Nnn { c } { TF , T , F } +\cs_new_protected:Npn \__seq_set_item:NnnNN #1#2#3 + { + \tl_set:Nn \l__seq_internal_a_tl { \__seq_item:n {#3} } + \exp_args:Nff \__seq_set_item:nnNNNN + { \int_eval:n {#2} } { \seq_count:N #1 } #1 \use_none:nn + } +\cs_new_protected:Npn \__seq_set_item:nnNNNN #1#2 + { + \int_compare:nNnTF {#1} > 0 + { \int_compare:nNnF {#1} > {#2} { \__seq_set_item:nNnnNNNN { #1 - 1 } } } + { + \int_compare:nNnF {#1} < {-#2} + { + \int_compare:nNnF {#1} = 0 + { \__seq_set_item:nNnnNNNN { #2 + #1 } } + } + } + \__seq_set_item_false:nnNNNN {#1} {#2} + } +\cs_new_protected:Npn \__seq_set_item_false:nnNNNN #1#2#3#4#5#6 + { + #6 + { + \msg_error:nnxxx { seq } { item-too-large } + { \token_to_str:N #3 } {#2} {#1} + } + { \prg_return_false: } + } +\cs_new_protected:Npn \__seq_set_item:nNnnNNNN #1#2#3#4#5#6#7#8 + { + #7 #5 + { + \s__seq + \exp_after:wN \__seq_set_item:wn + \int_value:w \__seq_int_eval:w #1 + #5 \s__seq_stop #6 + } + #8 { } { \prg_return_true: } + } +\cs_new:Npn \__seq_set_item:wn #1 \__seq_item:n #2 + { + \if_meaning:w 0 #1 \__seq_set_item_end:w \fi: + \exp_not:n { \__seq_item:n {#2} } + \exp_after:wN \__seq_set_item:wn + \int_value:w \__seq_int_eval:w #1 - 1 \s__seq + } +\cs_new:Npn \__seq_set_item_end:w #1 \exp_not:n #2 #3 \s__seq #4 \s__seq_stop #5 + { + #1 + \exp_not:o \l__seq_internal_a_tl + \exp_not:n {#4} + #5 #2 + } \cs_new_protected:Npn \seq_reverse:N { \__seq_reverse:NN \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_greverse:N @@ -6168,6 +6234,28 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #1 \int_value:w \int_eval:w 1 + #2 ; } +\cs_new:Npn \seq_map_pairwise_function:NNN #1#2#3 + { \exp_after:wN \__seq_map_pairwise_function:wNN #2 \s__seq_stop #1 #3 } +\cs_new:Npn \__seq_map_pairwise_function:wNN \s__seq #1 \s__seq_stop #2#3 + { + \exp_after:wN \__seq_map_pairwise_function:wNw #2 \s__seq_stop #3 + #1 { ? \prg_break: } { } + \prg_break_point: + } +\cs_new:Npn \__seq_map_pairwise_function:wNw \s__seq #1 \s__seq_stop #2 + { + \__seq_map_pairwise_function:Nnnwnn #2 + #1 { ? \prg_break: } { } + \s__seq_stop + } +\cs_new:Npn \__seq_map_pairwise_function:Nnnwnn #1#2#3#4 \s__seq_stop #5#6 + { + \use_none:n #2 + \use_none:n #5 + #1 {#3} {#6} + \__seq_map_pairwise_function:Nnnwnn #1 #4 \s__seq_stop + } +\cs_generate_variant:Nn \seq_map_pairwise_function:NNN { Nc , c , cc } \cs_new_protected:Npn \seq_set_map_x:NNn { \__seq_set_map_x:NNNn \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_gset_map_x:NNn @@ -10708,6 +10796,15 @@ Type H <return> for immediate help}\def~{\errmessage{% LaTeX~has~been~asked~to~create~a~new~scan~mark~'#1'~ but~this~name~has~already~been~used~for~a~scan~mark. } +\msg_new:nnnn { seq } { item-too-large } + { Sequence~'#1'~does~not~have~an~item~#3 } + { + An~attempt~was~made~to~push~or~pop~the~item~at~position~#3~ + of~'#1',~but~this~ + \int_compare:nTF { #3 = 0 } + { position~does~not~exist. } + { sequence~only~has~#2~item \int_compare:nF { #2 = 1 } {s}. } + } \msg_new:nnnn { seq } { shuffle-too-large } { The~sequence~#1~is~too~long~to~be~shuffled~by~TeX. } { @@ -11759,9 +11856,26 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__file_full_name:n #1 { \tl_if_blank:nF {#1} - { \exp_args:Nne \__file_full_name_aux:nn {#1} { \__file_size:n {#1} } } + { \exp_args:Nne \__file_full_name_auxii:nn {#1} { \__file_full_name_aux:n {#1} } } + } +\cs_new:Npn \__file_full_name_aux:n #1 + { + \if_cs_exist:w __file_seen_ \tl_to_str:n {#1} : \cs_end: + -1 + \else: + \exp_args:Ne \__file_full_name_auxi:nn { \__file_size:n {#1} } {#1} + \fi: + } +\cs_new:Npn \__file_full_name_auxi:nn #1#2 + { + \if:w \scan_stop: #1 \scan_stop: + \else: + \exp_after:wN \use_none:n + \cs:w __file_seen_ \tl_to_str:n {#2} : \cs_end: + #1 + \fi: } -\cs_new:Npn \__file_full_name_aux:nn #1 #2 +\cs_new:Npn \__file_full_name_auxii:nn #1 #2 { \tl_if_blank:nTF {#2} { @@ -11779,7 +11893,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__file_full_name_aux:Nnn #1#2#3 { \exp_args:Ne \__file_full_name_aux:nN { \tl_to_str:n {#3} / #2 } #1 } \cs_new:Npn \__file_full_name_aux:nN #1 - { \exp_args:Nne \__file_full_name_aux:nnN {#1} { \__file_size:n {#1} } } + { \exp_args:Nne \__file_full_name_aux:nnN {#1} { \__file_full_name_aux:n {#1} } } \cs_new:Npn \__file_full_name_aux:nnN #1 #2 #3 { \tl_if_blank:nF {#2} @@ -11814,14 +11928,15 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 #3 } } \cs_new:Npn \__file_ext_check:nnn #1 - { \exp_args:Nne \__file_ext_check:nnnn {#1} { \__file_size:n {#1} } } + { \exp_args:Nne \__file_ext_check:nnnn {#1} { \__file_full_name_aux:n {#1} } } \cs_new:Npn \__file_ext_check:nnnn #1#2#3#4 { \tl_if_blank:nTF {#2} {#3} { - \int_compare:nNnTF - {#4} = {#2} + \bool_lazy_or:nnTF + { \int_compare_p:nNn {#4} = {#2} } + { \int_compare_p:nNn {#2} = { -1 } } {#1} {#3} } @@ -35555,28 +35670,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \q_recursion_stop \group_end: %% File: l3candidates.dtx -\cs_new:Npn \seq_mapthread_function:NNN #1#2#3 - { \exp_after:wN \__seq_mapthread_function:wNN #2 \s__seq_stop #1 #3 } -\cs_new:Npn \__seq_mapthread_function:wNN \s__seq #1 \s__seq_stop #2#3 - { - \exp_after:wN \__seq_mapthread_function:wNw #2 \s__seq_stop #3 - #1 { ? \prg_break: } { } - \prg_break_point: - } -\cs_new:Npn \__seq_mapthread_function:wNw \s__seq #1 \s__seq_stop #2 - { - \__seq_mapthread_function:Nnnwnn #2 - #1 { ? \prg_break: } { } - \s__seq_stop - } -\cs_new:Npn \__seq_mapthread_function:Nnnwnn #1#2#3#4 \s__seq_stop #5#6 - { - \use_none:n #2 - \use_none:n #5 - #1 {#3} {#6} - \__seq_mapthread_function:Nnnwnn #1 #4 \s__seq_stop - } -\cs_generate_variant:Nn \seq_mapthread_function:NNN { Nc , c , cc } \cs_new_protected:Npn \seq_set_filter:NNn { \__seq_set_filter:NNNn \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_gset_filter:NNn @@ -35587,113 +35680,6 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 #2 { #3 } \__seq_pop_item_def: } -\cs_new_eq:NN \__seq_int_eval:w \tex_numexpr:D -\cs_new_protected:Npn \seq_set_item:Nnn #1#2#3 - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_i:nn } -\cs_new_protected:Npn \seq_gset_item:Nnn #1#2#3 - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_i:nn } -\cs_generate_variant:Nn \seq_set_item:Nnn { c } -\cs_generate_variant:Nn \seq_gset_item:Nnn { c } -\prg_new_protected_conditional:Npnn \seq_set_item:Nnn #1#2#3 { TF , T , F } - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_ii:nn } -\prg_new_protected_conditional:Npnn \seq_gset_item:Nnn #1#2#3 { TF , T , F } - { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_gset:Nx \use_ii:nn } -\prg_generate_conditional_variant:Nnn \seq_set_item:Nnn { c } { TF , T , F } -\prg_generate_conditional_variant:Nnn \seq_gset_item:Nnn { c } { TF , T , F } -\cs_new_protected:Npn \__seq_set_item:NnnNN #1#2#3 - { - \tl_set:Nn \l__seq_internal_a_tl { \__seq_item:n {#3} } - \exp_args:Nff \__seq_set_item:nnNNNN - { \int_eval:n {#2} } { \seq_count:N #1 } #1 \use_none:nn - } -\cs_new_protected:Npn \__seq_set_item:nnNNNN #1#2 - { - \int_compare:nNnTF {#1} > 0 - { \int_compare:nNnF {#1} > {#2} { \__seq_set_item:nNnnNNNN { #1 - 1 } } } - { - \int_compare:nNnF {#1} < {-#2} - { - \int_compare:nNnF {#1} = 0 - { \__seq_set_item:nNnnNNNN { #2 + #1 } } - } - } - \__seq_set_item_false:nnNNNN {#1} {#2} - } -\cs_new_protected:Npn \__seq_set_item_false:nnNNNN #1#2#3#4#5#6 - { - #6 - { - \msg_error:nnxxx { seq } { item-too-large } - { \token_to_str:N #3 } {#2} {#1} - } - { \prg_return_false: } - } -\msg_new:nnnn { seq } { item-too-large } - { Sequence~'#1'~does~not~have~an~item~#3 } - { - An~attempt~was~made~to~push~or~pop~the~item~at~position~#3~ - of~'#1',~but~this~ - \int_compare:nTF { #3 = 0 } - { position~does~not~exist. } - { sequence~only~has~#2~item \int_compare:nF { #2 = 1 } {s}. } - } -\cs_new_protected:Npn \__seq_set_item:nNnnNNNN #1#2#3#4#5#6#7#8 - { - #7 #5 - { - \s__seq - \exp_after:wN \__seq_set_item:wn - \int_value:w \__seq_int_eval:w #1 - #5 \s__seq_stop #6 - } - #8 { } { \prg_return_true: } - } -\cs_new:Npn \__seq_set_item:wn #1 \__seq_item:n #2 - { - \if_meaning:w 0 #1 \__seq_set_item_end:w \fi: - \exp_not:n { \__seq_item:n {#2} } - \exp_after:wN \__seq_set_item:wn - \int_value:w \__seq_int_eval:w #1 - 1 \s__seq - } -\cs_new:Npn \__seq_set_item_end:w #1 \exp_not:n #2 #3 \s__seq #4 \s__seq_stop #5 - { - #1 - \exp_not:o \l__seq_internal_a_tl - \exp_not:n {#4} - #5 #2 - } -\cs_new_protected:Npn \seq_pop_item:NnN #1#2#3 - { \seq_pop_item:NnNTF #1 {#2} #3 { } { } } -\cs_new_protected:Npn \seq_gpop_item:NnN #1#2#3 - { \seq_gpop_item:NnNTF #1 {#2} #3 { } { } } -\cs_generate_variant:Nn \seq_pop_item:NnN { c } -\cs_generate_variant:Nn \seq_gpop_item:NnN { c } -\prg_new_protected_conditional:Npnn \seq_pop_item:NnN #1#2#3 { TF , T , F } - { \__seq_pop_item:NnNN #1 {#2} #3 \__kernel_tl_set:Nx } -\prg_new_protected_conditional:Npnn \seq_gpop_item:NnN #1#2#3 { TF , T , F } - { \__seq_pop_item:NnNN #1 {#2} #3 \__kernel_tl_gset:Nx } -\prg_generate_conditional_variant:Nnn \seq_pop_item:NnN { c } { TF , T , F } -\prg_generate_conditional_variant:Nnn \seq_gpop_item:NnN { c } { TF , T , F } -\cs_new_protected:Npn \__seq_pop_item:NnNN #1#2#3#4 - { - \tl_clear:N \l__seq_internal_a_tl - \tl_set:Nn \l__seq_internal_b_tl { \__kernel_tl_set:Nx #3 } - \exp_args:Nff \__seq_set_item:nnNNNN - { \int_eval:n {#2} } { \seq_count:N #1 } - #1 \__seq_pop_item_aux:w #4 \__seq_pop_item:nn - } -\cs_new_protected:Npn \__seq_pop_item:nn #1#2 - { - \if_meaning:w \prg_return_false: #2 - \l__seq_internal_b_tl { \exp_not:N \q_no_value } - \fi: - #2 - } -\cs_new:Npn \__seq_pop_item_aux:w \__seq_item:n #1 - { - \if_false: { \fi: } - \l__seq_internal_b_tl { \if_false: } \fi: \exp_not:n {#1} - } \cs_new_protected:Npn \tl_build_begin:N #1 { \__tl_build_begin:NN \cs_set_nopar:Npx #1 } \cs_new_protected:Npn \tl_build_gbegin:N #1 @@ -36132,6 +36118,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_gset_protected:Npn \seq_indexed_map_inline:Nn { \seq_map_indexed_inline:Nn } \__kernel_patch_deprecation:nnNNpn { 2020-06-18 } { \seq_map_indexed_function:NN } \cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN } +\__kernel_patch_deprecation:nnNNpn { 2023-05-10 } { \seq_mapthread_function:NNN } +\cs_gset:Npn \seq_mapthread_function:NNN { \seq_map_pairwise_function:NNN } \__kernel_patch_deprecation:nnNNpn { 2021-01-11 } { (no~longer~required) } \cs_gset_protected:Npn \sys_load_deprecation: { } \__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \text_lowercase:n } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 99c584404de..0dd38b9eb57 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/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{2023-05-05}% +\def\ExplFileDate{2023-05-11}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index b95a6bf2479..e9b7a23e101 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-05-05}% +\def\ExplFileDate{2023-05-11}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index be1ef27a9b6..7df6fceb5e4 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-05-05}% +\def\ExplFileDate{2023-05-11}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% |