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 | 307 |
1 files changed, 130 insertions, 177 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 08d62f4eab5..7a09140568e 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -62,7 +62,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileDate{2017/12/05}% +\def\ExplFileDate{2017/12/16}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -2687,6 +2687,8 @@ \exp_after:wN #1 \tl_to_str:n {#2} , \scan_stop: , \q_recursion_stop } +\cs_new_protected:Npn \cs_generate_variant:cn + { \exp_args:Nc \cs_generate_variant:Nn } \cs_new_protected:Npx \__cs_generate_variant:N #1 { \exp_not:N \exp_after:wN \exp_not:N \if_meaning:w @@ -2897,6 +2899,46 @@ \exp_after:wN \exp_not:N \cs:w :: #1 \cs_end: \__cs_generate_internal_variant_loop:n } +\cs_new_protected:Npn \prg_generate_conditional_variant:Nnn #1 + { \__cs_split_function:NN #1 \__cs_generate_variant:nnNnn } +\cs_new_protected:Npn \__cs_generate_variant:nnNnn #1#2#3#4#5 + { + \if_meaning:w \c_false_bool #3 + \__msg_kernel_error:nnx { kernel } { missing-colon } + { \token_to_str:c {#1} } + \use_i_delimit_by_q_stop:nw + \fi: + \exp_after:wN \__cs_generate_variant:w + \tl_to_str:n {#5} , \scan_stop: , \q_recursion_stop + \use_none_delimit_by_q_stop:w \q_mark {#1} {#2} {#4} \q_stop + } +\cs_new_protected:Npn \__cs_generate_variant:w + #1 , #2 \q_mark #3#4#5 + { + \if_meaning:w \scan_stop: #1 \scan_stop: + \if_meaning:w \q_nil #1 \q_nil + \use_i:nnn + \fi: + \exp_after:wN \use_none_delimit_by_q_recursion_stop:w + \else: + \cs_if_exist_use:cTF { __cs_generate_variant_#1_form:nnn } + { {#3} {#4} {#5} } + { + \__msg_kernel_error:nnxx + { kernel } { conditional-form-unknown } + {#1} { \token_to_str:c { #3 : #4 } } + } + \fi: + \__cs_generate_variant:w #2 \q_mark {#3} {#4} {#5} + } +\cs_new_protected:Npn \__cs_generate_variant_p_form:nnn #1#2 + { \cs_generate_variant:cn { #1 _p : #2 } } +\cs_new_protected:Npn \__cs_generate_variant_T_form:nnn #1#2 + { \cs_generate_variant:cn { #1 : #2 T } } +\cs_new_protected:Npn \__cs_generate_variant_F_form:nnn #1#2 + { \cs_generate_variant:cn { #1 : #2 F } } +\cs_new_protected:Npn \__cs_generate_variant_TF_form:nnn #1#2 + { \cs_generate_variant:cn { #1 : #2 TF } } %% File: l3tl.dtx Copyright (C) 1990-2017 The LaTeX3 Project \cs_new_protected:Npn \tl_new:N #1 { @@ -3255,14 +3297,8 @@ \cs_generate_variant:Nn \tl_gremove_all:Nn { c } \prg_new_conditional:Npnn \tl_if_blank:n #1 { p , T , F , TF } { \__tl_if_empty_return:o { \use_none:n #1 ? } } -\cs_generate_variant:Nn \tl_if_blank_p:n { V } -\cs_generate_variant:Nn \tl_if_blank:nT { V } -\cs_generate_variant:Nn \tl_if_blank:nF { V } -\cs_generate_variant:Nn \tl_if_blank:nTF { V } -\cs_generate_variant:Nn \tl_if_blank_p:n { o } -\cs_generate_variant:Nn \tl_if_blank:nT { o } -\cs_generate_variant:Nn \tl_if_blank:nF { o } -\cs_generate_variant:Nn \tl_if_blank:nTF { o } +\prg_generate_conditional_variant:Nnn \tl_if_blank:n + { V , o } { p , T , F , TF } \prg_new_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF } { \if_meaning:w #1 \c_empty_tl @@ -3271,10 +3307,8 @@ \prg_return_false: \fi: } -\cs_generate_variant:Nn \tl_if_empty_p:N { c } -\cs_generate_variant:Nn \tl_if_empty:NT { c } -\cs_generate_variant:Nn \tl_if_empty:NF { c } -\cs_generate_variant:Nn \tl_if_empty:NTF { c } +\prg_generate_conditional_variant:Nnn \tl_if_empty:N + { c } { p , T , F , TF } \prg_new_conditional:Npnn \tl_if_empty:n #1 { p , TF , T , F } { \exp_after:wN \if_meaning:w \exp_after:wN \q_nil @@ -3284,10 +3318,8 @@ \prg_return_false: \fi: } -\cs_generate_variant:Nn \tl_if_empty_p:n { V } -\cs_generate_variant:Nn \tl_if_empty:nTF { V } -\cs_generate_variant:Nn \tl_if_empty:nT { V } -\cs_generate_variant:Nn \tl_if_empty:nF { V } +\prg_generate_conditional_variant:Nnn \tl_if_empty:n + { V } { p , TF , T , F } \cs_new:Npn \__tl_if_empty_return:o #1 { \exp_after:wN \if_meaning:w \exp_after:wN \q_nil @@ -3307,10 +3339,8 @@ \prg_return_false: \fi: } -\cs_generate_variant:Nn \tl_if_eq_p:NN { Nc , c , cc } -\cs_generate_variant:Nn \tl_if_eq:NNTF { Nc , c , cc } -\cs_generate_variant:Nn \tl_if_eq:NNT { Nc , c , cc } -\cs_generate_variant:Nn \tl_if_eq:NNF { Nc , c , cc } +\prg_generate_conditional_variant:Nnn \tl_if_eq:NN + { Nc , c , cc } { p , TF , T , F } \prg_new_protected_conditional:Npnn \tl_if_eq:nn #1#2 { T , F , TF } { \group_begin: @@ -3329,9 +3359,8 @@ \cs_new_protected:Npn \tl_if_in:NnT { \exp_args:No \tl_if_in:nnT } \cs_new_protected:Npn \tl_if_in:NnF { \exp_args:No \tl_if_in:nnF } \cs_new_protected:Npn \tl_if_in:NnTF { \exp_args:No \tl_if_in:nnTF } -\cs_generate_variant:Nn \tl_if_in:NnT { c } -\cs_generate_variant:Nn \tl_if_in:NnF { c } -\cs_generate_variant:Nn \tl_if_in:NnTF { c } +\prg_generate_conditional_variant:Nnn \tl_if_in:Nn + { c } { T , F , TF } \prg_new_protected_conditional:Npnn \tl_if_in:nn #1#2 { T , F , TF } { \if_false: { \fi: @@ -3340,13 +3369,12 @@ { \prg_return_false: } { \prg_return_true: } \if_false: } \fi: } -\cs_generate_variant:Nn \tl_if_in:nnT { V , o , no } -\cs_generate_variant:Nn \tl_if_in:nnF { V , o , no } -\cs_generate_variant:Nn \tl_if_in:nnTF { V , o , no } +\prg_generate_conditional_variant:Nnn \tl_if_in:nn + { V , o , no } { T , F , TF } \use:x { \prg_new_conditional:Npnn \exp_not:N \tl_if_novalue:n ##1 - { T , F , TF } + { p , T , F , TF } { \exp_not:N \str_if_eq:onTF { @@ -3403,9 +3431,8 @@ { \__tl_case:Nw #1 } } \cs_generate_variant:Nn \tl_case:Nn { c } -\cs_generate_variant:Nn \tl_case:NnT { c } -\cs_generate_variant:Nn \tl_case:NnF { c } -\cs_generate_variant:Nn \tl_case:NnTF { c } +\prg_generate_conditional_variant:Nnn \tl_case:Nn + { c } { T , F , TF } \cs_new:Npn \__prg_case_end:nw #1#2#3 \q_mark #4#5 \q_stop { \exp_end: #1 #4 } \cs_new_eq:NN \__tl_case_end:nw \__prg_case_end:nw @@ -3664,10 +3691,8 @@ \prg_return_false: \fi: } -\cs_generate_variant:Nn \tl_if_head_eq_charcode_p:nN { f } -\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNTF { f } -\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNT { f } -\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNF { f } +\prg_generate_conditional_variant:Nnn \tl_if_head_eq_charcode:nN + { f } { p , TF , T , F } \prg_new_conditional:Npnn \tl_if_head_eq_catcode:nN #1 #2 { p , T , F , TF } { \if_catcode:w @@ -3961,14 +3986,8 @@ = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } -\cs_generate_variant:Nn \str_if_eq_p:nn { V , o } -\cs_generate_variant:Nn \str_if_eq_p:nn { nV , no , VV } -\cs_generate_variant:Nn \str_if_eq:nnT { V , o } -\cs_generate_variant:Nn \str_if_eq:nnT { nV , no , VV } -\cs_generate_variant:Nn \str_if_eq:nnF { V , o } -\cs_generate_variant:Nn \str_if_eq:nnF { nV , no , VV } -\cs_generate_variant:Nn \str_if_eq:nnTF { V , o } -\cs_generate_variant:Nn \str_if_eq:nnTF { nV , no , VV } +\prg_generate_conditional_variant:Nnn \str_if_eq:nn + { V , o , nV , no , VV } { p , T , F , TF } \prg_new_conditional:Npnn \str_if_eq_x:nn #1#2 { p , T , F , TF } { \if_int_compare:w \__str_if_eq_x:nn {#1} {#2} = 0 \exp_stop_f: @@ -3979,19 +3998,16 @@ \if_int_compare:w \__str_if_eq_x:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 } = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } -\cs_generate_variant:Nn \str_if_eq:NNT { c , Nc , cc } -\cs_generate_variant:Nn \str_if_eq:NNF { c , Nc , cc } -\cs_generate_variant:Nn \str_if_eq:NNTF { c , Nc , cc } -\cs_generate_variant:Nn \str_if_eq_p:NN { c , Nc , cc } +\prg_generate_conditional_variant:Nnn \str_if_eq:NN + { c , Nc , cc } { T , F , TF , p } \prg_new_protected_conditional:Npnn \str_if_in:Nn #1#2 { T , F , TF } { \use:x { \tl_if_in:nnTF { \tl_to_str:N #1 } { \tl_to_str:n {#2} } } { \prg_return_true: } { \prg_return_false: } } -\cs_generate_variant:Nn \str_if_in:NnT { c } -\cs_generate_variant:Nn \str_if_in:NnF { c } -\cs_generate_variant:Nn \str_if_in:NnTF { c } +\prg_generate_conditional_variant:Nnn \str_if_in:Nn + { c } { T , F , TF } \prg_new_protected_conditional:Npnn \str_if_in:nn #1#2 { T , F , TF } { \use:x @@ -4021,9 +4037,8 @@ \cs_new:Npn \__str_case:nnTF #1#2#3#4 { \__str_case:nw {#1} #2 {#1} { } \q_mark {#3} \q_mark {#4} \q_stop } \cs_generate_variant:Nn \str_case:nn { o , nV , nv } -\cs_generate_variant:Nn \str_case:nnT { o , nV , nv } -\cs_generate_variant:Nn \str_case:nnF { o , nV , nv } -\cs_generate_variant:Nn \str_case:nnTF { o , nV , nv } +\prg_generate_conditional_variant:Nnn \str_case:nn + { o , nV , nv } { T , F , TF } \cs_new:Npn \__str_case:nw #1#2#3 { \str_if_eq:nnTF {#1} {#2} @@ -4814,10 +4829,8 @@ \prg_return_false: \fi: } -\cs_generate_variant:Nn \seq_if_empty_p:N { c } -\cs_generate_variant:Nn \seq_if_empty:NT { c } -\cs_generate_variant:Nn \seq_if_empty:NF { c } -\cs_generate_variant:Nn \seq_if_empty:NTF { c } +\prg_generate_conditional_variant:Nnn \seq_if_empty:N + { c } { p , T , F , TF } \prg_new_protected_conditional:Npnn \seq_if_in:Nn #1#2 { T , F , TF } { @@ -4837,12 +4850,8 @@ } \cs_new:Npn \__seq_if_in: { \__prg_break:n { \group_end: \prg_return_true: } } -\cs_generate_variant:Nn \seq_if_in:NnT { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_if_in:NnT { c , cV , cv , co , cx } -\cs_generate_variant:Nn \seq_if_in:NnF { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_if_in:NnF { c , cV , cv , co , cx } -\cs_generate_variant:Nn \seq_if_in:NnTF { NV , Nv , No , Nx } -\cs_generate_variant:Nn \seq_if_in:NnTF { c , cV , cv , co , cx } +\prg_generate_conditional_variant:Nnn \seq_if_in:Nn + { NV , Nv , No , Nx , c , cV , cv , co , cx } { T , F , TF } \cs_new_protected:Npn \__seq_pop:NNNN #1#2#3#4 { \if_meaning:w #3 \c_empty_seq @@ -4932,12 +4941,10 @@ { \__seq_pop_TF:NNNN \prg_do_nothing: \seq_get_left:NN #1#2 } \prg_new_protected_conditional:Npnn \seq_get_right:NN #1#2 { T , F , TF } { \__seq_pop_TF:NNNN \prg_do_nothing: \seq_get_right:NN #1#2 } -\cs_generate_variant:Nn \seq_get_left:NNT { c } -\cs_generate_variant:Nn \seq_get_left:NNF { c } -\cs_generate_variant:Nn \seq_get_left:NNTF { c } -\cs_generate_variant:Nn \seq_get_right:NNT { c } -\cs_generate_variant:Nn \seq_get_right:NNF { c } -\cs_generate_variant:Nn \seq_get_right:NNTF { c } +\prg_generate_conditional_variant:Nnn \seq_get_left:NN + { c } { T , F , TF } +\prg_generate_conditional_variant:Nnn \seq_get_right:NN + { c } { T , F , TF } \prg_new_protected_conditional:Npnn \seq_pop_left:NN #1#2 { T , F , TF } { \__seq_pop_TF:NNNN \__seq_pop_left:NNN \tl_set:Nn #1 #2 } \prg_new_protected_conditional:Npnn \seq_gpop_left:NN #1#2 { T , F , TF } @@ -4946,18 +4953,10 @@ { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \tl_set:Nx #1 #2 } \prg_new_protected_conditional:Npnn \seq_gpop_right:NN #1#2 { T , F , TF } { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \tl_gset:Nx #1 #2 } -\cs_generate_variant:Nn \seq_pop_left:NNT { c } -\cs_generate_variant:Nn \seq_pop_left:NNF { c } -\cs_generate_variant:Nn \seq_pop_left:NNTF { c } -\cs_generate_variant:Nn \seq_gpop_left:NNT { c } -\cs_generate_variant:Nn \seq_gpop_left:NNF { c } -\cs_generate_variant:Nn \seq_gpop_left:NNTF { c } -\cs_generate_variant:Nn \seq_pop_right:NNT { c } -\cs_generate_variant:Nn \seq_pop_right:NNF { c } -\cs_generate_variant:Nn \seq_pop_right:NNTF { c } -\cs_generate_variant:Nn \seq_gpop_right:NNT { c } -\cs_generate_variant:Nn \seq_gpop_right:NNF { c } -\cs_generate_variant:Nn \seq_gpop_right:NNTF { c } +\prg_generate_conditional_variant:Nnn \seq_pop_left:NN { c } { T , F , TF } +\prg_generate_conditional_variant:Nnn \seq_gpop_left:NN { c } { T , F , TF } +\prg_generate_conditional_variant:Nnn \seq_pop_right:NN { c } { T , F , TF } +\prg_generate_conditional_variant:Nnn \seq_gpop_right:NN { c } { T , F , TF } \cs_new:Npn \seq_item:Nn #1 { \exp_after:wN \__seq_item:wNn #1 \q_stop #1 } \cs_new:Npn \__seq_item:wNn \s__seq #1 \q_stop #2#3 @@ -5297,12 +5296,10 @@ \cs_generate_variant:Nn \int_gzero_new:N { c } \__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } \cs_new_protected:Npn \int_set_eq:NN #1#2 { #1 = #2 } -\cs_generate_variant:Nn \int_set_eq:NN { c } -\cs_generate_variant:Nn \int_set_eq:NN { Nc , cc } +\cs_generate_variant:Nn \int_set_eq:NN { c , Nc , cc } \__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } \cs_new_protected:Npn \int_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } -\cs_generate_variant:Nn \int_gset_eq:NN { c } -\cs_generate_variant:Nn \int_gset_eq:NN { Nc , cc } +\cs_generate_variant:Nn \int_gset_eq:NN { c , Nc , cc } \prg_new_eq_conditional:NNn \int_if_exist:N \cs_if_exist:N { TF , T , F , p } \prg_new_eq_conditional:NNn \int_if_exist:c \cs_if_exist:c @@ -6217,10 +6214,8 @@ \prg_return_false: \fi: } -\cs_generate_variant:Nn \quark_if_no_value_p:N { c } -\cs_generate_variant:Nn \quark_if_no_value:NT { c } -\cs_generate_variant:Nn \quark_if_no_value:NF { c } -\cs_generate_variant:Nn \quark_if_no_value:NTF { c } +\prg_generate_conditional_variant:Nnn \quark_if_no_value:N + { c } { p , T , F , TF } \prg_new_conditional:Npnn \quark_if_nil:n #1 { p, T , F , TF } { \__tl_if_empty_return:o @@ -6233,10 +6228,8 @@ { \__quark_if_no_value:w {} #1 {} ? ! \q_no_value ? ? ! } } \cs_new:Npn \__quark_if_no_value:w #1 \q_no_value #2 ? #3 ? ! { #1 #2 } -\cs_generate_variant:Nn \quark_if_nil_p:n { V , o } -\cs_generate_variant:Nn \quark_if_nil:nTF { V , o } -\cs_generate_variant:Nn \quark_if_nil:nT { V , o } -\cs_generate_variant:Nn \quark_if_nil:nF { V , o } +\prg_generate_conditional_variant:Nnn \quark_if_nil:n + { V , o } { p , TF , T , F } \quark_new:N \q__tl_act_mark \quark_new:N \q__tl_act_stop \tl_new:N \g__scan_marks_tl @@ -6296,10 +6289,7 @@ \prg_return_false: \fi: } -\cs_generate_variant:Nn \bool_if_p:N { c } -\cs_generate_variant:Nn \bool_if:NT { c } -\cs_generate_variant:Nn \bool_if:NF { c } -\cs_generate_variant:Nn \bool_if:NTF { c } +\prg_generate_conditional_variant:Nnn \bool_if:N { c } { p , T , F , TF } \cs_new_protected:Npn \bool_show:n { \msg_show_eval:Nn \__bool_to_str:n } \cs_new_protected:Npn \bool_log:n @@ -6692,9 +6682,7 @@ \prg_return_true: \fi: } -\cs_generate_variant:Nn \clist_get:NNT { c } -\cs_generate_variant:Nn \clist_get:NNF { c } -\cs_generate_variant:Nn \clist_get:NNTF { c } +\prg_generate_conditional_variant:Nnn \clist_get:NN { c } { T , F , TF } \prg_new_protected_conditional:Npnn \clist_pop:NN #1#2 { T , F , TF } { \__clist_pop_TF:NNN \tl_set:Nx #1 #2 } \prg_new_protected_conditional:Npnn \clist_gpop:NN #1#2 { T , F , TF } @@ -6708,12 +6696,8 @@ \prg_return_true: \fi: } -\cs_generate_variant:Nn \clist_pop:NNT { c } -\cs_generate_variant:Nn \clist_pop:NNF { c } -\cs_generate_variant:Nn \clist_pop:NNTF { c } -\cs_generate_variant:Nn \clist_gpop:NNT { c } -\cs_generate_variant:Nn \clist_gpop:NNF { c } -\cs_generate_variant:Nn \clist_gpop:NNTF { c } +\prg_generate_conditional_variant:Nnn \clist_pop:NN { c } { T , F , TF } +\prg_generate_conditional_variant:Nnn \clist_gpop:NN { c } { T , F , TF } \cs_new_eq:NN \clist_push:Nn \clist_put_left:Nn \cs_new_eq:NN \clist_push:NV \clist_put_left:NV \cs_new_eq:NN \clist_push:No \clist_put_left:No @@ -6830,15 +6814,10 @@ { \__clist_tmp:w ,#1, {} {} ,#2, } { \prg_return_false: } { \prg_return_true: } } -\cs_generate_variant:Nn \clist_if_in:NnT { NV , No } -\cs_generate_variant:Nn \clist_if_in:NnT { c , cV , co } -\cs_generate_variant:Nn \clist_if_in:NnF { NV , No } -\cs_generate_variant:Nn \clist_if_in:NnF { c , cV , co } -\cs_generate_variant:Nn \clist_if_in:NnTF { NV , No } -\cs_generate_variant:Nn \clist_if_in:NnTF { c , cV , co } -\cs_generate_variant:Nn \clist_if_in:nnT { nV , no } -\cs_generate_variant:Nn \clist_if_in:nnF { nV , no } -\cs_generate_variant:Nn \clist_if_in:nnTF { nV , no } +\prg_generate_conditional_variant:Nnn \clist_if_in:Nn + { NV , No , c , cV , co } { T , F , TF } +\prg_generate_conditional_variant:Nnn \clist_if_in:nn + { nV , no } { T , F , TF } \cs_new:Npn \clist_map_function:NN #1#2 { \clist_if_empty:NF #1 @@ -7945,12 +7924,8 @@ } { \prg_return_false: } } -\cs_generate_variant:Nn \prop_pop:NnNT { c } -\cs_generate_variant:Nn \prop_pop:NnNF { c } -\cs_generate_variant:Nn \prop_pop:NnNTF { c } -\cs_generate_variant:Nn \prop_gpop:NnNT { c } -\cs_generate_variant:Nn \prop_gpop:NnNF { c } -\cs_generate_variant:Nn \prop_gpop:NnNTF { c } +\prg_generate_conditional_variant:Nnn \prop_pop:NnN { c } { T , F , TF } +\prg_generate_conditional_variant:Nnn \prop_gpop:NnN { c } { T , F , TF } \cs_new_protected:Npn \prop_put:Nnn { \__prop_put:NNnn \tl_set:Nx } \cs_new_protected:Npn \prop_gput:Nnn { \__prop_put:NNnn \tl_gset:Nx } \cs_new_protected:Npn \__prop_put:NNnn #1#2#3#4 @@ -7998,10 +7973,8 @@ \tl_if_eq:NNTF #1 \c_empty_prop \prg_return_true: \prg_return_false: } -\cs_generate_variant:Nn \prop_if_empty_p:N { c } -\cs_generate_variant:Nn \prop_if_empty:NT { c } -\cs_generate_variant:Nn \prop_if_empty:NF { c } -\cs_generate_variant:Nn \prop_if_empty:NTF { c } +\prg_generate_conditional_variant:Nnn \prop_if_empty:N + { c } { p , T , F , TF } \prg_new_conditional:Npnn \prop_if_in:Nn #1#2 { p , T , F , TF } { \exp_last_unbraced:Noo \__prop_if_in:nwwn { \tl_to_str:n {#2} } #1 @@ -8024,14 +7997,8 @@ \fi: \__prg_break: } -\cs_generate_variant:Nn \prop_if_in_p:Nn { NV , No } -\cs_generate_variant:Nn \prop_if_in_p:Nn { c , cV , co } -\cs_generate_variant:Nn \prop_if_in:NnT { NV , No } -\cs_generate_variant:Nn \prop_if_in:NnT { c , cV , co } -\cs_generate_variant:Nn \prop_if_in:NnF { NV , No } -\cs_generate_variant:Nn \prop_if_in:NnF { c , cV , co } -\cs_generate_variant:Nn \prop_if_in:NnTF { NV , No } -\cs_generate_variant:Nn \prop_if_in:NnTF { c , cV , co } +\prg_generate_conditional_variant:Nnn \prop_if_in:Nn + { NV , No , c , cV , co } { p , T , F , TF } \prg_new_protected_conditional:Npnn \prop_get:NnN #1#2#3 { T , F , TF } { \__prop_split:NnTF #1 {#2} @@ -8041,12 +8008,8 @@ } { \prg_return_false: } } -\cs_generate_variant:Nn \prop_get:NnNT { NV , No } -\cs_generate_variant:Nn \prop_get:NnNF { NV , No } -\cs_generate_variant:Nn \prop_get:NnNTF { NV , No } -\cs_generate_variant:Nn \prop_get:NnNT { c , cV , co } -\cs_generate_variant:Nn \prop_get:NnNF { c , cV , co } -\cs_generate_variant:Nn \prop_get:NnNTF { c , cV , co } +\prg_generate_conditional_variant:Nnn \prop_get:NnN + { NV , No , c , cV , co } { T , F , TF } \cs_new:Npn \prop_map_function:NN #1#2 { \exp_last_unbraced:NNo \__prop_map_function:Nwwn #2 #1 @@ -8061,8 +8024,7 @@ #1 {#3} {#4} \__prop_map_function:Nwwn #1 } -\cs_generate_variant:Nn \prop_map_function:NN { Nc } -\cs_generate_variant:Nn \prop_map_function:NN { c , cc } +\cs_generate_variant:Nn \prop_map_function:NN { Nc , c , cc } \cs_new_protected:Npn \prop_map_inline:Nn #1#2 { \cs_gset_eq:cN @@ -9146,6 +9108,8 @@ } \cs_new_protected:Npn \ior_new:N #1 { \cs_new_eq:NN #1 \c_term_ior } \cs_generate_variant:Nn \ior_new:N { c } +\ior_new:N \g_tmpa_ior +\ior_new:N \g_tmpb_ior \cs_new_protected:Npn \ior_open:Nn #1#2 { \ior_open:NnF #1 {#2} { \__file_missing:n {#2} } } \cs_generate_variant:Nn \ior_open:Nn { c } @@ -9159,9 +9123,7 @@ \prg_return_true: } } -\cs_generate_variant:Nn \ior_open:NnT { c } -\cs_generate_variant:Nn \ior_open:NnF { c } -\cs_generate_variant:Nn \ior_open:NnTF { c } +\prg_generate_conditional_variant:Nnn \ior_open:Nn { c } { T , F , TF } \exp_args:NNf \cs_new_protected:Npn \__ior_new:N { \exp_args:NNc \exp_after:wN \exp_stop_f: { newread } } \cs_new_protected:Npn \__ior_open:Nn #1#2 @@ -9296,6 +9258,8 @@ } \cs_new_protected:Npn \iow_new:N #1 { \cs_new_eq:NN #1 \c_term_iow } \cs_generate_variant:Nn \iow_new:N { c } +\iow_new:N \g_tmpa_iow +\iow_new:N \g_tmpb_iow \exp_args:NNf \cs_new_protected:Npn \__iow_new:N { \exp_args:NNc \exp_after:wN \exp_stop_f: { newwrite } } \cs_new_protected:Npn \iow_open:Nn #1#2 @@ -9802,13 +9766,11 @@ \__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } \cs_new_protected:Npn \dim_set_eq:NN #1#2 { #1 = #2 \scan_stop: } -\cs_generate_variant:Nn \dim_set_eq:NN { c } -\cs_generate_variant:Nn \dim_set_eq:NN { Nc , cc } +\cs_generate_variant:Nn \dim_set_eq:NN { c , Nc , cc } \__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } \cs_new_protected:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 \scan_stop: } -\cs_generate_variant:Nn \dim_gset_eq:NN { c } -\cs_generate_variant:Nn \dim_gset_eq:NN { Nc , cc } +\cs_generate_variant:Nn \dim_gset_eq:NN { c , Nc , cc } \__dim_tmp:w \__debug_chk_var_local:N \cs_new_protected:Npn \dim_add:Nn #1#2 { \tex_advance:D #1 by \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } @@ -10102,11 +10064,9 @@ \cs_generate_variant:Nn \skip_set:Nn { c } \cs_generate_variant:Nn \skip_gset:Nn { c } \cs_new_protected:Npn \skip_set_eq:NN #1#2 { #1 = #2 } -\cs_generate_variant:Nn \skip_set_eq:NN { c } -\cs_generate_variant:Nn \skip_set_eq:NN { Nc , cc } +\cs_generate_variant:Nn \skip_set_eq:NN { c , Nc , cc } \cs_new_protected:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } -\cs_generate_variant:Nn \skip_gset_eq:NN { c } -\cs_generate_variant:Nn \skip_gset_eq:NN { Nc , cc } +\cs_generate_variant:Nn \skip_gset_eq:NN { c , Nc , cc } \__dim_tmp:w \__debug_chk_var_local:N \cs_new_protected:Npn \skip_add:Nn #1#2 { \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: } @@ -10238,12 +10198,10 @@ \cs_generate_variant:Nn \muskip_gset:Nn { c } \__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } \cs_new_protected:Npn \muskip_set_eq:NN #1#2 { #1 = #2 } -\cs_generate_variant:Nn \muskip_set_eq:NN { c } -\cs_generate_variant:Nn \muskip_set_eq:NN { Nc , cc } +\cs_generate_variant:Nn \muskip_set_eq:NN { c , Nc , cc } \__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } \cs_new_protected:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } -\cs_generate_variant:Nn \muskip_gset_eq:NN { c } -\cs_generate_variant:Nn \muskip_gset_eq:NN { Nc , cc } +\cs_generate_variant:Nn \muskip_gset_eq:NN { c , Nc , cc } \__dim_tmp:w \__debug_chk_var_local:N \cs_new_protected:Npn \muskip_add:Nn #1#2 { \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: } @@ -20043,6 +20001,10 @@ } \cs_new_protected:Npn \regex_new:N #1 { \cs_new_eq:NN #1 \c__regex_no_match_regex } +\regex_new:N \l_tmpa_regex +\regex_new:N \l_tmpb_regex +\regex_new:N \g_tmpa_regex +\regex_new:N \g_tmpb_regex \cs_new_protected:Npn \regex_set:Nn #1#2 { \__regex_compile:n {#2} @@ -20749,20 +20711,14 @@ { \if_hbox:N #1 \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_conditional:Npnn \box_if_vertical:N #1 { p , T , F , TF } { \if_vbox:N #1 \prg_return_true: \else: \prg_return_false: \fi: } -\cs_generate_variant:Nn \box_if_horizontal_p:N { c } -\cs_generate_variant:Nn \box_if_horizontal:NT { c } -\cs_generate_variant:Nn \box_if_horizontal:NF { c } -\cs_generate_variant:Nn \box_if_horizontal:NTF { c } -\cs_generate_variant:Nn \box_if_vertical_p:N { c } -\cs_generate_variant:Nn \box_if_vertical:NT { c } -\cs_generate_variant:Nn \box_if_vertical:NF { c } -\cs_generate_variant:Nn \box_if_vertical:NTF { c } +\prg_generate_conditional_variant:Nnn \box_if_horizontal:N + { c } { p , T , F , TF } +\prg_generate_conditional_variant:Nnn \box_if_vertical:N + { c } { p , T , F , TF } \prg_new_conditional:Npnn \box_if_empty:N #1 { p , T , F , TF } { \if_box_empty:N #1 \prg_return_true: \else: \prg_return_false: \fi: } -\cs_generate_variant:Nn \box_if_empty_p:N { c } -\cs_generate_variant:Nn \box_if_empty:NT { c } -\cs_generate_variant:Nn \box_if_empty:NF { c } -\cs_generate_variant:Nn \box_if_empty:NTF { c } +\prg_generate_conditional_variant:Nnn \box_if_empty:N + { c } { p , T , F , TF } \__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } \cs_new_protected:Npn \box_set_to_last:N #1 { \tex_setbox:D #1 \tex_lastbox:D } @@ -21036,7 +20992,7 @@ \tex_kern:D -\l__box_left_new_dim \hbox:n { - \__driver_box_use_rotate:Nn + \driver_box_use_rotate:Nn \l__box_internal_box \l__box_angle_fp } @@ -21257,7 +21213,7 @@ { \hbox_set:Nn \l__box_internal_box { - \__driver_box_use_scale:Nnn + \driver_box_use_scale:Nnn #1 \l__box_scale_x_fp \l__box_scale_y_fp @@ -21348,10 +21304,8 @@ } { \prg_return_false: } } -\cs_generate_variant:Nn \coffin_if_exist_p:N { c } -\cs_generate_variant:Nn \coffin_if_exist:NT { c } -\cs_generate_variant:Nn \coffin_if_exist:NF { c } -\cs_generate_variant:Nn \coffin_if_exist:NTF { c } +\prg_generate_conditional_variant:Nnn \coffin_if_exist:N + { c } { p , T , F , TF } \cs_new_protected:Npn \__coffin_if_exist:NT #1#2 { \coffin_if_exist:NTF #1 @@ -22280,7 +22234,7 @@ } } \cs_new_protected:Npn \box_clip:N #1 - { \hbox_set:Nn #1 { \__driver_box_use_clip:N #1 } } + { \hbox_set:Nn #1 { \driver_box_use_clip:N #1 } } \cs_generate_variant:Nn \box_clip:N { c } \cs_new_protected:Npn \box_trim:Nnnnn #1#2#3#4#5 { @@ -22886,8 +22840,7 @@ #1 {#3} {#6} \__seq_mapthread_function:Nnnwnn #1 #4 \q_stop } -\cs_generate_variant:Nn \seq_mapthread_function:NNN { Nc } -\cs_generate_variant:Nn \seq_mapthread_function:NNN { c , cc } +\cs_generate_variant:Nn \seq_mapthread_function:NNN { Nc , c , cc } \cs_new_protected:Npn \seq_set_filter:NNn { \__seq_set_filter:NNNn \tl_set:Nx } \cs_new_protected:Npn \seq_gset_filter:NNn |