summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex260
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.ltx2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty2
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}
[%