diff options
author | Karl Berry <karl@freefriends.org> | 2024-01-22 20:35:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-01-22 20:35:48 +0000 |
commit | 4c22629f53f90478aefb2eeaa53fcf57b662d29f (patch) | |
tree | a78162a089bbbe6a2559dd0921cefa772983bafe /Master/texmf-dist/tex/latex | |
parent | 6ea5b16c8bb91e0b54153c67071dc79032cfa961 (diff) |
l3kernel (22jan24)
git-svn-id: svn://tug.org/texlive/trunk@69537 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex | 1473 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 2 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3debug.def | 62 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3doc.cls | 32 |
6 files changed, 700 insertions, 873 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index d94bece9e6c..2265d35488d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -59,7 +59,6 @@ %% l3text-case.dtx (with options: `package') %% l3text-map.dtx (with options: `package') %% l3text-purify.dtx (with options: `package') -%% l3candidates.dtx (with options: `package') %% l3legacy.dtx (with options: `package') %% l3deprecation.dtx (with options: `package') %% @@ -76,7 +75,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-01-04}% +\def\ExplFileDate{2024-01-22}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -2060,11 +2059,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \cs_undefine:c #1 { \if_cs_exist:w #1 \cs_end: - \exp_after:wN \use:n \else: - \exp_after:wN \use_none:n + \use_i:nnnn \fi: - { \cs_gset_eq:cN {#1} \tex_undefined:D } + \exp_args:Nc \cs_undefine:N {#1} } \cs_set_protected:Npn \__kernel_cs_parm_from_arg_count:nnF #1#2 { @@ -3390,8 +3388,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \use_none_delimit_by_s_stop:w #1 \s_stop { } %% File: l3tl.dtx -\cs_new_eq:NN \__kernel_tl_set:Ne \cs_set_nopar:Npe -\cs_new_eq:NN \__kernel_tl_gset:Ne \cs_gset_nopar:Npe +\cs_new_eq:NN \__kernel_tl_set:Nx \cs_set_nopar:Npe +\cs_new_eq:NN \__kernel_tl_gset:Nx \cs_gset_nopar:Npe \cs_new_protected:Npn \tl_new:N #1 { \__kernel_chk_if_free_cs:N #1 @@ -3425,7 +3423,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \tl_gset_eq:NN { cN, Nc, cc } \cs_new_protected:Npn \tl_concat:NNN #1#2#3 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#3} @@ -3433,7 +3431,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_gconcat:NNN #1#2#3 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#3} @@ -3450,13 +3448,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_end: \tl_const:Nn \c_space_tl { ~ } \cs_new_protected:Npn \tl_set:Nn #1#2 - { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w {#2} } } + { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w {#2} } } \cs_new_protected:Npn \tl_set:No #1#2 - { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } + { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } \cs_new_protected:Npn \tl_gset:Nn #1#2 - { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w {#2} } } + { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w {#2} } } \cs_new_protected:Npn \tl_gset:No #1#2 - { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } + { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} } } \cs_generate_variant:Nn \tl_set:Nn { NV , Nv , Ne , Nf } \cs_generate_variant:Nn \tl_set:Nn { c, cV , cv , ce , cf } \cs_generate_variant:Nn \tl_set:No { c } @@ -3467,22 +3465,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \tl_gset:Nn { Nx , cx } \cs_new_protected:Npn \tl_put_left:Nn #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_put_left:NV #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_put_left:Nv #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_put_left:Ne #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \tex_expanded:D { {#2} } \__kernel_exp_not:w \exp_after:wN {#1} @@ -3490,7 +3488,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_put_left:No #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#1} @@ -3498,22 +3496,22 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_gput_left:Nn #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:NV #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:Nv #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \tl_gput_left:Ne #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \tex_expanded:D { {#2} } \__kernel_exp_not:w \exp_after:wN {#1} @@ -3521,7 +3519,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_gput_left:No #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#2} \__kernel_exp_not:w \exp_after:wN {#1} @@ -3540,20 +3538,20 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \tl_gput_left:No { c } \cs_generate_variant:Nn \tl_gput_left:Nn { Nx , cx } \cs_new_protected:Npn \tl_put_right:Nn #1#2 - { \__kernel_tl_set:Ne #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } + { \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } \cs_new_protected:Npn \tl_put_right:NV #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } \cs_new_protected:Npn \tl_put_right:Nv #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } } \cs_new_protected:Npn \tl_put_right:Ne #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \tex_expanded:D { {#2} } @@ -3561,27 +3559,27 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_put_right:No #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \exp_after:wN {#2} } } \cs_new_protected:Npn \tl_gput_right:Nn #1#2 - { \__kernel_tl_gset:Ne #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } + { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN { #1 #2 } } } \cs_new_protected:Npn \tl_gput_right:NV #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 } } \cs_new_protected:Npn \tl_gput_right:Nv #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} } } \cs_new_protected:Npn \tl_gput_right:Ne #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \tex_expanded:D { {#2} } @@ -3589,7 +3587,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_gput_right:No #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_exp_not:w \exp_after:wN {#2} @@ -3715,13 +3713,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \c__tl_rescan_marker_tl #2 { \use_i:nn \exp_end: #1 } \cs_new_protected:Npn \tl_replace_once:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_set:Ne } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_set:Nx } \cs_new_protected:Npn \tl_greplace_once:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_gset:Ne } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_wrap:w \__kernel_tl_gset:Nx } \cs_new_protected:Npn \tl_replace_all:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_set:Ne } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_set:Nx } \cs_new_protected:Npn \tl_greplace_all:Nnn - { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_gset:Ne } + { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_gset:Nx } \cs_generate_variant:Nn \tl_replace_once:Nnn { NnV , Nne , NV , Ne , Nee , c , cnV , cne , cV , ce , cee } \cs_generate_variant:Nn \tl_replace_once:Nnn @@ -4087,9 +4085,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__tl_trim_spaces:nn { \__tl_trim_mark: #1 } { \exp_args:No #2 } } \cs_generate_variant:Nn \tl_trim_spaces_apply:nN { o } \cs_new_protected:Npn \tl_trim_spaces:N #1 - { \__kernel_tl_set:Ne #1 { \exp_args:No \tl_trim_spaces:n {#1} } } + { \__kernel_tl_set:Nx #1 { \exp_args:No \tl_trim_spaces:n {#1} } } \cs_new_protected:Npn \tl_gtrim_spaces:N #1 - { \__kernel_tl_gset:Ne #1 { \exp_args:No \tl_trim_spaces:n {#1} } } + { \__kernel_tl_gset:Nx #1 { \exp_args:No \tl_trim_spaces:n {#1} } } \cs_generate_variant:Nn \tl_trim_spaces:N { c } \cs_generate_variant:Nn \tl_gtrim_spaces:N { c } \cs_set_protected:Npn \__tl_tmp:w #1 @@ -4231,7 +4229,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_new_conditional:Npnn \tl_if_head_is_N_type:n #1 { p , T , F , TF } { \if:w - \if_false: { \fi: \__tl_if_head_is_N_type_auxi:w \prg_do_nothing: #1 ~ } + \if_false: { \fi: \__tl_if_head_is_N_type_auxi:w #1 ~ } { \exp_after:wN { \token_to_str:N #1 } } \scan_stop: \scan_stop: \prg_return_true: @@ -4241,7 +4239,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \exp_args:Nno \use:n { \cs_new:Npn \__tl_if_head_is_N_type_auxi:w #1 ~ } { - \tl_if_empty:oTF { #1 } + \tl_if_empty:nTF {#1} { f \exp_after:wN \use_none:nn } { \exp_after:wN \__tl_if_head_is_N_type_auxii:n } \exp_after:wN { \if_false: } \fi: @@ -4361,9 +4359,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__tl_reverse_space: { \__tl_act_reverse_output:n { ~ } } \cs_new_protected:Npn \tl_reverse:N #1 - { \__kernel_tl_set:Ne #1 { \exp_args:No \tl_reverse:n { #1 } } } + { \__kernel_tl_set:Nx #1 { \exp_args:No \tl_reverse:n { #1 } } } \cs_new_protected:Npn \tl_greverse:N #1 - { \__kernel_tl_gset:Ne #1 { \exp_args:No \tl_reverse:n { #1 } } } + { \__kernel_tl_gset:Nx #1 { \exp_args:No \tl_reverse:n { #1 } } } \cs_generate_variant:Nn \tl_reverse:N { c } \cs_generate_variant:Nn \tl_greverse:N { c } \cs_new:Npn \tl_item:nn #1#2 @@ -4630,12 +4628,12 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \tl_build_end:N #1 { - \__tl_build_get:NNN \__kernel_tl_set:Ne #1 #1 + \__tl_build_get:NNN \__kernel_tl_set:Nx #1 #1 \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_clear:N } \cs_new_protected:Npn \tl_build_gend:N #1 { - \__tl_build_get:NNN \__kernel_tl_gset:Ne #1 #1 + \__tl_build_get:NNN \__kernel_tl_gset:Nx #1 #1 \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } \tl_gclear:N } \cs_new_protected:Npn \__tl_build_end_loop:NN #1#2 @@ -4647,7 +4645,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_args:Nc \__tl_build_end_loop:NN { \cs_to_str:N #1 ' } #2 } \cs_new_protected:Npn \tl_build_get_intermediate:NN - { \__tl_build_get:NNN \__kernel_tl_set:Ne } + { \__tl_build_get:NNN \__kernel_tl_set:Nx } \cs_new_protected:Npn \__tl_build_get:NNN #1#2#3 { #1 #3 { \if_false: { \fi: \exp_after:wN \__tl_build_get:w #2 } } } \cs_new:Npn \__tl_build_get:w #1 \__tl_build_last:NNn #2#3#4 @@ -4697,9 +4695,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \str_concat:NNN { ccc } \cs_generate_variant:Nn \str_gconcat:NNN { ccc } \cs_new_protected:Npn \str_set:Nn #1#2 - { \__kernel_tl_set:Ne #1 { \__kernel_tl_to_str:w {#2} } } + { \__kernel_tl_set:Nx #1 { \__kernel_tl_to_str:w {#2} } } \cs_gset_protected:Npn \str_gset:Nn #1#2 - { \__kernel_tl_gset:Ne #1 { \__kernel_tl_to_str:w {#2} } } + { \__kernel_tl_gset:Nx #1 { \__kernel_tl_to_str:w {#2} } } \cs_new_protected:Npn \str_const:Nn #1#2 { \__kernel_chk_if_free_cs:N #1 @@ -4707,22 +4705,22 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \str_put_left:Nn #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_tl_to_str:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \str_gput_left:Nn #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_tl_to_str:w {#2} \__kernel_exp_not:w \exp_after:wN {#1} } } \cs_new_protected:Npn \str_put_right:Nn #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_tl_to_str:w {#2} } } \cs_new_protected:Npn \str_gput_right:Nn #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} \__kernel_tl_to_str:w {#2} } } \cs_generate_variant:Nn \str_set:Nn { NV , Ne , Nx , c , cV , ce , cx } @@ -4733,13 +4731,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \str_put_right:Nn { NV , Ne , Nx , c , cV , ce , cx } \cs_generate_variant:Nn \str_gput_right:Nn { NV , Ne , Nx , c , cV , ce , cx } \cs_new_protected:Npn \str_replace_once:Nnn - { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_set:Ne } + { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_set:Nx } \cs_new_protected:Npn \str_greplace_once:Nnn - { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_gset:Ne } + { \__str_replace:NNNnn \prg_do_nothing: \__kernel_tl_gset:Nx } \cs_new_protected:Npn \str_replace_all:Nnn - { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_set:Ne } + { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_set:Nx } \cs_new_protected:Npn \str_greplace_all:Nnn - { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_gset:Ne } + { \__str_replace:NNNnn \__str_replace_next:w \__kernel_tl_gset:Nx } \cs_generate_variant:Nn \str_replace_once:Nnn { c } \cs_generate_variant:Nn \str_greplace_once:Nnn { c } \cs_generate_variant:Nn \str_replace_all:Nnn { c } @@ -5464,22 +5462,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \seq_gset_eq:cc \tl_gset_eq:cc \cs_new_protected:Npn \seq_set_from_clist:NN #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \s__seq \clist_map_function:NN #2 \__seq_wrap_item:n } } \cs_new_protected:Npn \seq_set_from_clist:Nn #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n } } \cs_new_protected:Npn \seq_gset_from_clist:NN #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \s__seq \clist_map_function:NN #2 \__seq_wrap_item:n } } \cs_new_protected:Npn \seq_gset_from_clist:Nn #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \s__seq \clist_map_function:nN {#2} \__seq_wrap_item:n } } \cs_generate_variant:Nn \seq_set_from_clist:NN { Nc } @@ -5495,13 +5493,13 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_generate_variant:Nn \seq_const_from_clist:Nn { c } \cs_new_protected:Npn \seq_set_split:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_set:Ne \tl_trim_spaces:n } + { \__seq_set_split:NNNnn \__kernel_tl_set:Nx \tl_trim_spaces:n } \cs_new_protected:Npn \seq_gset_split:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_gset:Ne \tl_trim_spaces:n } + { \__seq_set_split:NNNnn \__kernel_tl_gset:Nx \tl_trim_spaces:n } \cs_new_protected:Npn \seq_set_split_keep_spaces:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_set:Ne \exp_not:n } + { \__seq_set_split:NNNnn \__kernel_tl_set:Nx \exp_not:n } \cs_new_protected:Npn \seq_gset_split_keep_spaces:Nnn - { \__seq_set_split:NNNnn \__kernel_tl_gset:Ne \exp_not:n } + { \__seq_set_split:NNNnn \__kernel_tl_gset:Nx \exp_not:n } \cs_new_protected:Npn \__seq_set_split:NNNnn #1#2#3#4#5 { \tl_if_empty:nTF {#4} @@ -5521,7 +5519,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__seq_set_split_end: \__seq_set_split:Nw #2 \prg_do_nothing: } - \__kernel_tl_set:Ne \l__seq_internal_a_tl { \l__seq_internal_a_tl } + \__kernel_tl_set:Nx \l__seq_internal_a_tl { \l__seq_internal_a_tl } } #1 #3 { \s__seq \l__seq_internal_a_tl } } @@ -5539,6 +5537,16 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \seq_gset_split:Nnn { Nnx , Nxx } \cs_generate_variant:Nn \seq_set_split_keep_spaces:Nnn { NnV } \cs_generate_variant:Nn \seq_gset_split_keep_spaces:Nnn { NnV } +\cs_new_protected:Npn \seq_set_filter:NNn + { \__seq_set_filter:NNNn \__kernel_tl_set:Nx } +\cs_new_protected:Npn \seq_gset_filter:NNn + { \__seq_set_filter:NNNn \__kernel_tl_gset:Nx } +\cs_new_protected:Npn \__seq_set_filter:NNNn #1#2#3#4 + { + \__seq_push_item_def:n { \bool_if:nT {#4} { \__seq_wrap_item:n {##1} } } + #1 #2 { #3 } + \__seq_pop_item_def: + } \cs_new_protected:Npn \seq_concat:NNN #1#2#3 { \tl_set:Nf #1 { \exp_after:wN \use_i:nn \exp_after:wN #2 #3 } } \cs_new_protected:Npn \seq_gconcat:NNN #1#2#3 @@ -5551,7 +5559,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { TF , T , F , p } \cs_new_protected:Npn \seq_put_left:Nn #1#2 { - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \exp_not:n { \s__seq \__seq_item:n {#2} } \exp_not:f { \exp_after:wN \__seq_put_left_aux:w #1 } @@ -5559,7 +5567,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \seq_gput_left:Nn #1#2 { - \__kernel_tl_gset:Ne #1 + \__kernel_tl_gset:Nx #1 { \exp_not:n { \s__seq \__seq_item:n {#2} } \exp_not:f { \exp_after:wN \__seq_put_left_aux:w #1 } @@ -5597,9 +5605,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \seq_remove_duplicates:N { c } \cs_generate_variant:Nn \seq_gremove_duplicates:N { c } \cs_new_protected:Npn \seq_remove_all:Nn - { \__seq_remove_all_aux:NNn \__kernel_tl_set:Ne } + { \__seq_remove_all_aux:NNn \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_gremove_all:Nn - { \__seq_remove_all_aux:NNn \__kernel_tl_gset:Ne } + { \__seq_remove_all_aux:NNn \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__seq_remove_all_aux:NNn #1#2#3 { \__seq_push_item_def:n @@ -5626,15 +5634,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \seq_gremove_all:Nn { Nx , cx } \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:Ne \use_i:nn } + { \__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:Ne \use_i:nn } + { \__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:Ne \use_ii:nn } + { \__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:Ne \use_ii:nn } + { \__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 @@ -5691,9 +5699,9 @@ Type H <return> for immediate help}\def~{\errmessage{% #5 #2 } \cs_new_protected:Npn \seq_reverse:N - { \__seq_reverse:NN \__kernel_tl_set:Ne } + { \__seq_reverse:NN \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_greverse:N - { \__seq_reverse:NN \__kernel_tl_gset:Ne } + { \__seq_reverse:NN \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__seq_reverse:NN #1 #2 { \cs_set_eq:NN \__seq_tmp:w \__seq_item:n @@ -5798,7 +5806,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \seq_get_left:NN #1#2 { - \__kernel_tl_set:Ne #2 + \__kernel_tl_set:Nx #2 { \exp_after:wN \__seq_get_left:wnw #1 \__seq_item:n { \q_no_value } \s__seq_stop @@ -5823,7 +5831,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \seq_gpop_left:NN { c } \cs_new_protected:Npn \seq_get_right:NN #1#2 { - \__kernel_tl_set:Ne #2 + \__kernel_tl_set:Nx #2 { \exp_after:wN \use_i_ii:nnn \exp_after:wN \__seq_get_right_loop:nw @@ -5840,9 +5848,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__seq_get_right_end:NnN #1#2#3 { \exp_not:n {#2} } \cs_generate_variant:Nn \seq_get_right:NN { c } \cs_new_protected:Npn \seq_pop_right:NN - { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_set:Ne } + { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_gpop_right:NN - { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_gset:Ne } + { \__seq_pop:NNNN \__seq_pop_right:NNN \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__seq_pop_right:NNN #1#2#3 { \cs_set_eq:NN \__seq_tmp:w \__seq_item:n @@ -5854,7 +5862,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 { \if_false: { \fi: } - \__kernel_tl_set:Ne #3 + \__kernel_tl_set:Nx #3 } { } \use_none:nn \cs_set_eq:NN \__seq_item:n \__seq_tmp:w @@ -5882,10 +5890,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__seq_pop_TF:NNNN \__seq_pop_left:NNN \tl_gset:Nn #1 #2 } \prg_new_protected_conditional:Npnn \seq_pop_right:NN #1#2 { T , F , TF } - { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \__kernel_tl_set:Ne #1 #2 } + { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \__kernel_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 \__kernel_tl_gset:Ne #1 #2 } + { \__seq_pop_TF:NNNN \__seq_pop_right:NNN \__kernel_tl_gset:Nx #1 #2 } \prg_generate_conditional_variant:Nnn \seq_pop_left:NN { c } { T , F , TF } \prg_generate_conditional_variant:Nnn \seq_gpop_left:NN { c } @@ -6071,9 +6079,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_generate_variant:Nn \seq_map_pairwise_function:NNN { Nc , c , cc } \cs_new_protected:Npn \seq_set_map_e:NNn - { \__seq_set_map_e:NNNn \__kernel_tl_set:Ne } + { \__seq_set_map_e:NNNn \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_gset_map_e:NNn - { \__seq_set_map_e:NNNn \__kernel_tl_gset:Ne } + { \__seq_set_map_e:NNNn \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__seq_set_map_e:NNNn #1#2#3#4 { \__seq_push_item_def:n { \exp_not:N \__seq_item:n {#4} } @@ -6081,9 +6089,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__seq_pop_item_def: } \cs_new_protected:Npn \seq_set_map:NNn - { \__seq_set_map:NNNn \__kernel_tl_set:Ne } + { \__seq_set_map:NNNn \__kernel_tl_set:Nx } \cs_new_protected:Npn \seq_gset_map:NNn - { \__seq_set_map:NNNn \__kernel_tl_gset:Ne } + { \__seq_set_map:NNNn \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__seq_set_map:NNNn #1#2#3#4 { \__seq_push_item_def:n { \exp_not:n { \__seq_item:n {#4} } } @@ -7032,71 +7040,93 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_new:N \l__seq_internal_a_int \int_new:N \l__seq_internal_b_int %% File: l3flag.dtx -\cs_new_protected:Npn \flag_new:n #1 +\cs_new_protected:Npn \flag_new:N #1 + { \cs_new_protected:Npe #1 { \cs_to_str:N #1 } } +\cs_generate_variant:Nn \flag_new:N { c } +\flag_new:N \l_tmpa_flag +\flag_new:N \l_tmpb_flag +\cs_new_protected:Npn \flag_clear:N #1 + { + \__flag_clear:wN 0 ; #1 + \prg_break_point: + } +\cs_generate_variant:Nn \flag_clear:N { c } +\cs_new_protected:Npn \__flag_clear:wN #1 ; #2 { - \cs_new:cpn { flag~#1 } ##1 ; - { \exp_after:wN \use_none:n \cs:w flag~#1~##1 \cs_end: } + \if_cs_exist:w #2 #1 \cs_end: \else: + \prg_break:n + \fi: + \cs_set_eq:cN { #2 #1 } \tex_undefined:D + \exp_after:wN \__flag_clear:wN + \int_value:w \int_eval:w \c_one_int + #1 ; #2 } -\cs_new_protected:Npn \flag_clear:n #1 { \__flag_clear:wn 0 ; {#1} } -\cs_new_protected:Npn \__flag_clear:wn #1 ; #2 +\cs_new_protected:Npn \flag_clear_new:N #1 + { \flag_if_exist:NTF #1 { \flag_clear:N } { \flag_new:N } #1 } +\cs_generate_variant:Nn \flag_clear_new:N { c } +\cs_new_protected:Npn \flag_show:N { \__flag_show:NN \tl_show:n } +\cs_generate_variant:Nn \flag_show:N { c } +\cs_new_protected:Npn \flag_log:N { \__flag_show:NN \tl_log:n } +\cs_generate_variant:Nn \flag_log:N { c } +\cs_new_protected:Npn \__flag_show:NN #1#2 { - \if_cs_exist:w flag~#2~#1 \cs_end: - \cs_set_eq:cN { flag~#2~#1 } \tex_undefined:D - \exp_after:wN \__flag_clear:wn - \int_value:w \int_eval:w 1 + #1 + \__kernel_chk_defined:NT #2 + { \exp_args:Ne #1 { \tl_to_str:n { #2 height } = \flag_height:N #2 } } + } +\prg_new_eq_conditional:NNn \flag_if_exist:N \cs_if_exist:N + { TF , T , F , p } +\prg_new_eq_conditional:NNn \flag_if_exist:c \cs_if_exist:c + { TF , T , F , p } +\prg_new_conditional:Npnn \flag_if_raised:N #1 { p , T , F , TF } + { + \if_cs_exist:w #1 0 \cs_end: + \prg_return_true: \else: - \use_i:nnn + \prg_return_false: \fi: - ; {#2} } -\cs_new_protected:Npn \flag_clear_new:n #1 - { \flag_if_exist:nTF {#1} { \flag_clear:n } { \flag_new:n } {#1} } +\prg_generate_conditional_variant:Nnn \flag_if_raised:N + { c } { p , T , F , TF } +\cs_new:Npn \flag_height:N #1 { \__flag_height_loop:wN 0; #1 } +\cs_new:Npn \__flag_height_loop:wN #1 ; #2 + { + \if_cs_exist:w #2 #1 \cs_end: \else: + \exp_after:wN \__flag_height_end:wN + \fi: + \exp_after:wN \__flag_height_loop:wN + \int_value:w \int_eval:w \c_one_int + #1 ; #2 + } +\cs_new:Npn \__flag_height_end:wN #1 + #2 ; #3 {#2} +\cs_generate_variant:Nn \flag_height:N { c } +\cs_new:Npn \flag_raise:N #1 + { \exp_after:wN \use_none:n \cs:w #1 \flag_height:N #1 \cs_end: } +\cs_generate_variant:Nn \flag_raise:N { c } +\cs_new:Npn \flag_ensure_raised:N #1 + { \exp_after:wN \use_none:n \cs:w #1 0 \cs_end: } +\cs_generate_variant:Nn \flag_ensure_raised:N { c } +\cs_new_protected:Npn \flag_new:n #1 { \flag_new:c { l_#1_flag } } +\cs_new_protected:Npn \flag_clear:n #1 { \flag_clear:c { l_#1_flag } } +\cs_new_protected:Npn \flag_clear_new:n #1 { \flag_clear_new:c { l_#1_flag } } +\cs_new:Npn \flag_if_exist_p:n #1 { \flag_if_exist_p:c { l_#1_flag } } +\cs_new:Npn \flag_if_exist:nT #1 { \flag_if_exist:cT { l_#1_flag } } +\cs_new:Npn \flag_if_exist:nF #1 { \flag_if_exist:cF { l_#1_flag } } +\cs_new:Npn \flag_if_exist:nTF #1 { \flag_if_exist:cTF { l_#1_flag } } +\cs_new:Npn \flag_if_raised_p:n #1 { \flag_if_raised_p:c { l_#1_flag } } +\cs_new:Npn \flag_if_raised:nT #1 { \flag_if_raised:cT { l_#1_flag } } +\cs_new:Npn \flag_if_raised:nF #1 { \flag_if_raised:cF { l_#1_flag } } +\cs_new:Npn \flag_if_raised:nTF #1 { \flag_if_raised:cTF { l_#1_flag } } +\cs_new:Npn \flag_height:n #1 { \flag_height:c { l_#1_flag } } +\cs_new:Npn \flag_raise:n #1 { \flag_raise:c { l_#1_flag } } +\cs_new:Npn \flag_ensure_raised:n #1 { \flag_ensure_raised:c { l_#1_flag } } \cs_new_protected:Npn \flag_show:n { \__flag_show:Nn \tl_show:n } \cs_new_protected:Npn \flag_log:n { \__flag_show:Nn \tl_log:n } \cs_new_protected:Npn \__flag_show:Nn #1#2 { - \exp_args:Nc \__kernel_chk_defined:NT { flag~#2 } + \exp_args:Nc \__kernel_chk_defined:NT { l_#2_flag } { \exp_args:Ne #1 { \tl_to_str:n { flag~#2~height } = \flag_height:n {#2} } } } -\prg_new_conditional:Npnn \flag_if_exist:n #1 { p , T , F , TF } - { - \cs_if_exist:cTF { flag~#1 } - { \prg_return_true: } { \prg_return_false: } - } -\prg_new_conditional:Npnn \flag_if_raised:n #1 { p , T , F , TF } - { - \if_cs_exist:w flag~#1~0 \cs_end: - \prg_return_true: - \else: - \prg_return_false: - \fi: - } -\cs_new:Npn \flag_height:n #1 { \__flag_height_loop:wn 0; {#1} } -\cs_new:Npn \__flag_height_loop:wn #1 ; #2 - { - \if_cs_exist:w flag~#2~#1 \cs_end: - \exp_after:wN \__flag_height_loop:wn \int_value:w \int_eval:w 1 + - \else: - \exp_after:wN \__flag_height_end:wn - \fi: - #1 ; {#2} - } -\cs_new:Npn \__flag_height_end:wn #1 ; #2 {#1} -\cs_new:Npn \flag_raise:n #1 - { - \cs:w flag~#1 \exp_after:wN \cs_end: - \int_value:w \flag_height:n {#1} ; - } -\cs_new:Npn \flag_ensure_raised:n #1 - { - \if_cs_exist:w flag~#1~0 \cs_end: - \else: - \cs:w flag~#1 \cs_end: 0 ; - \fi: - } %% File: l3prg.dtx \cs_new_eq:NN \if_predicate:w \tex_ifodd:D \cs_new_protected:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool } @@ -7439,9 +7469,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \tex_catcode:D `\^^@ = 2 \exp_stop_f: \cs_new:Npn \group_align_safe_begin: { \exp:w \if_false: { \fi: `^^@ \exp_stop_f: } -\group_end: +\tex_catcode:D `\^^@ = 1 \exp_stop_f: \cs_new:Npn \group_align_safe_end: - { \if_int_compare:w `{ = \c_zero_int } \fi: } + { \exp:w `^^@ \if_false: } \fi: \exp_stop_f: } +\group_end: \int_new:N \g__kernel_prg_map_int %% File: l3sys.dtx \cs_new_protected:Npn \__sys_const:nn #1#2 @@ -7864,7 +7895,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \g__sys_backend_tl \__sys_finalise:n { - \__kernel_tl_gset:Ne \g__sys_backend_tl + \__kernel_tl_gset:Nx \g__sys_backend_tl { \sys_if_engine_xetex:TF { xetex } @@ -7982,9 +8013,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \clist_gset_eq:cN \tl_gset_eq:cN \cs_new_eq:NN \clist_gset_eq:cc \tl_gset_eq:cc \cs_new_protected:Npn \clist_set_from_seq:NN - { \__clist_set_from_seq:NNNN \clist_clear:N \__kernel_tl_set:Ne } + { \__clist_set_from_seq:NNNN \clist_clear:N \__kernel_tl_set:Nx } \cs_new_protected:Npn \clist_gset_from_seq:NN - { \__clist_set_from_seq:NNNN \clist_gclear:N \__kernel_tl_gset:Ne } + { \__clist_set_from_seq:NNNN \clist_gclear:N \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__clist_set_from_seq:NNNN #1#2#3#4 { \seq_if_empty:NTF #4 @@ -8009,9 +8040,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \clist_gset_from_seq:NN { Nc } \cs_generate_variant:Nn \clist_gset_from_seq:NN { c , cc } \cs_new_protected:Npn \clist_concat:NNN - { \__clist_concat:NNNN \__kernel_tl_set:Ne } + { \__clist_concat:NNNN \__kernel_tl_set:Nx } \cs_new_protected:Npn \clist_gconcat:NNN - { \__clist_concat:NNNN \__kernel_tl_gset:Ne } + { \__clist_concat:NNNN \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__clist_concat:NNNN #1#2#3#4 { #1 #2 @@ -8028,9 +8059,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_new_eq_conditional:NNn \clist_if_exist:c \cs_if_exist:c { TF , T , F , p } \cs_new_protected:Npn \clist_set:Nn #1#2 - { \__kernel_tl_set:Ne #1 { \__clist_sanitize:n {#2} } } + { \__kernel_tl_set:Nx #1 { \__clist_sanitize:n {#2} } } \cs_new_protected:Npn \clist_gset:Nn #1#2 - { \__kernel_tl_gset:Ne #1 { \__clist_sanitize:n {#2} } } + { \__kernel_tl_gset:Nx #1 { \__clist_sanitize:n {#2} } } \cs_generate_variant:Nn \clist_set:Nn { NV , Ne , c , cV , ce } \cs_generate_variant:Nn \clist_set:Nn { No , Nx , co , cx } \cs_generate_variant:Nn \clist_gset:Nn { NV , Ne , c , cV , ce } @@ -8077,9 +8108,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_set:Nn #3 {#1} } \cs_generate_variant:Nn \clist_get:NN { c } \cs_new_protected:Npn \clist_pop:NN - { \__clist_pop:NNN \__kernel_tl_set:Ne } + { \__clist_pop:NNN \__kernel_tl_set:Nx } \cs_new_protected:Npn \clist_gpop:NN - { \__clist_pop:NNN \__kernel_tl_gset:Ne } + { \__clist_pop:NNN \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__clist_pop:NNN #1#2#3 { \if_meaning:w #2 \c_empty_clist @@ -8113,9 +8144,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \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 \__kernel_tl_set:Ne #1 #2 } + { \__clist_pop_TF:NNN \__kernel_tl_set:Nx #1 #2 } \prg_new_protected_conditional:Npnn \clist_gpop:NN #1#2 { T , F , TF } - { \__clist_pop_TF:NNN \__kernel_tl_gset:Ne #1 #2 } + { \__clist_pop_TF:NNN \__kernel_tl_gset:Nx #1 #2 } \cs_new_protected:Npn \__clist_pop_TF:NNN #1#2#3 { \if_meaning:w #2 \c_empty_clist @@ -8156,9 +8187,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \clist_remove_duplicates:N { c } \cs_generate_variant:Nn \clist_gremove_duplicates:N { c } \cs_new_protected:Npn \clist_remove_all:Nn - { \__clist_remove_all:NNNn \clist_set_from_seq:NN \__kernel_tl_set:Ne } + { \__clist_remove_all:NNNn \clist_set_from_seq:NN \__kernel_tl_set:Nx } \cs_new_protected:Npn \clist_gremove_all:Nn - { \__clist_remove_all:NNNn \clist_gset_from_seq:NN \__kernel_tl_gset:Ne } + { \__clist_remove_all:NNNn \clist_gset_from_seq:NN \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__clist_remove_all:NNNn #1#2#3#4 { \__clist_if_wrap:nTF {#4} @@ -8195,9 +8226,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \clist_remove_all:Nn { c , NV , cV } \cs_generate_variant:Nn \clist_gremove_all:Nn { c , NV , cV } \cs_new_protected:Npn \clist_reverse:N #1 - { \__kernel_tl_set:Ne #1 { \exp_args:No \clist_reverse:n {#1} } } + { \__kernel_tl_set:Nx #1 { \exp_args:No \clist_reverse:n {#1} } } \cs_new_protected:Npn \clist_greverse:N #1 - { \__kernel_tl_gset:Ne #1 { \exp_args:No \clist_reverse:n {#1} } } + { \__kernel_tl_gset:Nx #1 { \exp_args:No \clist_reverse:n {#1} } } \cs_generate_variant:Nn \clist_reverse:N { c } \cs_generate_variant:Nn \clist_greverse:N { c } \cs_new:Npn \clist_reverse:n #1 @@ -9580,8 +9611,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \prg_generate_conditional_variant:Nnn \prop_pop:NnN { NV , c , cV } { T , F , TF } \prg_generate_conditional_variant:Nnn \prop_gpop:NnN { NV , c , cV } { T , F , TF } -\cs_new_protected:Npn \prop_put:Nnn { \__prop_put:NNnn \__kernel_tl_set:Ne } -\cs_new_protected:Npn \prop_gput:Nnn { \__prop_put:NNnn \__kernel_tl_gset:Ne } +\cs_new_protected:Npn \prop_put:Nnn { \__prop_put:NNnn \__kernel_tl_set:Nx } +\cs_new_protected:Npn \prop_gput:Nnn { \__prop_put:NNnn \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__prop_put:NNnn #1#2#3#4 { \tl_set:Nn \l__prop_internal_tl @@ -9622,9 +9653,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \prop_gput:Nnn { cno , co , coo , cnx , cVx , cxV , cxx } \cs_new_protected:Npn \prop_put_if_new:Nnn - { \__prop_put_if_new:NNnn \__kernel_tl_set:Ne } + { \__prop_put_if_new:NNnn \__kernel_tl_set:Nx } \cs_new_protected:Npn \prop_gput_if_new:Nnn - { \__prop_put_if_new:NNnn \__kernel_tl_gset:Ne } + { \__prop_put_if_new:NNnn \__kernel_tl_gset:Nx } \cs_new_protected:Npn \__prop_put_if_new:NNnn #1#2#3#4 { \tl_set:Nn \l__prop_internal_tl @@ -10755,7 +10786,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__ior_open_stream:Nn #1 {#2} } { \__ior_new:N #1 - \__kernel_tl_set:Ne \l__ior_stream_tl { \int_eval:n {#1} } + \__kernel_tl_set:Nx \l__ior_stream_tl { \int_eval:n {#1} } \__ior_open_stream:Nn #1 {#2} } } @@ -10993,14 +11024,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_new:N \l__iow_file_name_tl \cs_new_protected:Npn \iow_open:Nn #1#2 { - \__kernel_tl_set:Ne \l__iow_file_name_tl + \__kernel_tl_set:Nx \l__iow_file_name_tl { \__kernel_file_name_sanitize:n {#2} } \iow_close:N #1 \seq_gpop:NNTF \g__iow_streams_seq \l__iow_stream_tl { \__iow_open_stream:NV #1 \l__iow_file_name_tl } { \__iow_new:N #1 - \__kernel_tl_set:Ne \l__iow_stream_tl { \int_eval:n {#1} } + \__kernel_tl_set:Nx \l__iow_stream_tl { \int_eval:n {#1} } \__iow_open_stream:NV #1 \l__iow_file_name_tl } } @@ -11113,7 +11144,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__iow_unindent:w { } \cs_new_protected:Npn \__iow_set_indent:n #1 { - \__kernel_tl_set:Ne \l__iow_one_indent_tl + \__kernel_tl_set:Nx \l__iow_one_indent_tl { \exp_args:No \__kernel_str_to_other_fast:n { \tl_to_str:n {#1} } } \int_set:Nn \l__iow_one_indent_int { \str_count:N \l__iow_one_indent_tl } @@ -11188,11 +11219,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set_eq:NN \iow_indent:n \__iow_indent:n #3 \cs_set_eq:NN \protect \token_to_str:N - \__kernel_tl_set:Ne \l__iow_wrap_tl {#1} + \__kernel_tl_set:Nx \l__iow_wrap_tl {#1} \cs_set_eq:NN \iow_wrap_allow_break: \__iow_wrap_allow_break_error: \cs_set_eq:NN \iow_indent:n \__iow_indent_error:n - \__kernel_tl_set:Ne \l__iow_newline_tl { \iow_newline: #2 } - \__kernel_tl_set:Ne \l__iow_newline_tl { \tl_to_str:N \l__iow_newline_tl } + \__kernel_tl_set:Nx \l__iow_newline_tl { \iow_newline: #2 } + \__kernel_tl_set:Nx \l__iow_newline_tl { \tl_to_str:N \l__iow_newline_tl } \int_set:Nn \l__iow_line_target_int { \l_iow_line_count_int - \str_count:N \l__iow_newline_tl + 1 } \int_compare:nNnT { \l__iow_line_target_int } < 0 @@ -11208,12 +11239,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \iow_wrap:nnnN { ne } \cs_new_protected:Npn \__iow_wrap_do: { - \__kernel_tl_set:Ne \l__iow_wrap_tl + \__kernel_tl_set:Nx \l__iow_wrap_tl { \exp_args:No \__kernel_str_to_other_fast:n \l__iow_wrap_tl \c__iow_wrap_end_marker_tl } - \__kernel_tl_set:Ne \l__iow_wrap_tl + \__kernel_tl_set:Nx \l__iow_wrap_tl { \exp_after:wN \__iow_wrap_fix_newline:w \l__iow_wrap_tl ^^J \q__iow_nil ^^J \s__iow_stop @@ -11371,7 +11402,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__iow_wrap_allow_break:n #1 { - \__kernel_tl_set:Ne \l__iow_line_tl + \__kernel_tl_set:Nx \l__iow_line_tl { \l__iow_line_tl \__iow_wrap_trim:N \l__iow_line_part_tl } \bool_set_false:N \l__iow_line_break_bool \tl_if_empty:NTF \l__iow_line_part_tl @@ -11391,7 +11422,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_put_right:Ne \l__iow_line_tl { \l__iow_line_part_tl } \bool_set_false:N \l__iow_line_break_bool \int_sub:Nn \l__iow_indent_int { \l__iow_one_indent_int } - \__kernel_tl_set:Ne \l__iow_indent_tl + \__kernel_tl_set:Nx \l__iow_indent_tl { \exp_after:wN \__iow_unindent:w \l__iow_indent_tl } \__iow_wrap_chunk:nw {#1} } @@ -11410,9 +11441,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__iow_wrap_store_do:n #1 { - \__kernel_tl_set:Ne \l__iow_line_tl + \__kernel_tl_set:Nx \l__iow_line_tl { \l__iow_line_tl \l__iow_line_part_tl } - \__kernel_tl_set:Ne \l__iow_wrap_tl + \__kernel_tl_set:Nx \l__iow_wrap_tl { \l__iow_wrap_tl \l__iow_newline_tl @@ -11715,7 +11746,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \file_get_full_name:nN { V } \prg_new_protected_conditional:Npnn \file_get_full_name:nN #1#2 { T , F , TF } { - \__kernel_tl_set:Ne #2 + \__kernel_tl_set:Nx #2 { \file_full_name:n {#1} } \tl_if_empty:NTF #2 { \prg_return_false: } @@ -11842,7 +11873,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { V } { T , F , TF } \cs_new_protected:Npn \__file_get_details:nnN #1#2#3 { - \__kernel_tl_set:Ne #3 + \__kernel_tl_set:Nx #3 { \use:c { file_ #2 :n } {#1} } \tl_if_empty:NTF #3 { \prg_return_false: } @@ -11857,7 +11888,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_new_protected_conditional:Npnn \file_get_hex_dump:nnnN #1#2#3#4 { T , F , TF } { - \__kernel_tl_set:Ne #4 + \__kernel_tl_set:Nx #4 { \file_hex_dump:nnn {#1} {#2} {#3} } \tl_if_empty:NTF #4 { \prg_return_false: } @@ -13116,6 +13147,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \use:n } {#1} } +\cs_new_protected:Npn \__keys_cs_undefine:c #1 + { + \if_cs_exist:w #1 \cs_end: + \else: + \use_i:nnnn + \fi: + \cs_set_eq:cN {#1} \tex_undefined:D + } \cs_new_protected:Npn \keys_define:nn { \__keys_define:onn \l__keys_module_str } \cs_generate_variant:Nn \keys_define:nn { ne , nx } @@ -13300,9 +13339,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_empty:nTF {#1} { - \cs_set_eq:cN + \__keys_cs_undefine:c { \c__keys_default_root_str \l_keys_path_str } - \tex_undefined:D } { \cs_set_nopar:cpe @@ -13313,11 +13351,11 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__keys_groups_set:n #1 { - \clist_set:Nn \l__keys_groups_clist {#1} + \clist_set:Ne \l__keys_groups_clist { \tl_to_str:n {#1} } \clist_if_empty:NTF \l__keys_groups_clist { - \cs_set_eq:cN { \c__keys_groups_root_str \l_keys_path_str } - \tex_undefined:D + \__keys_cs_undefine:c + { \c__keys_groups_root_str \l_keys_path_str } } { \cs_set_eq:cN { \c__keys_groups_root_str \l_keys_path_str } @@ -13404,9 +13442,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \clist_map_inline:nn { code , default , groups , inherit , type , check } { - \cs_set_eq:cN + \__keys_cs_undefine:c { \tl_use:c { c__keys_ ##1 _root_str } \l_keys_path_str } - \tex_undefined:D } } \cs_new_protected:Npn \__keys_value_requirement:nn #1#2 @@ -13425,9 +13462,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \c__keys_check_root_str \l_keys_path_str } { __keys_check_ #1 : } { - \cs_set_eq:cN + \__keys_cs_undefine:c { \c__keys_check_root_str \l_keys_path_str } - \tex_undefined:D } } } @@ -13753,8 +13789,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \clist_clear:N \l__keys_unused_clist \__keys_set_known:nnn {#2} {#3} {#4} - \__kernel_tl_set:Ne #5 { \exp_not:o \l__keys_unused_clist } - \__kernel_tl_set:Ne \l__keys_unused_clist { \exp_not:n {#1} } + \__kernel_tl_set:Nx #5 { \exp_not:o \l__keys_unused_clist } + \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} } } \cs_new_protected:Npn \keys_set_known:nn #1#2 { \__keys_set_known:nnn \q__keys_no_value {#1} {#2} } @@ -13778,30 +13814,30 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_not:o \l__keys_relative_tl } } } -\cs_new_protected:Npn \keys_set_filter:nnnN #1#2#3#4 +\cs_new_protected:Npn \keys_set_exclude_groups:nnnN #1#2#3#4 { - \exp_args:No \__keys_set_filter:nnnnnN + \exp_args:No \__keys_set_exclude_groups:nnnnnN \l__keys_unused_clist \q__keys_no_value {#1} {#2} {#3} #4 } -\cs_generate_variant:Nn \keys_set_filter:nnnN { nnV , nnv , nno } -\cs_new_protected:Npn \keys_set_filter:nnnnN #1#2#3#4#5 +\cs_generate_variant:Nn \keys_set_exclude_groups:nnnN { nnV , nnv , nno } +\cs_new_protected:Npn \keys_set_exclude_groups:nnnnN #1#2#3#4#5 { - \exp_args:No \__keys_set_filter:nnnnnN + \exp_args:No \__keys_set_exclude_groups:nnnnnN \l__keys_unused_clist {#4} {#1} {#2} {#3} #5 } -\cs_generate_variant:Nn \keys_set_filter:nnnnN { nnV , nnv , nno } -\cs_new_protected:Npn \__keys_set_filter:nnnnnN #1#2#3#4#5#6 +\cs_generate_variant:Nn \keys_set_exclude_groups:nnnnN { nnV , nnv , nno } +\cs_new_protected:Npn \__keys_set_exclude_groups:nnnnnN #1#2#3#4#5#6 { \clist_clear:N \l__keys_unused_clist - \__keys_set_filter:nnnn {#2} {#3} {#4} {#5} - \__kernel_tl_set:Ne #6 { \exp_not:o \l__keys_unused_clist } - \__kernel_tl_set:Ne \l__keys_unused_clist { \exp_not:n {#1} } + \__keys_set_exclude_groups:nnnn {#2} {#3} {#4} {#5} + \__kernel_tl_set:Nx #6 { \exp_not:o \l__keys_unused_clist } + \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} } } -\cs_new_protected:Npn \keys_set_filter:nnn #1#2#3 - {\__keys_set_filter:nnnn \q__keys_no_value {#1} {#2} {#3} } -\cs_generate_variant:Nn \keys_set_filter:nnn { nnV , nnv , nno } -\cs_new_protected:Npn \__keys_set_filter:nnnn #1#2#3#4 +\cs_new_protected:Npn \keys_set_exclude_groups:nnn #1#2#3 + {\__keys_set_exclude_groups:nnnn \q__keys_no_value {#1} {#2} {#3} } +\cs_generate_variant:Nn \keys_set_exclude_groups:nnn { nnV , nnv , nno } +\cs_new_protected:Npn \__keys_set_exclude_groups:nnnn #1#2#3#4 { \use:e { @@ -13845,7 +13881,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_args:No \__keys_set_selective:nnnn \l__keys_selective_seq } \cs_new_protected:Npn \__keys_set_selective:nnnn #1#2#3#4 { - \seq_set_from_clist:Nn \l__keys_selective_seq {#3} + \exp_args:NNe \seq_set_from_clist:Nn + \l__keys_selective_seq { \tl_to_str:n {#3} } \__keys_set:nn {#2} {#4} \tl_set:Nn \l__keys_selective_seq {#1} } @@ -13869,7 +13906,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__keys_set_keyval:nnn #1#2#3 { - \__kernel_tl_set:Ne \l_keys_path_str + \__kernel_tl_set:Nx \l_keys_path_str { \tl_if_blank:nF {#1} { #1 / } @@ -13932,13 +13969,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \bool_set_false:N \l__keys_tmp_bool \seq_map_inline:Nn \l__keys_selective_seq { - \clist_map_inline:Nn \l__keys_groups_clist + \clist_if_in:NnT \l__keys_groups_clist {##1} { - \str_if_eq:nnT {##1} {####1} - { - \bool_set_true:N \l__keys_tmp_bool - \clist_map_break:n \seq_map_break: - } + \bool_set_true:N \l__keys_tmp_bool + \seq_map_break: } } \bool_if:NTF \l__keys_tmp_bool @@ -14079,7 +14113,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__keys_store_unused_aux: { - \__kernel_tl_set:Ne \l__keys_relative_tl + \__kernel_tl_set:Nx \l__keys_relative_tl { \exp_args:No \__keys_trim_spaces:n \l__keys_relative_tl } \use:e { @@ -14966,10 +15000,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_gput:Nnn \g_msg_module_name_prop { fp } { LaTeX } \prop_gput:Nnn \g_msg_module_type_prop { fp } { } %% File: l3fp-traps.dtx -\flag_new:n { fp_invalid_operation } -\flag_new:n { fp_division_by_zero } -\flag_new:n { fp_overflow } -\flag_new:n { fp_underflow } +\flag_new:N \l_fp_invalid_operation_flag +\flag_new:N \l_fp_division_by_zero_flag +\flag_new:N \l_fp_overflow_flag +\flag_new:N \l_fp_underflow_flag \cs_new_protected:Npn \fp_trap:nn #1#2 { \cs_if_exist_use:cF { __fp_trap_#1_set_#2: } @@ -15000,7 +15034,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 \__fp_error:nnfn { invalid } {##2} { \fp_to_tl:n { ##3; } } { } - \flag_ensure_raised:n { fp_invalid_operation } + \flag_ensure_raised:N \l_fp_invalid_operation_flag ##1 } \exp_args:Nno \use:n @@ -15009,7 +15043,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 \__fp_error:nffn { invalid-ii } { \fp_to_tl:n { ##2; } } { \fp_to_tl:n { ##3; } } {##1} - \flag_ensure_raised:n { fp_invalid_operation } + \flag_ensure_raised:N \l_fp_invalid_operation_flag \exp_after:wN \c_nan_fp } \exp_args:Nno \use:n @@ -15017,7 +15051,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 \__fp_error:nffn { invalid } {##1} {##2} { } - \flag_ensure_raised:n { fp_invalid_operation } + \flag_ensure_raised:N \l_fp_invalid_operation_flag \exp_after:wN \c_nan_fp } } @@ -15034,7 +15068,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 \__fp_error:nnfn { zero-div } {##2} { \fp_to_tl:n { ##3; } } { } - \flag_ensure_raised:n { fp_division_by_zero } + \flag_ensure_raised:N \l_fp_division_by_zero_flag \exp_after:wN ##1 } \exp_args:Nno \use:n @@ -15043,7 +15077,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 \__fp_error:nffn { zero-div-ii } { \fp_to_tl:n { ##3; } } { \fp_to_tl:n { ##4; } } {##2} - \flag_ensure_raised:n { fp_division_by_zero } + \flag_ensure_raised:N \l_fp_division_by_zero_flag \exp_after:wN ##1 } } @@ -15074,7 +15108,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \fp_to_tl:n { \s__fp \__fp_chk:w ##1##2##3; } } { \token_if_eq_meaning:NNF 0 ##2 { - } #4 } {#2} - \flag_ensure_raised:n { fp_#2 } + \flag_ensure_raised:c { l_fp_#2_flag } #3 ##2 } } @@ -16782,9 +16816,9 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_new_eq:NN #1 \c_zero_fp } \cs_generate_variant:Nn \fp_new:N {c} \cs_new_protected:Npn \fp_set:Nn #1#2 - { \__kernel_tl_set:Ne #1 { \exp_not:f { \__fp_parse:n {#2} } } } + { \__kernel_tl_set:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } \cs_new_protected:Npn \fp_gset:Nn #1#2 - { \__kernel_tl_gset:Ne #1 { \exp_not:f { \__fp_parse:n {#2} } } } + { \__kernel_tl_gset:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } \cs_new_protected:Npn \fp_const:Nn #1#2 { \tl_const:Ne #1 { \exp_not:f { \__fp_parse:n {#2} } } } \cs_generate_variant:Nn \fp_set:Nn {c} @@ -21110,7 +21144,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_variable_set_parsing:Nn \cs_gset_eq:NN {#1} } } -\flag_new:n { __fp_symbolic } +\flag_new:N \l__fp_symbolic_flag \cs_new_protected:Npn \fp_set_variable:nn #1 { \exp_args:No \__fp_set_variable:nn { \tl_to_str:n {#1} } @@ -21123,10 +21157,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \__fp_variable_set_parsing:Nn \cs_set_eq:NN {#1} \fp_set:Nn \l__fp_symbolic_fp {#2} \cs_set_nopar:cpn { l__fp_variable_#1_fp } - { \flag_ensure_raised:n { __fp_symbolic } \c_nan_fp } - \flag_clear:n { __fp_symbolic } + { \flag_ensure_raised:N \l__fp_symbolic_flag \c_nan_fp } + \flag_clear:N \l__fp_symbolic_flag \fp_set:cn { l__fp_variable_#1_fp } { \l__fp_symbolic_fp } - \flag_if_raised:nT { __fp_symbolic } + \flag_if_raised:NT \l__fp_symbolic_flag { \msg_error:nneee { fp } { id-loop } { #1 } @@ -22207,7 +22241,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \group_begin: \__sort_main:NNNn \tl_map_inline:Nn \tl_map_break:n #2 {#3} - \__kernel_tl_gset:Ne \g__sort_internal_tl + \__kernel_tl_gset:Nx \g__sort_internal_tl { \__sort_tl_toks:w \l__sort_min_int ; } \group_end: #1 #2 \g__sort_internal_tl @@ -22550,8 +22584,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_gput:Nnn \g__str_alias_prop { default } { utf8 } } \bool_new:N \g__str_error_bool -\flag_new:n { __str_byte } -\flag_new:n { __str_error } +\flag_new:N \l__str_byte_flag +\flag_new:N \l__str_error_flag \prg_new_conditional:Npnn \__str_if_contains_char:Nn #1#2 { T , TF } { \exp_after:wN \__str_if_contains_char_aux:nn \exp_after:wN {#1} {#2} @@ -22604,7 +22638,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \group_begin: - \__kernel_tl_set:Ne \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } + \__kernel_tl_set:Nx \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } } \tl_map_inline:Nn \l__str_internal_tl { \tl_map_inline:Nn \l__str_internal_tl @@ -22649,7 +22683,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__str_convert_gmap:N #1 { - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN \__str_convert_gmap_loop:NN \exp_after:wN #1 @@ -22665,7 +22699,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__str_convert_gmap_internal:N #1 { - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN \__str_convert_gmap_internal_loop:Nww \exp_after:wN #1 @@ -22679,16 +22713,16 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 {#3} \__str_convert_gmap_internal_loop:Nww #1 } -\cs_new_protected:Npn \__str_if_flag_error:nne #1 +\cs_new_protected:Npn \__str_if_flag_error:Nne #1 { - \flag_if_raised:nTF {#1} + \flag_if_raised:NTF #1 { \msg_error:nne { str } } { \use_none:nn } } -\cs_new_protected:Npn \__str_if_flag_no_error:nne #1#2#3 - { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } } -\cs_new:Npn \__str_if_flag_times:nT #1#2 - { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } } +\cs_new_protected:Npn \__str_if_flag_no_error:Nne #1#2#3 + { \flag_if_raised:NT #1 { \bool_gset_true:N \g__str_error_bool } } +\cs_new:Npn \__str_if_flag_times:NT #1#2 + { \flag_if_raised:NT #1 { #2~(x \flag_height:N #1 ) } } \cs_new_protected:Npn \str_set_convert:Nnnn { \__str_convert:nNNnnn { } \tl_set_eq:NN } \cs_new_protected:Npn \str_gset_convert:Nnnn @@ -22698,7 +22732,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_gset_false:N \g__str_error_bool \__str_convert:nNNnnn - { \cs_set_eq:NN \__str_if_flag_error:nne \__str_if_flag_no_error:nne } + { \cs_set_eq:NN \__str_if_flag_error:Nne \__str_if_flag_no_error:Nne } \tl_set_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true: } @@ -22707,7 +22741,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_gset_false:N \g__str_error_bool \__str_convert:nNNnnn - { \cs_set_eq:NN \__str_if_flag_error:nne \__str_if_flag_no_error:nne } + { \cs_set_eq:NN \__str_if_flag_error:Nne \__str_if_flag_no_error:Nne } \tl_gset_eq:NN #1 {#2} {#3} {#4} \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true: } @@ -22715,7 +22749,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \group_begin: #1 - \__kernel_tl_gset:Ne \g__str_result_tl { \__kernel_str_to_other_fast:n {#4} } + \__kernel_tl_gset:Nx \g__str_result_tl { \__kernel_str_to_other_fast:n {#4} } \exp_after:wN \__str_convert:wwwnn \tl_to_str:n {#5} /// \s__str_stop { decode } { unescape } @@ -22726,7 +22760,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { encode } { escape } \use_ii_i:nn \__str_convert_encode_: - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \tl_to_str:V \g__str_result_tl } \group_end: #2 #3 \g__str_result_tl @@ -22830,7 +22864,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w `#1 < 256 \exp_stop_f: #1 \else: - \flag_raise:n { __str_byte } + \flag_raise:N \l__str_byte_flag \fi: \__str_filter_bytes_aux:N } @@ -22844,10 +22878,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_new_protected:Npn \__str_convert_unescape_: { - \flag_clear:n { __str_byte } - \__kernel_tl_gset:Ne \g__str_result_tl + \flag_clear:N \l__str_byte_flag + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_args:No \__str_filter_bytes:n \g__str_result_tl } - \__str_if_flag_error:nne { __str_byte } { non-byte } { bytes } + \__str_if_flag_error:Nne \l__str_byte_flag { non-byte } { bytes } } } { \cs_new_protected:Npn \__str_convert_unescape_: { } } @@ -22872,15 +22906,15 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_new_protected:Npn \__str_convert_encode_: { - \flag_clear:n { __str_error } + \flag_clear:N \l__str_error_flag \__str_convert_gmap_internal:N \__str_encode_native_char:n - \__str_if_flag_error:nne { __str_error } + \__str_if_flag_error:Nne \l__str_error_flag { native-overflow } { } } \cs_new:Npn \__str_encode_native_char:n #1 { \if_int_compare:w #1 > \c__str_max_byte_int - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag ? \else: \char_generate:nn {#1} {12} @@ -22897,7 +22931,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__str_convert_decode_clist: { \clist_gset:No \g__str_result_tl \g__str_result_tl - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_args:No \clist_map_function:nN \g__str_result_tl \__str_decode_clist_char:n @@ -22908,7 +22942,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__str_convert_encode_clist: { \__str_convert_gmap_internal:N \__str_encode_clist_char:n - \__kernel_tl_gset:Ne \g__str_result_tl { \tl_tail:N \g__str_result_tl } + \__kernel_tl_gset:Nx \g__str_result_tl { \tl_tail:N \g__str_result_tl } } \cs_new:Npn \__str_encode_clist_char:n #1 { , #1 } \cs_new_protected:Npn \__str_declare_eight_bit_encoding:nnnn #1 @@ -22966,9 +23000,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_not:N \__str_decode_eight_bit_aux:Nn \exp_not:c { g__str_decode_#1_intarray } } - \flag_clear:n { __str_error } + \flag_clear:N \l__str_error_flag \__str_convert_gmap:N \__str_tmp:w - \__str_if_flag_error:nne { __str_error } { decode-8-bit } {#1} + \__str_if_flag_error:Nne \l__str_error_flag { decode-8-bit } {#1} } \cs_new:Npn \__str_decode_eight_bit_aux:Nn #1#2 { @@ -22980,7 +23014,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__str_decode_eight_bit_aux:n #1 { \if_int_compare:w #1 < \c_zero_int - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag \int_value:w \c__str_replacement_char_int \else: #1 @@ -22995,9 +23029,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_not:c { g__str_encode_#1_intarray } \exp_not:c { g__str_decode_#1_intarray } } - \flag_clear:n { __str_error } + \flag_clear:N \l__str_error_flag \__str_convert_gmap_internal:N \__str_tmp:w - \__str_if_flag_error:nne { __str_error } { encode-8-bit } {#1} + \__str_if_flag_error:Nne \l__str_error_flag { encode-8-bit } {#1} } \cs_new:Npn \__str_encode_eight_bit_aux:NNn #1#2#3 { @@ -23013,7 +23047,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_compare:nNnTF { \intarray_item:Nn #3 { 1 + #1 } } = {#2} { \__str_output_byte:n {#1} } - { \flag_raise:n { __str_error } } + { \flag_raise:N \l__str_error_flag } } \msg_new:nnn { str } { unknown-esc } { Escaping~scheme~'#1'~(filtered:~'#2')~unknown. } @@ -23064,9 +23098,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__str_convert_unescape_hex: { \group_begin: - \flag_clear:n { __str_error } + \flag_clear:N \l__str_error_flag \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \__str_output_byte:w " \exp_last_unbraced:Nf \__str_unescape_hex_auxi:N @@ -23075,7 +23109,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_break_point: \__str_output_end: } - \__str_if_flag_error:nne { __str_error } { unescape-hex } { } + \__str_if_flag_error:Nne \l__str_error_flag { unescape-hex } { } \group_end: } \cs_new:Npn \__str_unescape_hex_auxi:N #1 @@ -23084,7 +23118,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__str_hexadecimal_use:NTF #1 { \__str_unescape_hex_auxii:N } { - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag \__str_unescape_hex_auxi:N } } @@ -23097,7 +23131,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__str_output_byte:w " \__str_unescape_hex_auxi:N } { - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag \__str_unescape_hex_auxii:N } } @@ -23112,17 +23146,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:cpn { __str_convert_unescape_#2: } { \group_begin: - \flag_clear:n { __str_byte } - \flag_clear:n { __str_error } + \flag_clear:N \l__str_byte_flag + \flag_clear:N \l__str_error_flag \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN #3 \g__str_result_tl #1 ? { ? \prg_break: } \prg_break_point: } - \__str_if_flag_error:nne { __str_byte } { non-byte } { #2 } - \__str_if_flag_error:nne { __str_error } { unescape-#2 } { } + \__str_if_flag_error:Nne \l__str_byte_flag { non-byte } { #2 } + \__str_if_flag_error:Nne \l__str_error_flag { unescape-#2 } { } \group_end: } \cs_new:Npn #3 ##1#1##2##3 @@ -23135,12 +23169,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \__str_hexadecimal_use:NTF ##3 { } { - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag * 0 + `#1 \use_i:nn } } { - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag 0 + `#1 \use_i:nn } \__str_output_end: @@ -23165,23 +23199,23 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__str_convert_unescape_string: { \group_begin: - \flag_clear:n { __str_byte } - \flag_clear:n { __str_error } + \flag_clear:N \l__str_byte_flag + \flag_clear:N \l__str_error_flag \int_set:Nn \tex_escapechar:D { 92 } - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN \__str_unescape_string_newlines:wN \g__str_result_tl \prg_break: ^^M ? \prg_break_point: } - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN \__str_unescape_string_loop:wNNN \g__str_result_tl #1 ?? { ? \prg_break: } \prg_break_point: } - \__str_if_flag_error:nne { __str_byte } { non-byte } { string } - \__str_if_flag_error:nne { __str_error } { unescape-string } { } + \__str_if_flag_error:Nne \l__str_byte_flag { non-byte } { string } + \__str_if_flag_error:Nne \l__str_error_flag { unescape-string } { } \group_end: } } @@ -23221,7 +23255,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { ^^J } { 0 - 1 } } { - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag 0 - 1 \use_i:nn } } @@ -23347,19 +23381,19 @@ Type H <return> for immediate help}\def~{\errmessage{% #5 \s__str_stop \__str_output_byte:n { #2 - 64 * ( #1 - 2 ) } } -\flag_clear_new:n { __str_missing } -\flag_clear_new:n { __str_extra } -\flag_clear_new:n { __str_overlong } -\flag_clear_new:n { __str_overflow } +\flag_clear_new:N \l__str_missing_flag +\flag_clear_new:N \l__str_extra_flag +\flag_clear_new:N \l__str_overlong_flag +\flag_clear_new:N \l__str_overflow_flag \msg_new:nnnn { str } { utf8-decode } { Invalid~UTF-8~string: \exp_last_unbraced:Nf \use_none:n { - \__str_if_flag_times:nT { __str_missing } { ,~missing~continuation~byte } - \__str_if_flag_times:nT { __str_extra } { ,~extra~continuation~byte } - \__str_if_flag_times:nT { __str_overlong } { ,~overlong~form } - \__str_if_flag_times:nT { __str_overflow } { ,~code~point~too~large } + \__str_if_flag_times:NT \l__str_missing_flag { ,~missing~continuation~byte } + \__str_if_flag_times:NT \l__str_extra_flag { ,~extra~continuation~byte } + \__str_if_flag_times:NT \l__str_overlong_flag { ,~overlong~form } + \__str_if_flag_times:NT \l__str_overflow_flag { ,~code~point~too~large } } . } @@ -23374,25 +23408,25 @@ Type H <return> for immediate help}\def~{\errmessage{% Code~point~ <~1114112:~11110xxx~10xxxxxx~10xxxxxx~10xxxxxx \\ } Bytes~of~the~form~10xxxxxx~are~called~continuation~bytes. - \flag_if_raised:nT { __str_missing } + \flag_if_raised:NT \l__str_missing_flag { \\\\ A~leading~byte~(in~the~range~[192,255])~was~not~followed~by~ the~appropriate~number~of~continuation~bytes. } - \flag_if_raised:nT { __str_extra } + \flag_if_raised:NT \l__str_extra_flag { \\\\ LaTeX~came~across~a~continuation~byte~when~it~was~not~expected. } - \flag_if_raised:nT { __str_overlong } + \flag_if_raised:NT \l__str_overlong_flag { \\\\ Every~Unicode~code~point~must~be~expressed~in~the~shortest~ possible~form.~For~instance,~'0xC0'~'0x83'~is~not~a~valid~ representation~for~the~code~point~3. } - \flag_if_raised:nT { __str_overflow } + \flag_if_raised:NT \l__str_overflow_flag { \\\\ Unicode~limits~code~points~to~the~range~[0,1114111]. @@ -23402,18 +23436,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \prop_gput:Nnn \g_msg_module_type_prop { str } { } \cs_new_protected:cpn { __str_convert_decode_utf8: } { - \flag_clear:n { __str_error } - \flag_clear:n { __str_missing } - \flag_clear:n { __str_extra } - \flag_clear:n { __str_overlong } - \flag_clear:n { __str_overflow } - \__kernel_tl_gset:Ne \g__str_result_tl + \flag_clear:N \l__str_error_flag + \flag_clear:N \l__str_missing_flag + \flag_clear:N \l__str_extra_flag + \flag_clear:N \l__str_overlong_flag + \flag_clear:N \l__str_overflow_flag + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN \__str_decode_utf_viii_start:N \g__str_result_tl { \prg_break: \__str_decode_utf_viii_end: } \prg_break_point: } - \__str_if_flag_error:nne { __str_error } { utf8-decode } { } + \__str_if_flag_error:Nne \l__str_error_flag { utf8-decode } { } } \cs_new:Npn \__str_decode_utf_viii_start:N #1 { @@ -23423,8 +23457,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w `#1 < "80 \exp_stop_f: \int_value:w `#1 \else: - \flag_raise:n { __str_extra } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_extra_flag + \flag_raise:N \l__str_error_flag \int_use:N \c__str_replacement_char_int \fi: \else: @@ -23447,8 +23481,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_value:w \int_eval:n { #1 * "40 + `#3 - "80 } \exp_after:wN \else: \s__str - \flag_raise:n { __str_missing } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_missing_flag + \flag_raise:N \l__str_error_flag \int_use:N \c__str_replacement_char_int \fi: \s__str @@ -23461,8 +23495,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w #1 < #4 \exp_stop_f: \s__str \if_int_compare:w #1 < #3 \exp_stop_f: - \flag_raise:n { __str_overlong } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_overlong_flag + \flag_raise:N \l__str_error_flag \int_use:N \c__str_replacement_char_int \else: #1 @@ -23481,15 +23515,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__str_decode_utf_viii_overflow:w #1 \fi: #2 \fi: { \fi: \fi: - \flag_raise:n { __str_overflow } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_overflow_flag + \flag_raise:N \l__str_error_flag \int_use:N \c__str_replacement_char_int } \cs_new:Npn \__str_decode_utf_viii_end: { \s__str - \flag_raise:n { __str_missing } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_missing_flag + \flag_raise:N \l__str_error_flag \int_use:N \c__str_replacement_char_int \s__str \prg_break: } @@ -23507,10 +23541,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__str_encode_utf_xvi_aux:N \__str_output_byte_pair_le:n } \cs_new_protected:Npn \__str_encode_utf_xvi_aux:N #1 { - \flag_clear:n { __str_error } + \flag_clear:N \l__str_error_flag \cs_set_eq:NN \__str_tmp:w #1 \__str_convert_gmap_internal:N \__str_encode_utf_xvi_char:n - \__str_if_flag_error:nne { __str_error } { utf16-encode } { } + \__str_if_flag_error:Nne \l__str_error_flag { utf16-encode } { } } \cs_new:Npn \__str_encode_utf_xvi_char:n #1 { @@ -23519,7 +23553,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \if_int_compare:w #1 < "10000 \exp_stop_f: \if_int_compare:w #1 < "E000 \exp_stop_f: - \flag_raise:n { __str_error } + \flag_raise:N \l__str_error_flag \__str_tmp:w { \c__str_replacement_char_int } \else: \__str_tmp:w {#1} @@ -23530,9 +23564,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \fi: } - \flag_clear_new:n { __str_missing } - \flag_clear_new:n { __str_extra } - \flag_clear_new:n { __str_end } + \flag_clear_new:N \l__str_missing_flag + \flag_clear_new:N \l__str_extra_flag + \flag_clear_new:N \l__str_end_flag \msg_new:nnnn { str } { utf16-encode } { Unicode~string~cannot~be~expressed~in~UTF-16:~surrogate. } { @@ -23545,9 +23579,9 @@ Type H <return> for immediate help}\def~{\errmessage{% Invalid~UTF-16~string: \exp_last_unbraced:Nf \use_none:n { - \__str_if_flag_times:nT { __str_missing } { ,~missing~trail~surrogate } - \__str_if_flag_times:nT { __str_extra } { ,~extra~trail~surrogate } - \__str_if_flag_times:nT { __str_end } { ,~odd~number~of~bytes } + \__str_if_flag_times:NT \l__str_missing_flag { ,~missing~trail~surrogate } + \__str_if_flag_times:NT \l__str_extra_flag { ,~extra~trail~surrogate } + \__str_if_flag_times:NT \l__str_end_flag { ,~odd~number~of~bytes } } . } @@ -23564,17 +23598,17 @@ Type H <return> for immediate help}\def~{\errmessage{% } Lead~surrogates~are~pairs~of~bytes~in~the~range~[0xD800,~0xDBFF],~ and~trail~surrogates~are~in~the~range~[0xDC00,~0xDFFF]. - \flag_if_raised:nT { __str_missing } + \flag_if_raised:NT \l__str_missing_flag { \\\\ A~lead~surrogate~was~not~followed~by~a~trail~surrogate. } - \flag_if_raised:nT { __str_extra } + \flag_if_raised:NT \l__str_extra_flag { \\\\ LaTeX~came~across~a~trail~surrogate~when~it~was~not~expected. } - \flag_if_raised:nT { __str_end } + \flag_if_raised:NT \l__str_end_flag { \\\\ The~string~contained~an~odd~number~of~bytes.~This~is~invalid:~ @@ -23602,18 +23636,18 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__str_decode_utf_xvi:Nw #1#2 \s__str_stop { - \flag_clear:n { __str_error } - \flag_clear:n { __str_missing } - \flag_clear:n { __str_extra } - \flag_clear:n { __str_end } + \flag_clear:N \l__str_error_flag + \flag_clear:N \l__str_missing_flag + \flag_clear:N \l__str_extra_flag + \flag_clear:N \l__str_end_flag \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN \__str_decode_utf_xvi_pair:NN #2 \q__str_nil \q__str_nil \prg_break_point: } - \__str_if_flag_error:nne { __str_error } { utf16-decode } { } + \__str_if_flag_error:Nne \l__str_error_flag { utf16-decode } { } } \cs_new:Npn \__str_decode_utf_xvi_pair:NN #1#2 { @@ -23669,8 +23703,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__str_decode_utf_xvi_error:nNN { extra } #1#2 } \cs_new:Npn \__str_decode_utf_xvi_error:nNN #1#2#3 { - \flag_raise:n { __str_error } - \flag_raise:n { str_#1 } + \flag_raise:N \l__str_error_flag + \flag_raise:c { l__str_#1_flag } #2 #3 \s__str \int_use:N \c__str_replacement_char_int \s__str } @@ -23710,29 +23744,29 @@ Type H <return> for immediate help}\def~{\errmessage{% \__str_output_byte_pair_le:n {#1} ^^00 } - \flag_clear_new:n { __str_overflow } - \flag_clear_new:n { __str_end } + \flag_clear_new:N \l__str_overflow_flag + \flag_clear_new:N \l__str_end_flag \msg_new:nnnn { str } { utf32-decode } { Invalid~UTF-32~string: \exp_last_unbraced:Nf \use_none:n { - \__str_if_flag_times:nT { __str_overflow } { ,~code~point~too~large } - \__str_if_flag_times:nT { __str_end } { ,~truncated~string } + \__str_if_flag_times:NT \l__str_overflow_flag { ,~code~point~too~large } + \__str_if_flag_times:NT \l__str_end_flag { ,~truncated~string } } . } { In~the~UTF-32~encoding,~every~Unicode~character~ (in~the~range~[U+0000,~U+10FFFF])~is~encoded~as~4~bytes. - \flag_if_raised:nT { __str_overflow } + \flag_if_raised:NT \l__str_overflow_flag { \\\\ LaTeX~came~across~a~code~point~larger~than~1114111,~ the~maximum~code~point~defined~by~Unicode.~ Perhaps~the~string~was~not~encoded~in~the~UTF-32~encoding? } - \flag_if_raised:nT { __str_end } + \flag_if_raised:NT \l__str_end_flag { \\\\ The~length~of~the~string~is~not~a~multiple~of~4.~ @@ -23760,17 +23794,17 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__str_decode_utf_xxxii:Nw #1#2 \s__str_stop { - \flag_clear:n { __str_overflow } - \flag_clear:n { __str_end } - \flag_clear:n { __str_error } + \flag_clear:N \l__str_overflow_flag + \flag_clear:N \l__str_end_flag + \flag_clear:N \l__str_error_flag \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } - \__kernel_tl_gset:Ne \g__str_result_tl + \__kernel_tl_gset:Nx \g__str_result_tl { \exp_after:wN \__str_decode_utf_xxxii_loop:NNNN #2 \s__str_stop \s__str_stop \s__str_stop \s__str_stop \prg_break_point: } - \__str_if_flag_error:nne { __str_error } { utf32-decode } { } + \__str_if_flag_error:Nne \l__str_error_flag { utf32-decode } { } } \cs_new:Npn \__str_decode_utf_xxxii_loop:NNNN #1#2#3#4 { @@ -23779,13 +23813,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: #1#2#3#4 \s__str \if_int_compare:w \__str_tmp:w #1#4 > \c_zero_int - \flag_raise:n { __str_overflow } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_overflow_flag + \flag_raise:N \l__str_error_flag \int_use:N \c__str_replacement_char_int \else: \if_int_compare:w \__str_tmp:w #2#3 > 16 \exp_stop_f: - \flag_raise:n { __str_overflow } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_overflow_flag + \flag_raise:N \l__str_error_flag \int_use:N \c__str_replacement_char_int \else: \int_eval:n @@ -23799,8 +23833,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_if_empty:nF {#1} { - \flag_raise:n { __str_end } - \flag_raise:n { __str_error } + \flag_raise:N \l__str_end_flag + \flag_raise:N \l__str_error_flag #1 \s__str \int_use:N \c__str_replacement_char_int \s__str } @@ -24084,7 +24118,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__tl_analysis_b:n #1 { - \__kernel_tl_gset:Ne \g__tl_analysis_result_tl + \__kernel_tl_gset:Nx \g__tl_analysis_result_tl { \__tl_analysis_b_loop:w 0; #1 \prg_break_point: @@ -24594,10 +24628,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_set:Nn \tex_escapechar:D { `\\ } } \cs_new:Npn \__regex_toks_use:w { \tex_the:D \tex_toks:D } \cs_new_protected:Npn \__regex_toks_clear:N #1 - { \__regex_toks_set:Nn #1 { } } + { \tex_toks:D #1 = { } } \cs_new_eq:NN \__regex_toks_set:Nn \tex_toks:D \cs_new_protected:Npn \__regex_toks_set:No #1 - { \tex_toks:D #1 \exp_after:wN } + { \tex_toks:D #1 = \exp_after:wN } \cs_new_protected:Npn \__regex_toks_memcpy:NNn #1#2#3 { \prg_replicate:nn {#3} @@ -24607,35 +24641,37 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_incr:N #2 } } -\cs_new_protected:Npn \__regex_toks_put_left:Ne #1#2 +\cs_if_exist:NTF \tex_etokspre:D + { \cs_new_eq:NN \__regex_toks_put_left:Ne \tex_etokspre:D } { - \cs_set_nopar:Npe \__regex_tmp:w { #2 } - \tex_toks:D #1 \exp_after:wN \exp_after:wN \exp_after:wN - { \exp_after:wN \__regex_tmp:w \tex_the:D \tex_toks:D #1 } + \cs_new_protected:Npn \__regex_toks_put_left:Ne #1#2 + { \tex_toks:D #1 = \tex_expanded:D {{ #2 \tex_the:D \tex_toks:D #1 }} } } -\cs_new_protected:Npn \__regex_toks_put_right:Ne #1#2 +\cs_if_exist:NTF \tex_etoksapp:D + { \cs_new_eq:NN \__regex_toks_put_right:Ne \tex_etoksapp:D } { - \cs_set_nopar:Npe \__regex_tmp:w {#2} - \tex_toks:D #1 \exp_after:wN - { \tex_the:D \tex_toks:D \exp_after:wN #1 \__regex_tmp:w } + \cs_new_protected:Npn \__regex_toks_put_right:Ne #1#2 + { \tex_toks:D #1 = \tex_expanded:D {{ \tex_the:D \tex_toks:D #1 #2 }} } + } +\cs_if_exist:NTF \tex_toksapp:D + { \cs_new_eq:NN \__regex_toks_put_right:Nn \tex_toksapp:D } + { + \cs_new_protected:Npn \__regex_toks_put_right:Nn #1#2 + { \tex_toks:D #1 = \exp_after:wN { \tex_the:D \tex_toks:D #1 #2 } } } -\cs_new_protected:Npn \__regex_toks_put_right:Nn #1#2 - { \tex_toks:D #1 \exp_after:wN { \tex_the:D \tex_toks:D #1 #2 } } \cs_new:Npn \__regex_curr_cs_to_str: { \exp_after:wN \exp_after:wN \exp_after:wN \cs_to_str:N \l__regex_curr_token_tl } \cs_new:Npn \__regex_intarray_item:NnF #1#2 - { \exp_args:Nf \__regex_intarray_item_aux:nNF { \int_eval:n {#2} } #1 } + { \exp_args:No \__regex_intarray_item_aux:nNF { \tex_the:D \__regex_int_eval:w #2 } #1 } \cs_new:Npn \__regex_intarray_item_aux:nNF #1#2 { \if_int_compare:w #1 > \c_zero_int - \exp_after:wN \use_i:nn - \else: - \exp_after:wN \use_ii:nn + \exp_after:wN \use_ii:nnn \fi: - { \__kernel_intarray_item:Nn #2 {#1} } + \use_ii:nn { \__kernel_intarray_item:Nn #2 {#1} } } \cs_new:Npn \__regex_maplike_break: { \prg_map_break:Nn \__regex_maplike_break: { } } @@ -24731,14 +24767,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w \l__regex_curr_char_int > `Z \exp_stop_f: \if_int_compare:w \l__regex_curr_char_int > `z \exp_stop_f: \else: \if_int_compare:w \l__regex_curr_char_int < `a \exp_stop_f: \else: - \int_sub:Nn \l__regex_case_changed_char_int - { \c__regex_ascii_lower_int } + \int_sub:Nn \l__regex_case_changed_char_int \c__regex_ascii_lower_int \fi: \fi: \else: \if_int_compare:w \l__regex_curr_char_int < `A \exp_stop_f: \else: - \int_add:Nn \l__regex_case_changed_char_int - { \c__regex_ascii_lower_int } + \int_add:Nn \l__regex_case_changed_char_int \c__regex_ascii_lower_int \fi: \fi: \cs_set_eq:NN \__regex_maybe_compute_ccc: \prg_do_nothing: @@ -24756,12 +24790,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: 1000000 \or: 4000000 \else: 1*0 \fi: } -\cs_new_protected:Npn \__regex_item_catcode:nT #1 +\prg_new_protected_conditional:Npnn \__regex_item_catcode:n #1 { T } { - \if_int_odd:w \int_eval:n { #1 / \__regex_item_catcode: } \exp_stop_f: - \exp_after:wN \use:n + \if_int_odd:w \__regex_int_eval:w #1 / \__regex_item_catcode: \scan_stop: + \prg_return_true: \else: - \exp_after:wN \use_none:n + \prg_return_false: \fi: } \cs_new_protected:Npn \__regex_item_catcode_reverse:nT #1#2 @@ -24776,9 +24810,9 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_item_exact_cs:n #1 { - \int_compare:nNnTF \l__regex_curr_catcode_int = 0 + \int_compare:nNnTF \l__regex_curr_catcode_int = \c_zero_int { - \__kernel_tl_set:Ne \l__regex_internal_a_tl + \__kernel_tl_set:Nx \l__regex_internal_a_tl { \scan_stop: \__regex_curr_cs_to_str: \scan_stop: } \tl_if_in:noTF { \scan_stop: #1 \scan_stop: } \l__regex_internal_a_tl @@ -24788,7 +24822,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_item_cs:n #1 { - \int_compare:nNnT \l__regex_curr_catcode_int = 0 + \int_compare:nNnT \l__regex_curr_catcode_int = \c_zero_int { \group_begin: \__regex_single_match: @@ -24888,7 +24922,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_set:Npn \__regex_escape_escaped:N ##1 { #2 } \cs_set:Npn \__regex_escape_raw:N ##1 { #3 } \__regex_standard_escapechar: - \__kernel_tl_gset:Ne \g__regex_internal_tl + \__kernel_tl_gset:Nx \g__regex_internal_tl { \__kernel_str_to_other_fast:n {#4} } \tl_put_right:Ne \l__regex_internal_a_tl { @@ -25016,13 +25050,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \msg_expandable_error:nnn { regex } { x-missing-rbrace } {#1} \__regex_escape_loop:N #1 } -\prg_new_conditional:Npnn \__regex_hexadecimal_use:N #1 { TF } +\cs_new:Npn \__regex_hexadecimal_use:NTF #1 { - \if_int_compare:w 1 < "1 \token_to_str:N #1 \exp_stop_f: - #1 \prg_return_true: + \if_int_compare:w \c_one_int < "1 \token_to_str:N #1 \exp_stop_f: + #1 \else: \if_case:w - \int_eval:n { \exp_after:wN ` \token_to_str:N #1 - `a } + \__regex_int_eval:w \exp_after:wN ` \token_to_str:N #1 - `a \scan_stop: A \or: B \or: C @@ -25030,51 +25064,64 @@ Type H <return> for immediate help}\def~{\errmessage{% \or: E \or: F \else: - \prg_return_false: - \exp_after:wN \use_none:n + \exp_after:wN \exp_after:wN \exp_after:wN \use_iii:nnn \fi: - \prg_return_true: \fi: + \use_i:nn } \prg_new_conditional:Npnn \__regex_char_if_special:N #1 { TF } { - \if_int_compare:w `#1 > `Z \exp_stop_f: - \if_int_compare:w `#1 > `z \exp_stop_f: - \if_int_compare:w `#1 < \c__regex_ascii_max_int - \prg_return_true: \else: \prg_return_false: \fi: - \else: - \if_int_compare:w `#1 < `a \exp_stop_f: - \prg_return_true: \else: \prg_return_false: \fi: - \fi: + \if:w + T + \if_int_compare:w `#1 > `Z \exp_stop_f: + \if_int_compare:w `#1 > `z \exp_stop_f: + \if_int_compare:w `#1 < \c__regex_ascii_max_int + \else: F \fi: + \else: + \if_int_compare:w `#1 < `a \exp_stop_f: + \else: F \fi: + \fi: + \else: + \if_int_compare:w `#1 > `9 \exp_stop_f: + \if_int_compare:w `#1 < `A \exp_stop_f: + \else: F \fi: + \else: + \if_int_compare:w `#1 < `0 \exp_stop_f: + \if_int_compare:w `#1 < `\ \exp_stop_f: + F \fi: + \else: F \fi: + \fi: + \fi: + T + \prg_return_true: \else: - \if_int_compare:w `#1 > `9 \exp_stop_f: - \if_int_compare:w `#1 < `A \exp_stop_f: - \prg_return_true: \else: \prg_return_false: \fi: - \else: - \if_int_compare:w `#1 < `0 \exp_stop_f: - \if_int_compare:w `#1 < `\ \exp_stop_f: - \prg_return_false: \else: \prg_return_true: \fi: - \else: \prg_return_false: \fi: - \fi: + \prg_return_false: \fi: } \prg_new_conditional:Npnn \__regex_char_if_alphanumeric:N #1 { TF } { - \if_int_compare:w `#1 > `Z \exp_stop_f: - \if_int_compare:w `#1 > `z \exp_stop_f: - \prg_return_false: - \else: - \if_int_compare:w `#1 < `a \exp_stop_f: - \prg_return_false: \else: \prg_return_true: \fi: - \fi: + \if:w + T + \if_int_compare:w `#1 > `Z \exp_stop_f: + \if_int_compare:w `#1 > `z \exp_stop_f: + F + \else: + \if_int_compare:w `#1 < `a \exp_stop_f: + F \fi: + \fi: + \else: + \if_int_compare:w `#1 > `9 \exp_stop_f: + \if_int_compare:w `#1 < `A \exp_stop_f: + F \fi: + \else: + \if_int_compare:w `#1 < `0 \exp_stop_f: + F \fi: + \fi: + \fi: + T + \prg_return_true: \else: - \if_int_compare:w `#1 > `9 \exp_stop_f: - \if_int_compare:w `#1 < `A \exp_stop_f: - \prg_return_false: \else: \prg_return_true: \fi: - \else: - \if_int_compare:w `#1 < `0 \exp_stop_f: - \prg_return_false: \else: \prg_return_true: \fi: - \fi: + \prg_return_false: \fi: } \int_new:N \l__regex_group_level_int @@ -25104,17 +25151,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \l__regex_internal_regex \c__regex_no_match_regex \seq_new:N \l__regex_show_prefix_seq \int_new:N \l__regex_show_lines_int -\prg_new_conditional:Npnn \__regex_two_if_eq:NNNN #1#2#3#4 { TF } +\cs_new:Npn \__regex_two_if_eq:NNNNTF #1#2#3#4 { \if_meaning:w #1 #3 \if:w #2 #4 - \prg_return_true: - \else: - \prg_return_false: + \exp_after:wN \exp_after:wN \exp_after:wN \use_ii:nnn \fi: - \else: - \prg_return_false: \fi: + \use_ii:nn } \cs_new_protected:Npn \__regex_get_digits:NTFw #1#2#3#4#5 { @@ -25128,70 +25172,63 @@ Type H <return> for immediate help}\def~{\errmessage{% { #3 \__regex_get_digits_loop:nw {#1} } { \scan_stop: #1 #2 #3 } } -\prg_new_conditional:Npnn \__regex_if_raw_digit:NN #1#2 { TF } +\cs_new:Npn \__regex_if_raw_digit:NNTF #1#2 { \if_meaning:w \__regex_compile_raw:N #1 - \if_int_compare:w 1 < 1 #2 \exp_stop_f: - \prg_return_true: - \else: - \prg_return_false: + \if_int_compare:w \c_one_int < 1 #2 \exp_stop_f: + \exp_after:wN \exp_after:wN \exp_after:wN \use_ii:nnn \fi: - \else: - \prg_return_false: \fi: + \use_ii:nn } -\cs_new:Npn \__regex_if_in_class:TF +\prg_new_conditional:Npnn \__regex_if_in_class: { TF } { \if_int_odd:w \l__regex_mode_int - \exp_after:wN \use_i:nn + \prg_return_true: \else: - \exp_after:wN \use_ii:nn + \prg_return_false: \fi: } \cs_new:Npn \__regex_if_in_cs:TF { \if_int_odd:w \l__regex_mode_int - \exp_after:wN \use_ii:nn \else: \if_int_compare:w \l__regex_mode_int < \c__regex_outer_mode_int - \exp_after:wN \exp_after:wN \exp_after:wN \use_i:nn - \else: - \exp_after:wN \exp_after:wN \exp_after:wN \use_ii:nn + \exp_after:wN \exp_after:wN \exp_after:wN \use_ii:nnn \fi: \fi: + \use_ii:nn } \cs_new:Npn \__regex_if_in_class_or_catcode:TF { \if_int_odd:w \l__regex_mode_int - \exp_after:wN \use_i:nn \else: \if_int_compare:w \l__regex_mode_int > \c__regex_outer_mode_int - \exp_after:wN \exp_after:wN \exp_after:wN \use_i:nn \else: - \exp_after:wN \exp_after:wN \exp_after:wN \use_ii:nn + \exp_after:wN \exp_after:wN \exp_after:wN \use_iii:nnn \fi: \fi: + \use_i:nn } -\cs_new:Npn \__regex_if_within_catcode:TF +\prg_new_conditional:Npnn \__regex_if_within_catcode: { TF } { \if_int_compare:w \l__regex_mode_int > \c__regex_outer_mode_int - \exp_after:wN \use_i:nn + \prg_return_true: \else: - \exp_after:wN \use_ii:nn + \prg_return_false: \fi: } \cs_new_protected:Npn \__regex_chk_c_allowed:T { \if_int_compare:w \l__regex_mode_int = \c__regex_outer_mode_int - \exp_after:wN \use:n \else: \if_int_compare:w \l__regex_mode_int = \c__regex_class_mode_int - \exp_after:wN \exp_after:wN \exp_after:wN \use:n \else: \msg_error:nn { regex } { c-bad-mode } - \exp_after:wN \exp_after:wN \exp_after:wN \use_none:n + \exp_after:wN \use_i:nnn \fi: \fi: + \use:n } \cs_new_protected:Npn \__regex_mode_quit_c: { @@ -25230,7 +25267,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \msg_error:nne { regex } { missing-rparen } { \int_use:N \l__regex_group_level_int } \prg_replicate:nn - { \l__regex_group_level_int } + \l__regex_group_level_int { \tl_build_put_right:Nn \l__regex_build_tl { @@ -25393,7 +25430,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_compile_special:N \c_right_brace_str } { \exp_args:No \__regex_compile_quantifier_lazyness:nnNN - { \int_use:N \l__regex_internal_a_int } { 0 } + { \int_use:N \l__regex_internal_a_int } 0 } { \__regex_compile_special:N , } { @@ -25471,21 +25508,19 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 #3 } } -\prg_new_protected_conditional:Npnn \__regex_if_end_range:NN #1#2 { TF } +\cs_new_protected:Npn \__regex_if_end_range:NNTF #1#2 { \if_meaning:w \__regex_compile_raw:N #1 - \prg_return_true: \else: \if_meaning:w \__regex_compile_special:N #1 \if_charcode:w ] #2 - \prg_return_false: - \else: - \prg_return_true: + \use_i:nn \fi: \else: - \prg_return_false: + \exp_after:wN \exp_after:wN \exp_after:wN \use_iii:nnn \fi: \fi: + \use_i:nn } \cs_new_protected:Npn \__regex_compile_range:Nw #1#2#3 { @@ -25667,12 +25702,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_two_if_eq:NNNNTF #5 #6 \__regex_compile_special:N ^ { \bool_set_false:N \l__regex_internal_bool - \__kernel_tl_set:Ne \l__regex_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: \__regex_compile_class_posix_loop:w } { \bool_set_true:N \l__regex_internal_bool - \__kernel_tl_set:Ne \l__regex_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: \__regex_compile_class_posix_loop:w #5 #6 } } @@ -25903,7 +25938,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_compile_c_lbrack_add:N #1 { - \if_int_odd:w \int_eval:n { \l__regex_catcodes_int / #1 } \exp_stop_f: + \if_int_odd:w \__regex_int_eval:w \l__regex_catcodes_int / #1 \scan_stop: \else: \int_add:Nn \l__regex_catcodes_int {#1} \fi: @@ -25932,7 +25967,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \msg_error:nnn { regex } { cu-lbrace } { c } } { \exp_after:wN \__regex_compile_raw:N \c_left_brace_str } } -\flag_new:n { __regex_cs } +\flag_new:N \l__regex_cs_flag \cs_new_protected:cpn { __regex_compile_ \c_right_brace_str : } { \__regex_if_in_cs:TF @@ -25942,15 +25977,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_compile_end_cs: { \__regex_compile_end: - \flag_clear:n { __regex_cs } - \__kernel_tl_set:Ne \l__regex_internal_a_tl + \flag_clear:N \l__regex_cs_flag + \__kernel_tl_set:Nx \l__regex_internal_a_tl { \exp_after:wN \__regex_compile_cs_aux:Nn \l__regex_internal_regex \q__regex_nil \q__regex_nil \q__regex_recursion_stop } \exp_args:Ne \__regex_compile_one:n { - \flag_if_raised:nTF { __regex_cs } + \flag_if_raised:NTF \l__regex_cs_flag { \__regex_item_cs:n { \exp_not:o \l__regex_internal_regex } } { \__regex_item_exact_cs:n @@ -25969,7 +26004,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_compile_cs_aux:Nn } { - \__regex_quark_if_nil:NF #1 { \flag_ensure_raised:n { __regex_cs } } + \__regex_quark_if_nil:NF #1 { \flag_ensure_raised:N \l__regex_cs_flag } \__regex_use_none_delimit_by_q_recursion_stop:w } } @@ -25981,7 +26016,7 @@ Type H <return> for immediate help}\def~{\errmessage{% {#2} { \tl_if_head_eq_meaning_p:nN {#3} \__regex_item_caseful_equal:n } { \int_compare_p:nNn { \tl_count:n {#3} } = { 2 } } - { \int_compare_p:nNn {#5} = { 0 } } + { \int_compare_p:nNn {#5} = \c_zero_int } } { \prg_replicate:nn {#4} @@ -25991,7 +26026,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_quark_if_nil:NF #1 { - \flag_ensure_raised:n { __regex_cs } + \flag_ensure_raised:N \l__regex_cs_flag \__regex_use_i_delimit_by_q_recursion_stop:nw } \__regex_use_none_delimit_by_q_recursion_stop:w @@ -26012,7 +26047,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_two_if_eq:NNNNTF #2 #3 \__regex_compile_special:N \c_left_brace_str { \tl_set:Nn \l__regex_internal_b_tl {#1} - \__kernel_tl_set:Ne \l__regex_internal_a_tl { \if_false: } \fi: + \__kernel_tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi: \__regex_compile_u_loop:NN } { @@ -26097,7 +26132,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_compile_u_in_cs: { - \__kernel_tl_gset:Ne \g__regex_internal_tl + \__kernel_tl_gset:Nx \g__regex_internal_tl { \exp_args:No \__kernel_str_to_other_fast:n { \l__regex_internal_a_tl } @@ -26153,10 +26188,10 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__regex_clean_int_aux:N #1 { - \if_int_compare:w 1 < 1 #1 ~ + \if_int_compare:w \c_one_int < 1 #1 ~ #1 \else: - \exp_after:wN \str_map_break: + \str_map_break:n \fi: } \cs_new:Npn \__regex_clean_regex:n #1 @@ -26177,7 +26212,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__regex_clean_branch_loop:n #1 { - \tl_if_single:nF {#1} { \prg_break: } + \tl_if_single:nF {#1} \prg_break: \token_case_meaning:NnF #1 { \__regex_command_K: { #1 \__regex_clean_branch_loop:n } @@ -26187,7 +26222,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_group_no_capture:nnnN { #1 \__regex_clean_group:nnnN } \__regex_group_resetting:nnnN { #1 \__regex_clean_group:nnnN } } - { \prg_break: } + \prg_break: } \cs_new:Npn \__regex_clean_assertion:Nn #1#2 { @@ -26208,16 +26243,16 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_clean_bool:n {#1} { \__regex_clean_class:n {#2} } - { \int_max:nn { 0 } { \__regex_clean_int:n {#3} } } - { \int_max:nn { -1 } { \__regex_clean_int:n {#4} } } + { \int_max:nn \c_zero_int { \__regex_clean_int:n {#3} } } + { \int_max:nn { -\c_one_int } { \__regex_clean_int:n {#4} } } \__regex_clean_bool:n {#5} \__regex_clean_branch_loop:n } \cs_new:Npn \__regex_clean_group:nnnN #1#2#3#4 { { \__regex_clean_regex:n {#1} } - { \int_max:nn { 0 } { \__regex_clean_int:n {#2} } } - { \int_max:nn { -1 } { \__regex_clean_int:n {#3} } } + { \int_max:nn \c_zero_int { \__regex_clean_int:n {#2} } } + { \int_max:nn { -\c_one_int } { \__regex_clean_int:n {#3} } } \__regex_clean_bool:n {#4} \__regex_clean_branch_loop:n } @@ -26225,7 +26260,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_clean_class_loop:nnn #1 ????? \prg_break_point: } \cs_new:Npn \__regex_clean_class_loop:nnn #1#2#3 { - \tl_if_single:nF {#1} { \prg_break: } + \tl_if_single:nF {#1} \prg_break: \token_case_meaning:NnTF #1 { \__regex_item_cs:n { #1 { \__regex_clean_regex:n {#2} } } @@ -26257,10 +26292,10 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_clean_class_loop:nnn } { - \exp_args:Nf \str_case:nnTF + \exp_args:Ne \str_case:nnTF { - \exp_args:Nf \str_range:nnn - { \cs_to_str:N #1 } { 1 } { 13 } + \exp_args:Ne \str_range:nnn + { \cs_to_str:N #1 } \c_one_int { 13 } } { { __regex_prop_ } { } @@ -26270,7 +26305,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #1 \__regex_clean_class_loop:nnn {#2} {#3} } - { \prg_break: } + \prg_break: } } } @@ -26398,14 +26433,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_zero:N \l__regex_show_lines_int \__regex_show_push:n {~} #2 - \int_compare:nTF { \l__regex_show_lines_int = 0 } + \int_compare:nTF { \l__regex_show_lines_int = \c_zero_int } { \group_end: \__regex_show_one:n { \bool_if:NTF #1 { Fail } { Pass } } } { \bool_if:nTF - { #1 && \int_compare_p:n { \l__regex_show_lines_int = 1 } } + { #1 && \int_compare_p:n { \l__regex_show_lines_int = \c_one_int } } { \group_end: #2 @@ -26497,7 +26532,7 @@ Type H <return> for immediate help}\def~{\errmessage{% % \__regex_build_new_state: \__regex_toks_put_left:Ne \l__regex_left_state_int - { \__regex_action_submatch:nN { 0 } < } + { \__regex_action_submatch:nN \c_zero_int < } \__regex_push_lr_states: \int_zero:N \l__regex_case_max_group_int \int_gzero:N \g__regex_case_int @@ -26511,18 +26546,15 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_case_build_loop:n #1 { - \int_set:Nn \l__regex_capturing_group_int { 1 } + \int_set_eq:NN \l__regex_capturing_group_int \c_one_int \__regex_compile_use:n {#1} \int_set:Nn \l__regex_case_max_group_int - { - \int_max:nn { \l__regex_case_max_group_int } - { \l__regex_capturing_group_int } - } + { \int_max:nn \l__regex_case_max_group_int \l__regex_capturing_group_int } \seq_pop:NN \l__regex_right_state_seq \l__regex_internal_a_tl \int_set:Nn \l__regex_right_state_int \l__regex_internal_a_tl \__regex_toks_put_left:Ne \l__regex_right_state_int { - \__regex_action_submatch:nN { 0 } > + \__regex_action_submatch:nN \c_zero_int > \int_gset:Nn \g__regex_case_int { \int_use:N \g__regex_case_int } \__regex_action_success: @@ -26562,9 +26594,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_set:Nn \l__regex_right_state_int \l__regex_internal_a_tl } \cs_new_protected:Npn \__regex_build_transition_left:NNN #1#2#3 - { \__regex_toks_put_left:Ne #2 { #1 { \int_eval:n { #3 - #2 } } } } + { \__regex_toks_put_left:Ne #2 { #1 { \tex_the:D \__regex_int_eval:w #3 - #2 } } } \cs_new_protected:Npn \__regex_build_transition_right:nNn #1#2#3 - { \__regex_toks_put_right:Ne #2 { #1 { \int_eval:n { #3 - #2 } } } } + { \__regex_toks_put_right:Ne #2 { #1 { \tex_the:D \__regex_int_eval:w #3 - #2 } } } \cs_new_protected:Npn \__regex_build_new_state: { \__regex_toks_clear:N \l__regex_max_state_int @@ -26578,11 +26610,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_toks_put_right:Ne \l__regex_left_state_int { \if_meaning:w \c_true_bool #1 - #2 { \int_eval:n { #3 - \l__regex_left_state_int } } - #4 { \int_eval:n { #5 - \l__regex_left_state_int } } + #2 { \tex_the:D \__regex_int_eval:w #3 - \l__regex_left_state_int } + #4 { \tex_the:D \__regex_int_eval:w #5 - \l__regex_left_state_int } \else: - #4 { \int_eval:n { #5 - \l__regex_left_state_int } } - #2 { \int_eval:n { #3 - \l__regex_left_state_int } } + #4 { \tex_the:D \__regex_int_eval:w #5 - \l__regex_left_state_int } + #2 { \tex_the:D \__regex_int_eval:w #3 - \l__regex_left_state_int } \fi: } } @@ -26629,7 +26661,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_class_repeat:n {#1} \int_set:Nn \l__regex_internal_a_int - { \l__regex_max_state_int + #2 - 1 } + { \l__regex_max_state_int + #2 - \c_one_int } \prg_replicate:nn { #2 } { \__regex_build_transitions_lazyness:NNNNN #3 @@ -26682,8 +26714,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \use_none:nn #3 { \int_set:Nn \l__regex_capturing_group_int {#1} } \int_set:Nn \l__regex_capturing_group_int {#2} #3 {#4} - \exp_args:Nf \__regex_group_resetting_loop:nnNn - { \int_max:nn {#1} { \l__regex_capturing_group_int } } + \exp_args:Ne \__regex_group_resetting_loop:nnNn + { \int_max:nn {#1} \l__regex_capturing_group_int } {#2} } \cs_new_protected:Npn \__regex_branch:n #1 @@ -26702,7 +26734,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \if_int_compare:w #2 = \c_zero_int \int_set:Nn \l__regex_max_state_int - { \l__regex_left_state_int - 1 } + { \l__regex_left_state_int - \c_one_int } \__regex_build_new_state: \else: \__regex_group_repeat_aux:n {#2} @@ -26724,14 +26756,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \l__regex_right_state_int \l__regex_max_state_int \int_set_eq:NN \l__regex_internal_a_int \l__regex_left_state_int \int_set_eq:NN \l__regex_internal_b_int \l__regex_max_state_int - \if_int_compare:w \int_eval:n {#1} > \c_one_int + \if_int_compare:w \__regex_int_eval:w #1 > \c_one_int \int_set:Nn \l__regex_internal_c_int { - ( #1 - 1 ) + ( #1 - \c_one_int ) * ( \l__regex_internal_b_int - \l__regex_internal_a_int ) } - \int_add:Nn \l__regex_right_state_int { \l__regex_internal_c_int } - \int_add:Nn \l__regex_max_state_int { \l__regex_internal_c_int } + \int_add:Nn \l__regex_right_state_int \l__regex_internal_c_int + \int_add:Nn \l__regex_max_state_int \l__regex_internal_c_int \__regex_toks_memcpy:NNn \l__regex_internal_b_int \l__regex_internal_a_int @@ -26744,7 +26776,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_group_submatches:nNN {#1} \l__regex_left_state_int \l__regex_right_state_int \int_set:Nn \l__regex_internal_a_int - { \l__regex_left_state_int - 1 } + { \l__regex_left_state_int - \c_one_int } \__regex_build_transition_right:nNn \__regex_action_free:n \l__regex_right_state_int \l__regex_internal_a_int \__regex_build_new_state: @@ -26784,7 +26816,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \l__regex_left_state_int \l__regex_max_state_int } \else: - \prg_replicate:nn { #3 - 1 } + \prg_replicate:nn { #3 - \c_one_int } { \int_sub:Nn \l__regex_right_state_int { \l__regex_internal_b_int - \l__regex_internal_a_int } @@ -26793,7 +26825,7 @@ Type H <return> for immediate help}\def~{\errmessage{% } \if_int_compare:w #2 = \c_zero_int \int_set:Nn \l__regex_right_state_int - { \l__regex_left_state_int - 1 } + { \l__regex_left_state_int - \c_one_int } \else: \int_sub:Nn \l__regex_right_state_int { \l__regex_internal_b_int - \l__regex_internal_a_int } @@ -26814,8 +26846,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_action_free:n { - \int_eval:n - { \l__regex_right_state_int - \l__regex_left_state_int } + \tex_the:D \__regex_int_eval:w + \l__regex_right_state_int - \l__regex_left_state_int } } \bool_if:NT #1 { { } } @@ -26853,12 +26885,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_build_new_state: \__regex_toks_put_right:Ne \l__regex_left_state_int { - \__regex_action_submatch:nN { 0 } < + \__regex_action_submatch:nN \c_zero_int < \bool_set_true:N \l__regex_fresh_thread_bool \__regex_action_free:n { - \int_eval:n - { \l__regex_right_state_int - \l__regex_left_state_int } + \tex_the:D \__regex_int_eval:w + \l__regex_right_state_int - \l__regex_left_state_int } \bool_set_false:N \l__regex_fresh_thread_bool } @@ -26918,10 +26950,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \bool_gset_false:N \g__regex_success_bool \int_step_inline:nnn - \l__regex_min_state_int { \l__regex_max_state_int - 1 } + \l__regex_min_state_int { \l__regex_max_state_int - \c_one_int } { \__kernel_intarray_gset:Nnn - \g__regex_state_active_intarray {##1} { 1 } + \g__regex_state_active_intarray {##1} \c_one_int } \int_zero:N \l__regex_step_int \int_set:Nn \l__regex_min_pos_int { 2 } @@ -26929,7 +26961,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_set:Nn \l__regex_last_char_success_int { -2 } \tl_build_begin:N \l__regex_matched_analysis_tl \tl_clear:N \l__regex_curr_analysis_tl - \int_set:Nn \l__regex_min_submatch_int { 1 } + \int_set_eq:NN \l__regex_min_submatch_int \c_one_int \int_set_eq:NN \l__regex_submatch_int \l__regex_min_submatch_int \bool_set_false:N \l__regex_empty_success_bool } @@ -26950,8 +26982,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prg_replicate:nn { 2 * \l__regex_capturing_group_int } { 0 , } } \int_set_eq:NN \l__regex_max_thread_int \l__regex_min_thread_int \__regex_store_state:n { \l__regex_min_state_int } - \int_set:Nn \l__regex_curr_pos_int - { \l__regex_start_pos_int - 1 } + \int_set:Nn \l__regex_curr_pos_int { \l__regex_start_pos_int - \c_one_int } \int_set_eq:NN \l__regex_curr_char_int \l__regex_last_char_success_int \tl_build_get_intermediate:NN \l__regex_matched_analysis_tl \l__regex_internal_a_tl \exp_args:NNf \__regex_match_once_init_aux: @@ -27003,15 +27034,15 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_set_eq:NN \l__regex_max_thread_int \l__regex_min_thread_int \int_step_function:nnN - { \l__regex_min_thread_int } - { \l__regex_max_thread_int - 1 } + \l__regex_min_thread_int + { \l__regex_max_thread_int - \c_one_int } \__regex_match_one_active:n } \prg_break_point: \bool_set_false:N \l__regex_fresh_thread_bool \if_int_compare:w \l__regex_max_thread_int > \l__regex_min_thread_int \if_int_compare:w -2 < \l__regex_curr_char_int - \exp_after:wN \exp_after:wN \exp_after:wN \use_none:n + \exp_after:wN \use_i:nn \fi: \fi: \l__regex_every_match_tl @@ -27021,25 +27052,25 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_use_state_and_submatches:w \__kernel_intarray_range_to_clist:Nnn \g__regex_thread_info_intarray - { 1 + #1 * (\l__regex_capturing_group_int * 2 + 1) } - { (1 + #1) * (\l__regex_capturing_group_int * 2 + 1) } + { \c_one_int + #1 * (\l__regex_capturing_group_int * 2 + \c_one_int) } + { (\c_one_int + #1) * (\l__regex_capturing_group_int * 2 + \c_one_int) } ; } \cs_new_protected:Npn \__regex_use_state: { \__kernel_intarray_gset:Nnn \g__regex_state_active_intarray - { \l__regex_curr_state_int } { \l__regex_step_int } + \l__regex_curr_state_int \l__regex_step_int \__regex_toks_use:w \l__regex_curr_state_int \__kernel_intarray_gset:Nnn \g__regex_state_active_intarray - { \l__regex_curr_state_int } - { \int_eval:n { \l__regex_step_int + 1 } } + \l__regex_curr_state_int + { \__regex_int_eval:w \l__regex_step_int + \c_one_int \scan_stop: } } \cs_new_protected:Npn \__regex_use_state_and_submatches:w #1 , #2 ; { \int_set:Nn \l__regex_curr_state_int {#1} \if_int_compare:w \__kernel_intarray_item:Nn \g__regex_state_active_intarray - { \l__regex_curr_state_int } + \l__regex_curr_state_int < \l__regex_step_int \tl_set:Nn \l__regex_curr_submatches_tl { #2 , } \exp_after:wN \__regex_use_state: @@ -27066,7 +27097,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \if_int_compare:w \__kernel_intarray_item:Nn \g__regex_state_active_intarray - { \l__regex_curr_state_int } + \l__regex_curr_state_int #1 \exp_after:wN \__regex_use_state: \fi: @@ -27079,8 +27110,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_action_cost:n #1 { - \exp_args:Ne \__regex_store_state:n - { \int_eval:n { \l__regex_curr_state_int + #1 } } + \exp_args:No \__regex_store_state:n + { \tex_the:D \__regex_int_eval:w \l__regex_curr_state_int + #1 } } \cs_new_protected:Npn \__regex_store_state:n #1 { @@ -27094,8 +27125,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \g__regex_thread_info_intarray { \__regex_int_eval:w - 1 + \l__regex_max_thread_int * - (\l__regex_capturing_group_int * 2 + 1) + \c_one_int + \l__regex_max_thread_int * + (\l__regex_capturing_group_int * 2 + \c_one_int) } { #2 , #1 } } @@ -27165,11 +27196,11 @@ Type H <return> for immediate help}\def~{\errmessage{% { \if_int_compare:w #1 < #2 \exp_stop_f: \else: - \exp_after:wN \prg_break: + \prg_break:n \fi: \__regex_toks_use:w #1 \exp_stop_f: \exp_after:wN \__regex_query_range_loop:ww - \int_value:w \__regex_int_eval:w #1 + 1 ; #2 ; + \int_value:w \__regex_int_eval:w #1 + \c_one_int ; #2 ; } \cs_new:Npn \__regex_query_submatch:n #1 { @@ -27179,22 +27210,21 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_submatch_balance:n #1 { - \int_eval:n - { - \__regex_intarray_item:NnF \g__regex_balance_intarray - { - \__kernel_intarray_item:Nn - \g__regex_submatch_end_intarray {#1} - } - { 0 } - - - \__regex_intarray_item:NnF \g__regex_balance_intarray - { - \__kernel_intarray_item:Nn - \g__regex_submatch_begin_intarray {#1} - } - { 0 } - } + \tex_the:D \__regex_int_eval:w + \__regex_intarray_item:NnF \g__regex_balance_intarray + { + \__kernel_intarray_item:Nn + \g__regex_submatch_end_intarray {#1} + } + \c_zero_int + - + \__regex_intarray_item:NnF \g__regex_balance_intarray + { + \__kernel_intarray_item:Nn + \g__regex_submatch_begin_intarray {#1} + } + \c_zero_int + \scan_stop: } \cs_new_protected:Npn \__regex_replacement:n { \__regex_replacement_apply:Nn \__regex_replacement_set:n } @@ -27292,7 +27322,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \tl_build_put_right:Nn \l__regex_build_tl } \cs_new_protected:Npn \__regex_replacement_normal:n #1 { - \int_compare:nNnTF { \l__regex_replacement_csnames_int } > 0 + \int_compare:nNnTF \l__regex_replacement_csnames_int > \c_zero_int { \exp_args:No \__regex_replacement_put:n { \token_to_str:N #1 } } { \tl_if_empty:NTF \l__regex_replacement_category_tl @@ -27340,7 +27370,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_if_exist_use:cF { __regex_replacement_#1:w } { - \if_int_compare:w 1 < 1#1 \exp_stop_f: + \if_int_compare:w \c_one_int < 1#1 \exp_stop_f: \__regex_replacement_put_submatch:n {#1} \else: \__regex_replacement_normal:n {#1} @@ -27353,16 +27383,16 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_replacement_put_submatch_aux:n {#1} \else: \msg_expandable_error:nnff { regex } { submatch-too-big } - {#1} { \int_eval:n { \l__regex_capturing_group_int - 1 } } + {#1} { \int_eval:n { \l__regex_capturing_group_int - \c_one_int } } \fi: } \cs_new_protected:Npn \__regex_replacement_put_submatch_aux:n #1 { \tl_build_put_right:Nn \l__regex_build_tl - { \__regex_query_submatch:n { \int_eval:n { #1 + ##1 } } } + { \__regex_query_submatch:n { \__regex_int_eval:w #1 + ##1 \scan_stop: } } \if_int_compare:w \l__regex_replacement_csnames_int = \c_zero_int \tl_gput_right:Nn \g__regex_balance_tl - { + \__regex_submatch_balance:n { \int_eval:n { #1 + ##1 } } } + { + \__regex_submatch_balance:n { \__regex_int_eval:w #1 + ##1 \scan_stop: } } \fi: } \cs_new_protected:Npn \__regex_replacement_g:w #1#2 @@ -27375,7 +27405,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \token_if_eq_meaning:NNTF #1 \__regex_replacement_normal:n { - \if_int_compare:w 1 < 1#2 \exp_stop_f: + \if_int_compare:w \c_one_int < 1#2 \exp_stop_f: #2 \exp_after:wN \use_i:nnn \exp_after:wN \__regex_replacement_g_digits:NN @@ -27451,7 +27481,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \token_if_eq_meaning:NNTF \prg_do_nothing: #3 { \msg_error:nn { regex } { replacement-catcode-end } } { - \int_compare:nNnTF { \l__regex_replacement_csnames_int } > 0 + \int_compare:nNnTF \l__regex_replacement_csnames_int > \c_zero_int { \msg_error:nnnn { regex } { replacement-catcode-in-cs } {#1} {#3} @@ -27483,7 +27513,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \cs_new_protected:Npn \__regex_replacement_char:nNN #1#2#3 { - \tex_lccode:D 0 = `#3 \scan_stop: + \tex_lccode:D \c_zero_int = `#3 \scan_stop: \tex_lowercase:D { \__regex_replacement_put:n {#1} } } \char_set_catcode_active:N \^^@ @@ -27638,7 +27668,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_generate_conditional_variant:Nnn #2 { nV } { T , F , TF } \cs_generate_variant:Nn #3 { NV } \prg_generate_conditional_variant:Nnn #3 { NV } { T , F , TF } - } \__regex_tmp:w \__regex_extract_once:nnN \regex_extract_once:nnN \regex_extract_once:NnN @@ -27696,8 +27725,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \regex_replace_case_all:nNF #1#2 { \regex_replace_case_all:nNTF {#1} {#2} { } } \int_new:N \l__regex_match_count_int -\flag_new:n { __regex_begin } -\flag_new:n { __regex_end } +\flag_new:N \l__regex_begin_flag +\flag_new:N \l__regex_end_flag \int_new:N \l__regex_min_submatch_int \int_new:N \l__regex_submatch_int \int_new:N \l__regex_zeroth_submatch_int @@ -27731,7 +27760,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_incr:N \l__regex_curr_pos_int \__regex_toks_set:Nn \l__regex_curr_pos_int {#1} \__kernel_intarray_gset:Nnn \g__regex_balance_intarray - { \l__regex_curr_pos_int } { \l__regex_balance_int } + \l__regex_curr_pos_int \l__regex_balance_int \if_case:w "#2 \exp_stop_f: \or: \int_incr:N \l__regex_balance_int \or: \int_decr:N \l__regex_balance_int @@ -27803,29 +27832,29 @@ Type H <return> for immediate help}\def~{\errmessage{% \l__regex_start_pos_int < \l__regex_success_pos_int \__regex_extract: \__kernel_intarray_gset:Nnn \g__regex_submatch_prev_intarray - { \l__regex_zeroth_submatch_int } { 0 } + \l__regex_zeroth_submatch_int \c_zero_int \__kernel_intarray_gset:Nnn \g__regex_submatch_end_intarray - { \l__regex_zeroth_submatch_int } + \l__regex_zeroth_submatch_int { \__kernel_intarray_item:Nn \g__regex_submatch_begin_intarray - { \l__regex_zeroth_submatch_int } + \l__regex_zeroth_submatch_int } \__kernel_intarray_gset:Nnn \g__regex_submatch_begin_intarray - { \l__regex_zeroth_submatch_int } - { \l__regex_start_pos_int } + \l__regex_zeroth_submatch_int + \l__regex_start_pos_int \fi: } #1 \__regex_match:n {#2} \__regex_query_set:n {#2} \__kernel_intarray_gset:Nnn \g__regex_submatch_prev_intarray - { \l__regex_submatch_int } { 0 } + \l__regex_submatch_int \c_zero_int \__kernel_intarray_gset:Nnn \g__regex_submatch_end_intarray - { \l__regex_submatch_int } - { \l__regex_max_pos_int } + \l__regex_submatch_int + \l__regex_max_pos_int \__kernel_intarray_gset:Nnn \g__regex_submatch_begin_intarray - { \l__regex_submatch_int } - { \l__regex_start_pos_int } + \l__regex_submatch_int + \l__regex_start_pos_int \int_incr:N \l__regex_submatch_int \if_meaning:w \c_true_bool \l__regex_empty_success_bool \if_int_compare:w \l__regex_start_pos_int = \l__regex_max_pos_int @@ -27836,24 +27865,24 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__regex_group_end_extract_seq:N #1 { - \flag_clear:n { __regex_begin } - \flag_clear:n { __regex_end } + \flag_clear:N \l__regex_begin_flag + \flag_clear:N \l__regex_end_flag \cs_set_eq:NN \__regex_tmp:w \scan_stop: - \__kernel_tl_gset:Ne \g__regex_internal_tl + \__kernel_tl_gset:Nx \g__regex_internal_tl { - \int_step_function:nnN { \l__regex_min_submatch_int } - { \l__regex_submatch_int - 1 } \__regex_extract_seq_aux:n + \int_step_function:nnN \l__regex_min_submatch_int + { \l__regex_submatch_int - \c_one_int } \__regex_extract_seq_aux:n \__regex_tmp:w } \int_set:Nn \l__regex_added_begin_int - { \flag_height:n { __regex_begin } } + { \flag_height:N \l__regex_begin_flag } \int_set:Nn \l__regex_added_end_int - { \flag_height:n { __regex_end } } + { \flag_height:N \l__regex_end_flag } \tex_afterassignment:D \__regex_extract_check:w - \__kernel_tl_gset:Ne \g__regex_internal_tl + \__kernel_tl_gset:Nx \g__regex_internal_tl { \g__regex_internal_tl \if_false: { \fi: } } \int_compare:nNnT - { \l__regex_added_begin_int + \l__regex_added_end_int } > 0 + { \l__regex_added_begin_int + \l__regex_added_end_int } > \c_zero_int { \msg_error:nneee { regex } { result-unbalanced } { splitting~or~extracting~submatches } @@ -27889,7 +27918,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w #1 < \c_zero_int \prg_replicate:nn {-#1} { - \flag_raise:n { __regex_begin } + \flag_raise:N \l__regex_begin_flag \exp_not:n { { \if_false: } \fi: } } \fi: @@ -27897,7 +27926,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_int_compare:w #1 > \c_zero_int \prg_replicate:nn {#1} { - \flag_raise:n { __regex_end } + \flag_raise:N \l__regex_end_flag \exp_not:n { \if_false: { \fi: } } } \fi: @@ -27914,7 +27943,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_incr:N \l__regex_added_begin_int \int_incr:N \l__regex_added_end_int \tex_afterassignment:D \__regex_extract_check:w - \__kernel_tl_gset:Ne \g__regex_internal_tl + \__kernel_tl_gset:Nx \g__regex_internal_tl { \exp_after:wN \__regex_extract_check_loop:w \g__regex_internal_tl @@ -27945,15 +27974,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \prg_replicate:nn \l__regex_capturing_group_int { \__kernel_intarray_gset:Nnn \g__regex_submatch_prev_intarray - { \l__regex_submatch_int } { 0 } + \l__regex_submatch_int \c_zero_int \__kernel_intarray_gset:Nnn \g__regex_submatch_case_intarray - { \l__regex_submatch_int } { 0 } + \l__regex_submatch_int \c_zero_int \int_incr:N \l__regex_submatch_int } \__kernel_intarray_gset:Nnn \g__regex_submatch_prev_intarray - { \l__regex_zeroth_submatch_int } { \l__regex_start_pos_int } + \l__regex_zeroth_submatch_int \l__regex_start_pos_int \__kernel_intarray_gset:Nnn \g__regex_submatch_case_intarray - { \l__regex_zeroth_submatch_int } { \g__regex_case_int } + \l__regex_zeroth_submatch_int \g__regex_case_int \int_zero:N \l__regex_internal_a_int \exp_after:wN \__regex_extract_aux:w \l__regex_success_submatches_tl \prg_break_point: \__regex_use_none_delimit_by_q_recursion_stop:w , @@ -27968,7 +27997,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_int_eval:w \l__regex_zeroth_submatch_int + \l__regex_internal_a_int } {#1} \else: \__kernel_intarray_gset:Nnn \g__regex_submatch_end_intarray - { \__regex_int_eval:w \l__regex_zeroth_submatch_int + \l__regex_internal_a_int - \l__regex_capturing_group_int } {#1} + { + \__regex_int_eval:w + \l__regex_zeroth_submatch_int + \l__regex_internal_a_int + - \l__regex_capturing_group_int + } + {#1} \fi: \int_incr:N \l__regex_internal_a_int \__regex_extract_aux:w @@ -27987,20 +28021,16 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_args:No \__regex_query_set:n {#3} #2 \int_set:Nn \l__regex_balance_int + { \__regex_replacement_balance_one_match:n \l__regex_zeroth_submatch_int } + \__kernel_tl_set:Nx \l__regex_internal_a_tl { - \__regex_replacement_balance_one_match:n - { \l__regex_zeroth_submatch_int } - } - \__kernel_tl_set:Ne \l__regex_internal_a_tl - { - \__regex_replacement_do_one_match:n - { \l__regex_zeroth_submatch_int } + \__regex_replacement_do_one_match:n \l__regex_zeroth_submatch_int \__regex_query_range:nn { \__kernel_intarray_item:Nn \g__regex_submatch_end_intarray - { \l__regex_zeroth_submatch_int } + \l__regex_zeroth_submatch_int } - { \l__regex_max_pos_int } + \l__regex_max_pos_int } \__regex_group_end_replace:N #3 } @@ -28018,19 +28048,19 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 \int_set:Nn \l__regex_balance_int { - 0 + \c_zero_int \int_step_function:nnnN - { \l__regex_min_submatch_int } + \l__regex_min_submatch_int \l__regex_capturing_group_int - { \l__regex_submatch_int - 1 } + { \l__regex_submatch_int - \c_one_int } \__regex_replacement_balance_one_match:n } - \__kernel_tl_set:Ne \l__regex_internal_a_tl + \__kernel_tl_set:Nx \l__regex_internal_a_tl { \int_step_function:nnnN - { \l__regex_min_submatch_int } + \l__regex_min_submatch_int \l__regex_capturing_group_int - { \l__regex_submatch_int - 1 } + { \l__regex_submatch_int - \c_one_int } \__regex_replacement_do_one_match:n \__regex_query_range:nn \l__regex_start_pos_int \l__regex_max_pos_int @@ -28040,11 +28070,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_group_end_replace:N #1 { \int_set:Nn \l__regex_added_begin_int - { \int_max:nn { - \l__regex_balance_int } { 0 } } + { \int_max:nn { - \l__regex_balance_int } \c_zero_int } \int_set:Nn \l__regex_added_end_int - { \int_max:nn { \l__regex_balance_int } { 0 } } + { \int_max:nn \l__regex_balance_int \c_zero_int } \__regex_group_end_replace_try: - \int_compare:nNnT { \l__regex_added_begin_int + \l__regex_added_end_int } > 0 + \int_compare:nNnT { \l__regex_added_begin_int + \l__regex_added_end_int } + > \c_zero_int { \msg_error:nneee { regex } { result-unbalanced } { replacing } { \int_use:N \l__regex_added_begin_int } @@ -28056,11 +28087,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_group_end_replace_try: { \tex_afterassignment:D \__regex_group_end_replace_check:w - \__kernel_tl_gset:Ne \g__regex_internal_tl + \__kernel_tl_gset:Nx \g__regex_internal_tl { - \prg_replicate:nn { \l__regex_added_begin_int } { { \if_false: } \fi: } + \prg_replicate:nn \l__regex_added_begin_int { { \if_false: } \fi: } \l__regex_internal_a_tl - \prg_replicate:nn { \l__regex_added_end_int } { \if_false: { \fi: } } + \prg_replicate:nn \l__regex_added_end_int { \if_false: { \fi: } } \if_false: { \fi: } } } @@ -28212,14 +28243,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \use:e { \exp_not:n { \exp_after:wN \l__regex_peek_true_tl \exp:w } - \__regex_replacement_do_one_match:n - { \l__regex_zeroth_submatch_int } + \__regex_replacement_do_one_match:n \l__regex_zeroth_submatch_int \__regex_query_range:nn { \__kernel_intarray_item:Nn \g__regex_submatch_end_intarray - { \l__regex_zeroth_submatch_int } + \l__regex_zeroth_submatch_int } - { \l__regex_max_pos_int } + \l__regex_max_pos_int \exp_end: } } @@ -28255,10 +28285,14 @@ Type H <return> for immediate help}\def~{\errmessage{% { \if_case:w \l__regex_replacement_csnames_int \tl_build_put_right:Nn \l__regex_build_tl - { \__regex_query_submatch:n { \int_eval:n { #1 + ##1 } } } + { \__regex_query_submatch:n { \__regex_int_eval:w #1 + ##1 \scan_stop: } } \else: \tl_build_put_right:Nn \l__regex_build_tl - { \exp:w \__regex_query_submatch:n { \int_eval:n { #1 + ##1 } } \exp_end: } + { + \exp:w + \__regex_query_submatch:n { \__regex_int_eval:w #1 + ##1 \scan_stop: } + \exp_end: + } \fi: } \cs_new_protected:Npn \__regex_peek_replacement_var:N #1 @@ -28589,7 +28623,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \int_step_inline:nnn \l__regex_min_state_int - { \l__regex_max_state_int - 1 } + { \l__regex_max_state_int - \c_one_int } { \__regex_trace:nne { regex } {#1} { \iow_char:N \\toks ##1 = { \__regex_toks_use:w ##1 } } @@ -36451,17 +36485,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \q_recursion_tail ? { } \q_recursion_stop \group_end: -%% File: l3candidates.dtx -\cs_new_protected:Npn \seq_set_filter:NNn - { \__seq_set_filter:NNNn \__kernel_tl_set:Ne } -\cs_new_protected:Npn \seq_gset_filter:NNn - { \__seq_set_filter:NNNn \__kernel_tl_gset:Ne } -\cs_new_protected:Npn \__seq_set_filter:NNNn #1#2#3#4 - { - \__seq_push_item_def:n { \bool_if:nT {#4} { \__seq_wrap_item:n {##1} } } - #1 #2 { #3 } - \__seq_pop_item_def: - } %% File: l3legacy.dtx \prg_new_conditional:Npnn \legacy_if:n #1 { p , T , F , TF } { @@ -36548,220 +36571,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_if_blank:nF {#3} { Use~ \tl_trim_spaces:n {#3} ~not~ } #2~deprecated~on~#1. } -\cs_new_protected:Npn \__deprecation_old_protected:Nnn #1#2#3 - { - \__kernel_patch_deprecation:nnNNpn {#3} {#2} - \cs_gset_protected:Npn #1 { } - } -\cs_new_protected:Npn \__deprecation_old:Nnn #1#2#3 - { - \__kernel_patch_deprecation:nnNNpn {#3} {#2} - \cs_gset:Npn #1 { } - } -\__deprecation_old_protected:Nnn \box_gset_eq_clear:NN - { \box_gset_eq_drop:NN } { 2021-07-01 } -\__deprecation_old_protected:Nnn \box_set_eq_clear:NN - { \box_set_eq_drop:NN } { 2021-07-01 } -\__deprecation_old_protected:Nnn \box_resize:Nnn - { \box_resize_to_wd_and_ht_plus_dp:Nnn } { 2019-01-01 } -\__deprecation_old_protected:Nnn \box_use_clear:N - { \box_use_drop:N } { 2019-01-01 } -\__deprecation_old:Nnn \c_job_name_tl - { \c_sys_jobname_str } { 2017-01-01 } -\__deprecation_old:Nnn \c_minus_one - { -1 } { 2019-01-01 } -\__deprecation_old:Nnn \c_zero - { 0 } { 2020-01-01 } -\__deprecation_old:Nnn \c_one - { 1 } { 2020-01-01 } -\__deprecation_old:Nnn \c_two - { 2 } { 2020-01-01 } -\__deprecation_old:Nnn \c_three - { 3 } { 2020-01-01 } -\__deprecation_old:Nnn \c_four - { 4 } { 2020-01-01 } -\__deprecation_old:Nnn \c_five - { 5 } { 2020-01-01 } -\__deprecation_old:Nnn \c_six - { 6 } { 2020-01-01 } -\__deprecation_old:Nnn \c_seven - { 7 } { 2020-01-01 } -\__deprecation_old:Nnn \c_eight - { 8 } { 2020-01-01 } -\__deprecation_old:Nnn \c_nine - { 9 } { 2020-01-01 } -\__deprecation_old:Nnn \c_ten - { 10 } { 2020-01-01 } -\__deprecation_old:Nnn \c_eleven - { 11 } { 2020-01-01 } -\__deprecation_old:Nnn \c_twelve - { 12 } { 2020-01-01 } -\__deprecation_old:Nnn \c_thirteen - { 13 } { 2020-01-01 } -\__deprecation_old:Nnn \c_fourteen - { 14 } { 2020-01-01 } -\__deprecation_old:Nnn \c_fifteen - { 15 } { 2020-01-01 } -\__deprecation_old:Nnn \c_sixteen - { 16 } { 2020-01-01 } -\__deprecation_old:Nnn \c_thirty_two - { 32 } { 2020-01-01 } -\__deprecation_old:Nnn \c_one_hundred - { 100 } { 2020-01-01 } -\__deprecation_old:Nnn \c_two_hundred_fifty_five - { 255 } { 2020-01-01 } -\__deprecation_old:Nnn \c_two_hundred_fifty_six - { 256 } { 2020-01-01 } -\__deprecation_old:Nnn \c_one_thousand - { 1000 } { 2020-01-01 } -\__deprecation_old:Nnn \c_ten_thousand - { 10000 } { 2020-01-01 } -\__deprecation_old:Nnn \c_term_ior - { -1 } { 2021-07-01 } -\__deprecation_old:Nnn \dim_case:nnn - { \dim_case:nnF } { 2015-07-14 } -\__deprecation_old_protected:Nnn \file_add_path:nN - { \file_get_full_name:nN } { 2019-01-01 } -\__deprecation_old_protected:Nnn \file_if_exist_input:nT - { \file_if_exist:nT and~ \file_input:n } { 2018-03-05 } -\__deprecation_old_protected:Nnn \file_if_exist_input:nTF - { \file_if_exist:nT and~ \file_input:n } { 2018-03-05 } -\__deprecation_old_protected:Nnn \file_list: - { \file_log_list: } { 2019-01-01 } -\__deprecation_old:Nnn \file_path_include:n - { \seq_put_right:Nn \l_file_search_path_seq } { 2019-01-01 } -\__deprecation_old_protected:Nnn \file_path_remove:n - { \seq_remove_all:Nn \l_file_search_path_seq } { 2019-01-01 } -\__deprecation_old:Nnn \g_file_current_name_tl - { \g_file_curr_name_str } { 2019-01-01 } -\__deprecation_old_protected:Nnn \hbox_unpack_clear:N - { \hbox_unpack_drop:N } { 2021-07-01 } -\__deprecation_old:Nnn \int_case:nnn - { \int_case:nnF } { 2015-07-14 } -\__deprecation_old:Nnn \int_from_binary:n - { \int_from_bin:n } { 2016-01-05 } -\__deprecation_old:Nnn \int_from_hexadecimal:n - { \int_from_hex:n } { 2016-01-05 } -\__deprecation_old:Nnn \int_from_octal:n - { \int_from_oct:n } { 2016-01-05 } -\__deprecation_old:Nnn \int_to_binary:n - { \int_to_bin:n } { 2016-01-05 } -\__deprecation_old:Nnn \int_to_hexadecimal:n - { \int_to_hex:n } { 2016-01-05 } -\__deprecation_old:Nnn \int_to_octal:n - { \int_to_oct:n } { 2016-01-05 } -\__deprecation_old_protected:Nnn \ior_get_str:NN - { \ior_str_get:NN } { 2018-03-05 } -\__deprecation_old_protected:Nnn \ior_list_streams: - { \ior_show_list: } { 2019-01-01 } -\__deprecation_old_protected:Nnn \ior_log_streams: - { \ior_log_list: } { 2019-01-01 } -\__deprecation_old_protected:Nnn \iow_list_streams: - { \iow_show_list: } { 2019-01-01 } -\__deprecation_old_protected:Nnn \iow_log_streams: - { \iow_log_list: } { 2019-01-01 } -\__deprecation_old:Nnn \lua_escape_x:n - { \lua_escape:e } { 2020-01-01 } -\__deprecation_old:Nnn \lua_now_x:n - { \lua_now:e } { 2020-01-01 } -\__deprecation_old_protected:Nnn \lua_shipout_x:n - { \lua_shipout_e:n } { 2020-01-01 } -\__deprecation_old:Nnn \luatex_if_engine_p: - { \sys_if_engine_luatex_p: } { 2017-01-01 } -\__deprecation_old:Nnn \luatex_if_engine:F - { \sys_if_engine_luatex:F } { 2017-01-01 } -\__deprecation_old:Nnn \luatex_if_engine:T - { \sys_if_engine_luatex:T } { 2017-01-01 } -\__deprecation_old:Nnn \luatex_if_engine:TF - { \sys_if_engine_luatex:TF } { 2017-01-01 } -\__deprecation_old_protected:Nnn \msg_interrupt:nnn - { [Defined~error~message] } { 2020-01-01 } -\__deprecation_old_protected:Nnn \msg_log:n - { \iow_log:n } { 2020-01-01 } -\__deprecation_old_protected:Nnn \msg_term:n - { \iow_term:n } { 2020-01-01 } -\__deprecation_old:Nnn \pdftex_if_engine_p: - { \sys_if_engine_pdftex_p: } { 2017-01-01 } -\__deprecation_old:Nnn \pdftex_if_engine:F - { \sys_if_engine_pdftex:F } { 2017-01-01 } -\__deprecation_old:Nnn \pdftex_if_engine:T - { \sys_if_engine_pdftex:T } { 2017-01-01 } -\__deprecation_old:Nnn \pdftex_if_engine:TF - { \sys_if_engine_pdftex:TF } { 2017-01-01 } -\__deprecation_old:Nnn \prop_get:cn - { \prop_item:cn } { 2016-01-05 } -\__deprecation_old:Nnn \prop_get:Nn - { \prop_item:Nn } { 2016-01-05 } -\__deprecation_old:Nnn \quark_if_recursion_tail_break:N - { } { 2015-07-14 } -\__deprecation_old:Nnn \quark_if_recursion_tail_break:n - { } { 2015-07-14 } -\__deprecation_old:Nnn \scan_align_safe_stop: - { protected~commands } { 2017-01-01 } -\__deprecation_old:Nnn \sort_ordered: - { \sort_return_same: } { 2019-01-01 } -\__deprecation_old:Nnn \sort_reversed: - { \sort_return_swapped: } { 2019-01-01 } -\__deprecation_old:Nnn \str_case:nnn - { \str_case:nnF } { 2015-07-14 } -\__deprecation_old:Nnn \str_case:onn - { \str_case:onF } { 2015-07-14 } -\__deprecation_old:Nnn \str_case_x:nn - { \str_case_e:nn } { 2020-01-01 } -\__deprecation_old:Nnn \str_case_x:nnn - { \str_case_e:nnF } { 2015-07-14 } -\__deprecation_old:Nnn \str_case_x:nnT - { \str_case_e:nnT } { 2020-01-01 } -\__deprecation_old:Nnn \str_case_x:nnTF - { \str_case_e:nnTF } { 2020-01-01 } -\__deprecation_old:Nnn \str_case_x:nnF - { \str_case_e:nnF } { 2020-01-01 } -\__deprecation_old:Nnn \str_if_eq_x_p:nn - { \str_if_eq_p:ee } { 2020-01-01 } -\__deprecation_old:Nnn \str_if_eq_x:nnT - { \str_if_eq:eeT } { 2020-01-01 } -\__deprecation_old:Nnn \str_if_eq_x:nnF - { \str_if_eq:eeF } { 2020-01-01 } -\__deprecation_old:Nnn \str_if_eq_x:nnTF - { \str_if_eq:eeTF } { 2020-01-01 } -\__deprecation_old_protected:Nnn \tl_show_analysis:N - { \tl_analysis_show:N } { 2020-01-01 } -\__deprecation_old_protected:Nnn \tl_show_analysis:n - { \tl_analysis_show:n } { 2020-01-01 } -\__deprecation_old:Nnn \tl_case:cnn - { \exp_args:Nc \token_case_meaning:NnF } { 2015-07-14 } -\__deprecation_old:Nnn \tl_case:Nnn - { \token_case_meaning:NnF } { 2015-07-14 } -\__deprecation_old_protected:Nnn \tl_gset_from_file:Nnn - { \file_get:nnN } { 2021-07-01 } -\__deprecation_old_protected:Nnn \tl_gset_from_file_x:Nnn - { \file_get:nnN } { 2021-07-01 } -\__deprecation_old_protected:Nnn \tl_set_from_file:Nnn - { \file_get:nnN } { 2021-07-01 } -\__deprecation_old_protected:Nnn \tl_set_from_file_x:Nnn - { \file_get:nnN } { 2021-07-01 } -\__deprecation_old_protected:Nnn \tl_to_lowercase:n - { \tex_lowercase:D } { 2018-03-05 } -\__deprecation_old_protected:Nnn \tl_to_uppercase:n - { \tex_uppercase:D } { 2018-03-05 } -\__deprecation_old:Nnn \token_get_arg_spec:N - { \cs_argument_spec:N } { 2021-07-01 } -\__deprecation_old:Nnn \token_get_prefix_spec:N - { \cs_prefix_spec:N } { 2021-07-01 } -\__deprecation_old:Nnn \token_get_replacement_spec:N - { \cs_replacement_spec:N } { 2021-07-01 } -\__deprecation_old_protected:Nnn \token_new:Nn - { \cs_new_eq:NN } { 2019-01-01 } -\__deprecation_old_protected:Nnn \vbox_unpack_clear:N - { \vbox_unpack_drop:N } { 2021-07-01 } -\__deprecation_old:Nnn \xetex_if_engine_p: - { \sys_if_engine_xetex_p: } { 2017-01-01 } -\__deprecation_old:Nnn \xetex_if_engine:F - { \sys_if_engine_xetex:F } { 2017-01-01 } -\__deprecation_old:Nnn \xetex_if_engine:T - { \sys_if_engine_xetex:T } { 2017-01-01 } -\__deprecation_old:Nnn \xetex_if_engine:TF - { \sys_if_engine_xetex:TF } { 2017-01-01 } \cs_gset:Npn \cs_argument_spec:N { \cs_parameter_spec:N } \cs_new_protected:Npn \iow_shipout_x:Nn { \iow_shipout_e:Nn } \cs_generate_variant:Nn \iow_shipout_x:Nn { Nx , c, cx } @@ -36781,6 +36590,12 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_variable_set:NnnN #1 { tl } { g } x } \cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_x:c } #1 { \__keys_variable_set:cnnN {#1} { tl } { g } x } +\cs_set_protected:Npn \keys_set_filter:nnn { \keys_set_exclude_groups:nnn } +\cs_generate_variant:Nn \keys_set_filter:nnn { nnV , nnv , nno } +\cs_set_protected:Npn \keys_set_filter:nnnN { \keys_set_exclude_groups:nnnN } +\cs_generate_variant:Nn \keys_set_filter:nnnN { nnV , nnv , nno } +\cs_set_protected:Npn \keys_set_filter:nnnnN { \keys_set_exclude_groups:nnnnN } +\cs_generate_variant:Nn \keys_set_filter:nnnnN { nnV , nnv , nno } \prop_new:N \g__pdf_object_prop \__kernel_patch_deprecation:nnNNpn { 2022-08-30 } { [\pdf_object_new:n] } \cs_new_protected:Npn \pdf_object_new:nn #1#2 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index ea54c39293e..3a05b2b303e 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{2024-01-04}% +\def\ExplFileDate{2024-01-22}% \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 a37c8e41829..016df8683d9 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{2024-01-04}% +\def\ExplFileDate{2024-01-22}% \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 6e2bffbc859..230e5567dd5 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{2024-01-04}% +\def\ExplFileDate{2024-01-22}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def index 28e21e3a6eb..c988bf2bd80 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3debug.dtx -\ProvidesExplFile{l3debug.def}{2024-01-04}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2024-01-22}{}{L3 Debugging support} \scan_new:N \s__debug_stop \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1} \quark_new:N \q__debug_recursion_tail @@ -71,7 +71,7 @@ } \cs_set_protected:Npn \debug_resume: { - \__kernel_tl_set:Ne \l__debug_suspended_tl + \__kernel_tl_set:Nx \l__debug_suspended_tl { \tl_tail:N \l__debug_suspended_tl } \tl_if_empty:NT \l__debug_suspended_tl { @@ -82,7 +82,7 @@ \cs_new_protected:Npn \__kernel_chk_var_exist:N #1 { } \cs_new_protected:Npn \__kernel_chk_cs_exist:N #1 { } \cs_generate_variant:Nn \__kernel_chk_cs_exist:N { c } -\cs_new:Npn \__kernel_chk_flag_exist:n #1 { } +\cs_new:Npn \__kernel_chk_flag_exist:NN { } \cs_new_protected:Npn \__kernel_chk_var_local:N #1 { } \cs_new_protected:Npn \__kernel_chk_var_global:N #1 { } \cs_new_protected:Npn \__kernel_chk_var_scope:NN #1#2 { } @@ -106,13 +106,14 @@ { \token_to_str:N ##1 } } } - \cs_set:Npn \__kernel_chk_flag_exist:n ##1 + \cs_set:Npn \__kernel_chk_flag_exist:NN ##1##2 { - \__debug_suspended:T \use_none:nnn - \flag_if_exist:nF {##1} + \__debug_suspended:T \use_iii:nnnn + \flag_if_exist:NTF ##2 + { ##1 ##2 } { - \msg_expandable_error:nnn - { kernel } { bad-variable } { flag~##1~ } + \msg_expandable_error:nnn { kernel } { bad-variable } {##2} + ##1 \l_tmpa_flag } } \cs_set_protected:Npn \__kernel_chk_var_scope:NN @@ -137,7 +138,7 @@ { \cs_set_protected:Npn \__kernel_chk_var_exist:N ##1 { } \cs_set_protected:Npn \__kernel_chk_cs_exist:N ##1 { } - \cs_set:Npn \__kernel_chk_flag_exist:N ##1 { } + \cs_set:Npn \__kernel_chk_flag_exist:NN { } \cs_set_protected:Npn \__kernel_chk_var_local:N ##1 { } \cs_set_protected:Npn \__kernel_chk_var_global:N ##1 { } \cs_set_protected:Npn \__kernel_chk_var_scope:NN ##1##2 { } @@ -213,11 +214,11 @@ \tl_new:N \l__debug_tmpb_tl \cs_new_protected:Npn \__debug_generate_parameter_list:NNN #1#2#3 { - \__kernel_tl_set:Ne \l__debug_internal_tl + \__kernel_tl_set:Nx \l__debug_internal_tl { \exp_last_unbraced:Nf \use_ii:nnn \cs_split_function:N #1 } - \__kernel_tl_set:Ne #2 + \__kernel_tl_set:Nx #2 { \exp_args:NV \__debug_build_parm_text:n \l__debug_internal_tl } - \__kernel_tl_set:Ne #3 + \__kernel_tl_set:Nx #3 { \exp_args:NV \__debug_build_arg_list:n \l__debug_internal_tl } } \cs_new:Npn \__debug_build_parm_text:n #1 @@ -423,8 +424,8 @@ \tl_concat:NNN \tl_gconcat:NNN } -\cs_gset_protected:Npn \__kernel_tl_set:Ne { \cs_set_nopar:Npe } -\cs_gset_protected:Npn \__kernel_tl_gset:Ne { \cs_gset_nopar:Npe } +\cs_gset_protected:Npn \__kernel_tl_set:Nx { \cs_set_nopar:Npe } +\cs_gset_protected:Npn \__kernel_tl_gset:Nx { \cs_gset_nopar:Npe } \__kernel_patch:nnn { \__kernel_chk_var_local:N #1 } { } @@ -470,7 +471,7 @@ \str_set_eq:NN \str_put_left:Nn \str_put_right:Nn - \__kernel_tl_set:Ne + \__kernel_tl_set:Nx \tl_clear:N \tl_set_eq:NN \tl_put_left:Nn @@ -539,7 +540,7 @@ \str_gset_eq:NN \str_gput_left:Nn \str_gput_right:Nn - \__kernel_tl_gset:Ne + \__kernel_tl_gset:Nx \tl_gclear:N \tl_gset_eq:NN \tl_gput_left:Nn @@ -577,16 +578,16 @@ \tl_const:Nn } \__kernel_patch:nnn - { \__kernel_chk_flag_exist:n {#1} } + { \__kernel_chk_flag_exist:NN } { } { - \flag_if_raised:nT - \flag_if_raised:nF - \flag_if_raised:nTF - \flag_if_raised_p:n - \flag_height:n - \flag_ensure_raised:n - \flag_clear:n + \flag_ensure_raised:N + \flag_height:N + \flag_if_raised:NT + \flag_if_raised:NF + \flag_if_raised:NTF + \flag_if_raised_p:N + \flag_raise:N } \__kernel_patch:nnn { \__kernel_chk_cs_exist:N #1 } @@ -597,6 +598,17 @@ { } { \cctab_new:N } \__kernel_patch:nnn + { \__kernel_chk_var_scope:NN l #1 } + { } + { \flag_new:N } + \__kernel_patch:nnn + { + \__kernel_chk_var_scope:NN l #1 + \__kernel_chk_flag_exist:NN + } + { } + { \flag_clear:N } + \__kernel_patch:nnn { \__kernel_chk_var_scope:NN g #1 } { } { \intarray_new:Nn } @@ -662,7 +674,7 @@ { \__regex_trace_push:nnN { regex } { 1 } \__regex_escape_use:nnnn \group_begin: - \__kernel_tl_set:Ne \l__regex_internal_a_tl + \__kernel_tl_set:Nx \l__regex_internal_a_tl { \__regex_trace_pop:nnN { regex } { 1 } \__regex_escape_use:nnnn } \use_none:nnn } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index c8603e6af79..a77b2476789 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx \RequirePackage{calc} -\ProvidesExplClass{l3doc}{2024-01-04}{} +\ProvidesExplClass{l3doc}{2024-01-22}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq @@ -116,7 +116,7 @@ \cs_new_protected:Npn \__codedoc_trim_right:Nn #1#2 { \cs_set:Npn \__codedoc_tmp:w ##1 #2 ##2 \q_stop { \exp_not:n {##1} } - \__kernel_tl_set:Ne #1 { \exp_after:wN \__codedoc_tmp:w #1 #2 \q_stop } + \__kernel_tl_set:Nx #1 { \exp_after:wN \__codedoc_tmp:w #1 #2 \q_stop } } \cs_generate_variant:Nn \__codedoc_trim_right:Nn { No } \prg_new_protected_conditional:Npnn \__codedoc_str_if_begin:nn #1#2 { TF , T , F } @@ -251,14 +251,14 @@ \__codedoc_if_almost_str:nTF {#1} { \__codedoc_key_get_base_TF:nN {#1} \l__codedoc_tmpa_tl - \__kernel_tl_set:Ne #2 + \__kernel_tl_set:Nx #2 { \__codedoc_split_function_do:on \l__codedoc_tmpa_tl { \__codedoc_base_form_aux:nnN } } } { \tl_set:Nn #2 {#1} } } \cs_new:Npe \__codedoc_key_get_base_TF:nN #1#2 { - \__kernel_tl_set:Ne #2 { \exp_not:N \tl_to_str:n {#1} } + \__kernel_tl_set:Nx #2 { \exp_not:N \tl_to_str:n {#1} } \tl_if_in:NoF #2 { \tl_to_str:n {:} } { \exp_not:N \prg_break: } \tl_if_in:onT { #2 z } { \tl_to_str:n {TF} z } @@ -404,7 +404,7 @@ \DeclareUnknownKeyHandler [ l3doc / options ] { \PassOptionsToClass { \CurrentOption } { article } } \SetKeys [ l3doc / options ] - { full , kernel , check = false , checktest = false , lm-default } + { full , check = false , checktest = false , lm-default } \PassOptionsToClass { a4paper } { article } \msg_new:nnn { l3doc } { input-cfg } { Local~config~file~l3doc.cfg~loaded. } @@ -679,7 +679,7 @@ \verbatim@font \__codedoc_if_almost_str:VT \l__codedoc_cmd_tl { - \__kernel_tl_set:Ne \l__codedoc_cmd_tl { \tl_to_str:N \l__codedoc_cmd_tl } + \__kernel_tl_set:Nx \l__codedoc_cmd_tl { \tl_to_str:N \l__codedoc_cmd_tl } \bool_if:NT \g__codedoc_cs_break_bool { \regex_replace_all:nnN @@ -698,13 +698,13 @@ { \quark_if_no_value:NF \l__codedoc_cmd_index_tl { - \__kernel_tl_set:Ne \l__codedoc_cmd_tl + \__kernel_tl_set:Nx \l__codedoc_cmd_tl { \c_backslash_str \exp_not:o { \l__codedoc_cmd_index_tl } } } \exp_args:No \__codedoc_key_get:n { \l__codedoc_cmd_tl } \quark_if_no_value:NF \l__codedoc_cmd_module_tl { - \__kernel_tl_set:Ne \l__codedoc_index_module_tl + \__kernel_tl_set:Nx \l__codedoc_index_module_tl { \tl_to_str:N \l__codedoc_cmd_module_tl } } \__codedoc_special_index_module:ooonN @@ -782,7 +782,7 @@ } \cs_new_protected:Npn \__codedoc_get_hyper_target:nN #1#2 { - \__kernel_tl_set:Ne #2 { \tl_to_str:n {#1} } + \__kernel_tl_set:Nx #2 { \tl_to_str:n {#1} } \tl_replace_all:NVn #2 \c_underscore_str { / } \tl_remove_all:NV #2 \c_backslash_str \tl_put_left:Nn #2 { doc/function// } @@ -790,7 +790,7 @@ \cs_generate_variant:Nn \__codedoc_get_hyper_target:nN { o , e } \cs_new_protected:Npn \__codedoc_names_get_seq:nN #1#2 { - \__kernel_tl_set:Ne \l__codedoc_tmpa_tl { \tl_to_str:n {#1} } + \__kernel_tl_set:Nx \l__codedoc_tmpa_tl { \tl_to_str:n {#1} } \bool_if:NTF \l__codedoc_names_verb_bool { \seq_clear:N #2 @@ -1389,7 +1389,7 @@ \l__codedoc_macro_do_not_index_tl \exp_args:NNV \seq_set_from_clist:Nn \l__codedoc_tmpa_seq \l__codedoc_macro_do_not_index_tl - \__kernel_tl_set:Ne \l__codedoc_macro_do_not_index_tl + \__kernel_tl_set:Nx \l__codedoc_macro_do_not_index_tl { \seq_use:Nn \l__codedoc_tmpa_seq { , } } \exp_args:NV \DoNotIndex \l__codedoc_macro_do_not_index_tl } @@ -2257,7 +2257,7 @@ \cs_new_protected:Npn \__codedoc_hdindex_aux:w #1 M { } \cs_new_protected:Npn \__codedoc_special_index_set:Nn #1#2 { - \__kernel_tl_set:Ne #1 { \tl_to_str:n {#2} } + \__kernel_tl_set:Nx #1 { \tl_to_str:n {#2} } \__codedoc_if_almost_str:nTF {#2} { \tl_replace_all:Nen #1 { \tl_to_str:n { __ } } @@ -2275,7 +2275,7 @@ \token_to_str:N \verb * \verbatimchar } } - \__kernel_tl_set:Ne #1 + \__kernel_tl_set:Nx #1 { \token_to_str:N \verb * \verbatimchar #1 \verbatimchar @@ -2300,7 +2300,7 @@ \cs_new_protected:Npe \__codedoc_key_get:n #1 { \exp_not:N \__codedoc_key_get_base:nN {#1} \exp_not:N \l__codedoc_index_macro_tl - \__kernel_tl_set:Ne \exp_not:N \l__codedoc_index_key_tl + \__kernel_tl_set:Nx \exp_not:N \l__codedoc_index_key_tl { \exp_not:N \tl_to_str:N \exp_not:N \l__codedoc_index_macro_tl } \tl_clear:N \exp_not:N \l__codedoc_index_module_tl \tl_if_in:NnTF \exp_not:N \l__codedoc_index_key_tl { \tl_to_str:n { __ } } @@ -2322,14 +2322,14 @@ } \cs_new_protected:Npn \__codedoc_key_pop: { - \__kernel_tl_set:Ne \l__codedoc_index_key_tl + \__kernel_tl_set:Nx \l__codedoc_index_key_tl { \tl_tail:N \l__codedoc_index_key_tl } } \cs_new_protected:Npn \__codedoc_key_trim_module:n #1 { \cs_set:Npn \__codedoc_tmpa:w ##1 #1 ##2 \q_stop { \exp_not:n {##1} } - \__kernel_tl_set:Ne \l__codedoc_index_module_tl + \__kernel_tl_set:Nx \l__codedoc_index_module_tl { \exp_after:wN \__codedoc_tmpa:w \l__codedoc_index_module_tl #1 \q_stop } } \cs_new_protected:Npn \__codedoc_key_drop_underscores: |