diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex | 700 |
1 files changed, 414 insertions, 286 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 65ebd2e70b4..5900dfffb43 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -43,6 +43,7 @@ %% l3fp-symbolic.dtx (with options: `package') %% l3fp-functions.dtx (with options: `package') %% l3fparray.dtx (with options: `package') +%% l3bitset.dtx (with options: `package') %% l3cctab.dtx (with options: `package') %% l3sort.dtx (with options: `package') %% l3str-convert.dtx (with options: `package') @@ -75,7 +76,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-11-09}% +\def\ExplFileDate{2023-12-08}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -3883,13 +3884,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \prg_generate_conditional_variant:Nnn \tl_if_eq:nn - { nV , ne , nx , e , ee , x , xx } + { nV , ne , nx , V, e , ee , x , xx } { TF , T , F } \cs_new_protected:Npn \tl_if_in:NnT { \exp_args:No \tl_if_in:nnT } \cs_new_protected:Npn \tl_if_in:NnF { \exp_args:No \tl_if_in:nnF } \cs_new_protected:Npn \tl_if_in:NnTF { \exp_args:No \tl_if_in:nnTF } \prg_generate_conditional_variant:Nnn \tl_if_in:Nn - { NV , c , cV } { T , F , TF } + { NV , No , c , cV , co } { T , F , TF } \prg_new_protected_conditional:Npnn \tl_if_in:nn #1#2 { T , F , TF } { \scan_stop: @@ -3900,7 +3901,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \if_false: } \fi: } \prg_generate_conditional_variant:Nnn \tl_if_in:nn - { V , o , nV , no } { T , F , TF } + { V , VV , o , oo , nV , no } { T , F , TF } \cs_set_protected:Npn \__tl_tmp:w #1 { \prg_new_conditional:Npnn \tl_if_novalue:n ##1 @@ -4043,7 +4044,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { 0 \tl_map_function:NN #1 \__tl_count:n } } \cs_new:Npn \__tl_count:n #1 { + 1 } -\cs_generate_variant:Nn \tl_count:n { V , o } +\cs_generate_variant:Nn \tl_count:n { V , v , e , o } \cs_generate_variant:Nn \tl_count:N { c } \cs_new:Npn \tl_count_tokens:n #1 { @@ -4167,7 +4168,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \prg_generate_conditional_variant:Nnn \tl_if_head_eq_charcode:nN - { f } { p , TF , T , F } + { V , e , f } { p , TF , T , F } \prg_new_conditional:Npnn \tl_if_head_eq_catcode:nN #1 #2 { p , T , F , TF } { \if_catcode:w @@ -4185,7 +4186,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \prg_generate_conditional_variant:Nnn \tl_if_head_eq_catcode:nN - { o } { p , TF , T , F } + { V , e , o } { p , TF , T , F } \prg_new_conditional:Npnn \tl_if_head_eq_meaning:nN #1#2 { p , T , F , TF } { \tl_if_head_is_N_type:nTF { #1 ? } @@ -4193,6 +4194,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \__tl_if_head_eq_meaning_special:nN {#1} #2 } +\prg_generate_conditional_variant:Nnn \tl_if_head_eq_meaning:nN + { V , e } { p , TF , T , F } \cs_new:Npn \__tl_if_head_eq_meaning_normal:nN #1 #2 { \exp_after:wN \if_meaning:w @@ -4691,31 +4694,42 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \str_gconcat:NNN \tl_gconcat:NNN \cs_generate_variant:Nn \str_concat:NNN { ccc } \cs_generate_variant:Nn \str_gconcat:NNN { ccc } -\group_begin: - \cs_set_protected:Npn \__str_tmp:n #1 - { - \tl_if_blank:nF {#1} - { - \cs_new_protected:cpe { str_ #1 :Nn } ##1##2 - { - \exp_not:c { tl_ #1 :Ne } ##1 - { \exp_not:N \tl_to_str:n {##2} } - } - \cs_generate_variant:cn { str_ #1 :Nn } - { NV , Ne , Nx , cn , cV , ce , cx } - \__str_tmp:n - } - } - \__str_tmp:n - { set } - { gset } - { const } - { put_left } - { gput_left } - { put_right } - { gput_right } - { } -\group_end: +\cs_new_protected:Npn \str_set:Nn #1#2 + { \__kernel_tl_set:Ne #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} } } +\cs_new_protected:Npn \str_const:Nn #1#2 + { + \__kernel_chk_if_free_cs:N #1 + \cs_gset_nopar:Npe #1 { \__kernel_tl_to_str:w {#2} } + } +\cs_new_protected:Npn \str_put_left:Nn #1#2 + { + \__kernel_tl_set:Ne #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_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_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_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 } +\cs_generate_variant:Nn \str_gset:Nn { NV , Ne , Nx , c , cV , ce , cx } +\cs_generate_variant:Nn \str_const:Nn { NV , Ne , Nx , c , cV , ce , cx } +\cs_generate_variant:Nn \str_put_left:Nn { NV , Ne , Nx , c , cV , ce , cx } +\cs_generate_variant:Nn \str_gput_left:Nn { NV , Ne , Nx , c , cV , ce , cx } +\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 } \cs_new_protected:Npn \str_greplace_once:Nnn @@ -5388,6 +5402,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \str_const:Ne \c_tilde_str { \cs_to_str:N \~ } \str_const:Ne \c_underscore_str { \cs_to_str:N \_ } \str_const:Ne \c_zero_str { 0 } +\cs_new_eq:NN \c_empty_str \c_empty_tl \str_new:N \l_tmpa_str \str_new:N \l_tmpb_str \str_new:N \g_tmpa_str @@ -7138,9 +7153,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: } \prg_generate_conditional_variant:Nnn \bool_if:N { c } { p , T , F , TF } -\cs_new:Npn \bool_to_str:N #1 { \bool_if:NTF #1 { true } { false } } +\cs_new:Npe \bool_to_str:N #1 + { + \exp_not:N \bool_if:NTF #1 + { \tl_to_str:n { true } } { \tl_to_str:n { false } } + } \cs_generate_variant:Nn \bool_to_str:N { c } -\cs_new:Npn \bool_to_str:n #1 { \bool_if:nTF {#1} { true } { false } } +\cs_new:Npe \bool_to_str:n #1 + { + \exp_not:N \bool_if:nTF {#1} + { \tl_to_str:n { true } } { \tl_to_str:n { false } } + } \cs_new_protected:Npn \bool_show:n { \__kernel_msg_show_eval:Nn \bool_to_str:n } \cs_new_protected:Npn \bool_log:n @@ -7707,7 +7730,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \iow_shipout:Nn \c__sys_shell_stream_int {#1} } } \cs_generate_variant:Nn \sys_shell_shipout:n { e , x } -\cs_new_protected:Npn \sys_everyjob: +\cs_new_protected:Npn \__kernel_sys_everyjob: { \tl_use:N \g__sys_everyjob_tl \tl_gclear:N \g__sys_everyjob_tl @@ -7815,7 +7838,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_gset_eq:NN \g_file_curr_name_str \tex_jobname:D } \cs_new_protected:Npn \sys_finalise: { - \sys_everyjob: + \__kernel_sys_everyjob: \tl_use:N \g__sys_finalise_tl \tl_gclear:N \g__sys_finalise_tl } @@ -8780,125 +8803,6 @@ Type H <return> for immediate help}\def~{\errmessage{% } \fi: \group_end: -\cs_new:Npn \char_lowercase:N - { \__char_change_case:nN { lowercase } } -\cs_new:Npn \char_uppercase:N - { \__char_change_case:nN { uppercase } } -\cs_new:Npn \char_titlecase:N - { \__char_change_case:nN { titlecase } } -\cs_new:Npn \char_foldcase:N - { \__char_change_case:nN { casefold } } -\cs_new:Npn \__char_change_case:nN #1#2 - { - \int_compare:nNnTF {`#2} = { `\ } - { ~ } - { - \exp_args:Ne \__char_change_case_auxi:nN - { \__kernel_codepoint_case:nn {#1} {`#2} } #2 - } - } -\cs_new:Npn \__char_change_case_auxi:nN #1#2 - { \use:e { \__char_change_case:nnnN #1 #2 } } -\cs_new:Npn \__char_change_case:nnnN #1#2#3#4 - { - \int_compare:nNnTF {#1} = {`#4} - { \exp_not:n {#4} } - { - \__char_change_case_auxii:nN {#1} {#4} - \tl_if_blank:nF {#2} - { - \__char_change_case_auxii:nN {#2} {#4} - \tl_if_blank:nF {#3} - { \__char_change_case_auxii:nN {#3} {#4} } - } - } - } -\cs_new:Npn \__char_change_case_auxii:nN #1#2 - { - \char_generate:nn {#1} - { \__char_change_case_catcode:N #2 } - } -\bool_lazy_or:nnF - { \sys_if_engine_luatex_p: } - { \sys_if_engine_xetex_p: } - { - \cs_gset:Npn \__char_change_case_auxii:nN #1#2 - { - \int_compare:nNnTF {#1} < { "80 } - { - \char_generate:nn {#1} - { \__char_change_case_catcode:N #2 } - } - { \exp_not:n {#2} } - } - } -\cs_new:Npn \__char_change_case_catcode:N #1 - { - \if_catcode:w \exp_not:N #1 \c_math_toggle_token - 3 - \else: - \if_catcode:w \exp_not:N #1 \c_alignment_token - 4 - \else: - \if_catcode:w \exp_not:N #1 \c_math_superscript_token - 7 - \else: - \if_catcode:w \exp_not:N #1 \c_math_subscript_token - 8 - \else: - \if_catcode:w \exp_not:N #1 \c_space_token - 10 - \else: - \if_catcode:w \exp_not:N #1 \c_catcode_letter_token - 11 - \else: - \if_catcode:w \exp_not:N #1 \c_catcode_other_token - 12 - \else: - 13 - \fi: - \fi: - \fi: - \fi: - \fi: - \fi: - \fi: - } -\cs_new:Npn \char_str_lowercase:N - { \__char_str_change_case:nN { lowercase } } -\cs_new:Npn \char_str_uppercase:N - { \__char_str_change_case:nN { uppercase } } -\cs_new:Npn \char_str_titlecase:N - { \__char_str_change_case:nN { titlecase } } -\cs_new:Npn \char_str_foldcase:N - { \__char_str_change_case:nN { casefold } } -\cs_new:Npn \__char_str_change_case:nN #1#2 - { - \int_compare:nNnTF {`#2} = { `\ } - { ~ } - { - \exp_args:Ne \__char_str_change_case_aux:nN - { \__kernel_codepoint_case:nn {#1} {`#2} } #2 - } - } -\cs_new:Npn \__char_str_change_case_aux:nN #1#2 - { \use:e { \__char_str_change_case:nnnN #1 #2 } } -\cs_new:Npn \__char_str_change_case:nnnN #1#2#3#4 - { - \int_compare:nNnTF {#1} = {`#4} - { \tl_to_str:n {#4} } - { - \__char_str_change_case:n {#1} - \tl_if_blank:nF {#2} - { - \__char_str_change_case:n {#2} - \tl_if_blank:nF {#3} - { \__char_str_change_case:n {#3} } - } - } - } -\cs_new:Npn \__char_str_change_case:n #1 - { \char_generate:nn {#1} { 12 } } \group_begin: \char_set_catcode_active:N * \char_set_lccode:nn { `* } { `\ } @@ -11523,8 +11427,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__iow_wrap_trim_aux:w ##1 \s__iow_mark ##2 \s__iow_stop {##1} } \exp_args:NV \__iow_tmp:w \c_catcode_other_space_tl -\cs_new_eq:NN \iow_shipout_x:Nn \iow_shipout_e:Nn -\cs_generate_variant:Nn \iow_shipout_x:Nn { Nx , c, cx } \tl_new:N \l__file_internal_tl \str_new:N \g_file_curr_dir_str \str_new:N \g_file_curr_ext_str @@ -14377,22 +14279,6 @@ Type H <return> for immediate help}\def~{\errmessage{% } \prop_gput:Nnn \g_msg_module_name_prop { keys } { LaTeX } \prop_gput:Nnn \g_msg_module_type_prop { keys } { } -\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:N } #1 - { \__keys_variable_set:NnnN #1 { str } { } x } -\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:c } #1 - { \__keys_variable_set:cnnN {#1} { str } { } x } -\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:N } #1 - { \__keys_variable_set:NnnN #1 { str } { g } x } -\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:c } #1 - { \__keys_variable_set:cnnN {#1} { str } { g } x } -\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:N } #1 - { \__keys_variable_set:NnnN #1 { tl } { } x } -\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:c } #1 - { \__keys_variable_set:cnnN {#1} { tl } { } x } -\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_x:N } #1 - { \__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 } %% File: l3intarray.dtx \msg_new:nnn { kernel } { negative-array-size } { Size~of~array~may~not~be~negative:~#1 } @@ -21589,6 +21475,220 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__fp_array_item_normal:w #1 #2#3#4#5 #6 ; #7 ; #8 ; #9 { #9 \s__fp \__fp_chk:w 1 #1 {#8} #7 {#2#3#4#5} {#6} ; } +%% File: l3bitset.dtx +\cs_if_exist:NT \@expl@finalise@setup@@ + { + \tl_gput_right:Nn \@expl@finalise@setup@@ + { \disable@package@load { l3bitset } { } } + } +\cs_new_protected:Npn \bitset_new:N #1 + { + \__kernel_chk_if_free_cs:N #1 + \cs_gset_eq:NN #1 \c_zero_str + \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop } + } + +\cs_new_protected:Npn \bitset_new:Nn #1 #2 + { + \__kernel_chk_if_free_cs:N #1 + \cs_gset_eq:NN #1 \c_zero_str + \prop_new:c { g__bitset_ \cs_to_str:N #1 _name_prop } + \prop_gset_from_keyval:cn + { g__bitset_ \cs_to_str:N #1 _name_prop } + {#2} + } +\cs_generate_variant:Nn \bitset_new:N { c } +\prop_new:N \l__bitset_tmp_prop +\cs_new_protected:Npn \bitset_addto_named_index:Nn #1#2 + { + \prop_set_from_keyval:Nn \l__bitset_tmp_prop {#2} + \prop_map_inline:Nn \l__bitset_tmp_prop + { + \prop_gput:cnn + { g__bitset_ \cs_to_str:N #1 _name_prop } + {##1} + {##2} + } + } +\prg_new_eq_conditional:NNn + \bitset_if_exist:N \str_if_exist:N { p , T , F , TF } +\prg_new_eq_conditional:NNn + \bitset_if_exist:c \str_if_exist:c + { p , T , F , TF } +\cs_new_protected:Npn \__bitset_set_true:Nn #1#2 + { \__bitset_set:NNnN \str_set:Ne #1 {#2} 1 } +\cs_new_protected:Npn \__bitset_gset_true:Nn #1#2 + { \__bitset_set:NNnN \str_gset:Ne #1 {#2} 1 } +\cs_new_protected:Npn \__bitset_set_false:Nn #1#2 + { \__bitset_set:NNnN \str_set:Ne #1 {#2} 0 } +\cs_new_protected:Npn \__bitset_gset_false:Nn #1#2 + { \__bitset_set:NNnN \str_gset:Ne #1 {#2} 0 } +\cs_new_protected:Npn \__bitset_set:NNnN #1#2#3#4 + { + \int_compare:nNnT {#3} > { 0 } + { + \int_compare:nNnTF { \str_count:N #2 } < {#3} + { + #1 #2 + { + #4 + \prg_replicate:nn { #3 - \str_count:N #2 - 1 } { 0 } + #2 + } + } + { + #1 #2 + { + \str_range:Nnn #2 { 1 } { -1 - (#3) } + #4 + \str_range:Nnn #2 { 1 - (#3) } { -1 } + } + } + } + } +\int_new:N \l__bitset_internal_int +\prg_new_protected_conditional:Npnn \__bitset_test_digits:n #1 { TF } + { + \tex_afterassignment:D \__bitset_test_digits:w + \l__bitset_internal_int = 0 \tl_trim_spaces_apply:nN {#1} \tl_to_str:n + \__bitset_test_digits_end: + \use_i:nnn \if_false: + \__bitset_test_digits_end: + \if_int_compare:w \c_zero_int < \l__bitset_internal_int + \prg_return_true: + \else: + \prg_return_false: + \fi: + } +\cs_new_eq:NN \__bitset_test_digits_end: \exp_stop_f: +\cs_new_protected:Npn \__bitset_test_digits:w #1 \__bitset_test_digits_end: { } +\cs_new_protected:Npn \bitset_set_true:Nn #1#2 + { \__bitset_set:NNn \__bitset_set_true:Nn #1 {#2} } +\cs_new_protected:Npn \bitset_gset_true:Nn #1#2 + { \__bitset_set:NNn \__bitset_gset_true:Nn #1 {#2} } +\cs_new_protected:Npn \bitset_set_false:Nn #1#2 + { \__bitset_set:NNn \__bitset_set_false:Nn #1 {#2} } +\cs_new_protected:Npn \bitset_gset_false:Nn #1#2 + { \__bitset_set:NNn \__bitset_gset_false:Nn #1 {#2} } +\cs_new_protected:Npn \__bitset_set:NNn #1#2#3 + { + \prop_if_in:cnTF { g__bitset_ \cs_to_str:N #2 _name_prop } {#3} + { + #1 #2 + { + \prop_item:cn { g__bitset_ \cs_to_str:N #2 _name_prop } {#3} + } + } + { + \__bitset_test_digits:nTF {#3} + { + #1 #2 {#3} + \prop_gput:cnn { g__bitset_ \cs_to_str:N #2 _name_prop } {#3} {#3} + } + { + \msg_warning:nnee { bitset } { unknown-name } + { \token_to_str:N #2 } + { \tl_to_str:n {#3} } + } + } + } +\cs_generate_variant:Nn \bitset_set_true:Nn { c } +\cs_generate_variant:Nn \bitset_gset_true:Nn { c } +\cs_generate_variant:Nn \bitset_set_false:Nn { c } +\cs_generate_variant:Nn \bitset_gset_false:Nn { c } +\cs_new_protected:Npn \bitset_clear:N #1 + { + \str_set_eq:NN #1 \c_zero_str + } +\cs_new_protected:Npn \bitset_gclear:N #1 + { + \str_gset_eq:NN #1 \c_zero_str + } +\cs_generate_variant:Nn \bitset_clear:N { c } +\cs_generate_variant:Nn \bitset_gclear:N { c } +\cs_new:Npn \bitset_to_arabic:N #1 + { + \int_compare:nNnTF { \str_count:N #1 } < { 32 } + { \exp_args:No \int_from_bin:n {#1} } + { + \exp_after:wN \__bitset_to_int:nN \exp_after:wN 0 + #1 \q_recursion_tail \q_recursion_stop + } + } + +\cs_new:Npn \__bitset_to_int:nN #1#2 + { + \quark_if_recursion_tail_stop_do:Nn #2 {#1} + \exp_args:Nf \__bitset_to_int:nN { \fp_eval:n { #1 * 2 + #2 } } + } + +\cs_new:Npn \bitset_to_bin:N #1 + { + #1 + } +\cs_generate_variant:Nn \bitset_to_arabic:N { c } +\cs_generate_variant:Nn \bitset_to_bin:N { c } +\cs_new:Npn \bitset_item:Nn #1#2 + { + \prop_if_in:cnTF { g__bitset_ \cs_to_str:N #1 _name_prop } {#2} + { + \int_eval:n + { + \str_item:Nn #1 + { 0 - ( \prop_item:cn { g__bitset_ \cs_to_str:N #1 _name_prop } {#2} ) } + +0 + } + } + { + 0 + } + } +\cs_generate_variant:Nn \bitset_item:Nn { c } +\cs_new_protected:Npn \bitset_show:N { \__bitset_show:NN \msg_show:nneeee } +\cs_generate_variant:Nn \bitset_show:N { c } +\cs_new_protected:Npn \bitset_log:N { \__bitset_show:NN \msg_log:nneeee } +\cs_generate_variant:Nn \bitset_log:N { c } +\cs_new_protected:Npn \bitset_show_named_index:N { \__bitset_show_named_index:NN \msg_show:nneeee } +\cs_generate_variant:Nn \bitset_show_named_index:N { c } +\cs_new_protected:Npn \__bitset_show:NN #1#2 + { + \__kernel_chk_defined:NT #2 + { + #1 { bitset } { show } + { \token_to_str:N #2 } + { \bitset_to_bin:N #2 } + { \bitset_to_arabic:N #2 } + { } + } + } +\cs_new_protected:Npn \__bitset_show_named_index:NN #1#2 + { + \__kernel_chk_defined:NT #2 + { + #1 { bitset } { show-names } + { \token_to_str:N #2 } + { \prop_map_function:cN { g__bitset_ \cs_to_str:N #2 _name_prop } \msg_show_item:nn } + { } + { } + } + } + \msg_new:nnn { bitset } { show } + { + The~bitset~#1~has~the~representation: \\ + >~binary:~#2 \\ + >~arabic:~#3 . + } +\msg_new:nnn { bitset } { show-names } + { + The~bitset~#1~ + \tl_if_empty:nTF {#2} + { knows~no~names~yet \\>~ . } + { knows~the~name/index~pairs~(without~outer~braces): #2 . } + } +\msg_new:nnn { bitset } { unknown-name } + { The~name~'#2'~is~unknown~for~bitset~\tl_to_str:n {#1} } +\prop_gput:Nnn \g_msg_module_name_prop { bitset } { LaTeX } +\prop_gput:Nnn \g_msg_module_type_prop { bitset } { } %% File: l3cctab.dtx \seq_new:N \g__cctab_stack_seq \seq_new:N \g__cctab_unused_seq @@ -22442,8 +22542,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 { __str_byte } +\flag_new:n { __str_error } \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} @@ -22618,6 +22718,8 @@ 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 + { \tl_to_str:V \g__str_result_tl } \group_end: #2 #3 \g__str_result_tl } @@ -22720,7 +22822,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 { __str_byte } \fi: \__str_filter_bytes_aux:N } @@ -22734,10 +22836,10 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_new_protected:Npn \__str_convert_unescape_: { - \flag_clear:n { str_byte } + \flag_clear:n { __str_byte } \__kernel_tl_gset:Ne \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 { __str_byte } { non-byte } { bytes } } } { \cs_new_protected:Npn \__str_convert_unescape_: { } } @@ -22762,15 +22864,15 @@ Type H <return> for immediate help}\def~{\errmessage{% { \cs_new_protected:Npn \__str_convert_encode_: { - \flag_clear:n { str_error } + \flag_clear:n { __str_error } \__str_convert_gmap_internal:N \__str_encode_native_char:n - \__str_if_flag_error:nne { str_error } + \__str_if_flag_error:nne { __str_error } { 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 { __str_error } ? \else: \char_generate:nn {#1} {12} @@ -22856,9 +22958,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 { __str_error } \__str_convert_gmap:N \__str_tmp:w - \__str_if_flag_error:nne { str_error } { decode-8-bit } {#1} + \__str_if_flag_error:nne { __str_error } { decode-8-bit } {#1} } \cs_new:Npn \__str_decode_eight_bit_aux:Nn #1#2 { @@ -22870,7 +22972,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 { __str_error } \int_value:w \c__str_replacement_char_int \else: #1 @@ -22885,9 +22987,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 { __str_error } \__str_convert_gmap_internal:N \__str_tmp:w - \__str_if_flag_error:nne { str_error } { encode-8-bit } {#1} + \__str_if_flag_error:nne { __str_error } { encode-8-bit } {#1} } \cs_new:Npn \__str_encode_eight_bit_aux:NNn #1#2#3 { @@ -22903,7 +23005,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 { __str_error } } } \msg_new:nnn { str } { unknown-esc } { Escaping~scheme~'#1'~(filtered:~'#2')~unknown. } @@ -22914,7 +23016,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { Since~native~strings~do~not~consist~in~bytes,~ none~of~the~escaping~methods~make~sense.~ - The~specified~escaping,~'#1',~will be ignored. + The~specified~escaping,~'#1',~will~be~ignored. } \msg_new:nnn { str } { file-not-found } { File~'l3str-#1.def'~not~found. } @@ -22954,7 +23056,7 @@ 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 { __str_error } \int_set:Nn \tex_escapechar:D { 92 } \__kernel_tl_gset:Ne \g__str_result_tl { @@ -22965,7 +23067,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 { __str_error } { unescape-hex } { } \group_end: } \cs_new:Npn \__str_unescape_hex_auxi:N #1 @@ -22974,7 +23076,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 { __str_error } \__str_unescape_hex_auxi:N } } @@ -22987,7 +23089,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 { __str_error } \__str_unescape_hex_auxii:N } } @@ -23002,8 +23104,8 @@ 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 { __str_byte } + \flag_clear:n { __str_error } \int_set:Nn \tex_escapechar:D { 92 } \__kernel_tl_gset:Ne \g__str_result_tl { @@ -23011,8 +23113,8 @@ Type H <return> for immediate help}\def~{\errmessage{% #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 { __str_byte } { non-byte } { #2 } + \__str_if_flag_error:nne { __str_error } { unescape-#2 } { } \group_end: } \cs_new:Npn #3 ##1#1##2##3 @@ -23025,12 +23127,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \__str_hexadecimal_use:NTF ##3 { } { - \flag_raise:n { str_error } + \flag_raise:n { __str_error } * 0 + `#1 \use_i:nn } } { - \flag_raise:n { str_error } + \flag_raise:n { __str_error } 0 + `#1 \use_i:nn } \__str_output_end: @@ -23055,8 +23157,8 @@ 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 { __str_byte } + \flag_clear:n { __str_error } \int_set:Nn \tex_escapechar:D { 92 } \__kernel_tl_gset:Ne \g__str_result_tl { @@ -23070,8 +23172,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \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 { __str_byte } { non-byte } { string } + \__str_if_flag_error:nne { __str_error } { unescape-string } { } \group_end: } } @@ -23111,7 +23213,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { ^^J } { 0 - 1 } } { - \flag_raise:n { str_error } + \flag_raise:n { __str_error } 0 - 1 \use_i:nn } } @@ -23237,19 +23339,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 { __str_missing } +\flag_clear_new:n { __str_extra } +\flag_clear_new:n { __str_overlong } +\flag_clear_new:n { __str_overflow } \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 { __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 } } . } @@ -23264,25 +23366,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 { __str_missing } { \\\\ 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 { __str_extra } { \\\\ LaTeX~came~across~a~continuation~byte~when~it~was~not~expected. } - \flag_if_raised:nT { str_overlong } + \flag_if_raised:nT { __str_overlong } { \\\\ 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 { __str_overflow } { \\\\ Unicode~limits~code~points~to~the~range~[0,1114111]. @@ -23292,18 +23394,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 } + \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 { \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 { __str_error } { utf8-decode } { } } \cs_new:Npn \__str_decode_utf_viii_start:N #1 { @@ -23313,8 +23415,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 { __str_extra } + \flag_raise:n { __str_error } \int_use:N \c__str_replacement_char_int \fi: \else: @@ -23337,8 +23439,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 { __str_missing } + \flag_raise:n { __str_error } \int_use:N \c__str_replacement_char_int \fi: \s__str @@ -23351,8 +23453,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 { __str_overlong } + \flag_raise:n { __str_error } \int_use:N \c__str_replacement_char_int \else: #1 @@ -23371,15 +23473,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 { __str_overflow } + \flag_raise:n { __str_error } \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 { __str_missing } + \flag_raise:n { __str_error } \int_use:N \c__str_replacement_char_int \s__str \prg_break: } @@ -23397,10 +23499,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 { __str_error } \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 { __str_error } { utf16-encode } { } } \cs_new:Npn \__str_encode_utf_xvi_char:n #1 { @@ -23409,7 +23511,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 { __str_error } \__str_tmp:w { \c__str_replacement_char_int } \else: \__str_tmp:w {#1} @@ -23420,9 +23522,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 { __str_missing } + \flag_clear_new:n { __str_extra } + \flag_clear_new:n { __str_end } \msg_new:nnnn { str } { utf16-encode } { Unicode~string~cannot~be~expressed~in~UTF-16:~surrogate. } { @@ -23435,9 +23537,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 { __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 } } . } @@ -23454,17 +23556,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 { __str_missing } { \\\\ A~lead~surrogate~was~not~followed~by~a~trail~surrogate. } - \flag_if_raised:nT { str_extra } + \flag_if_raised:nT { __str_extra } { \\\\ LaTeX~came~across~a~trail~surrogate~when~it~was~not~expected. } - \flag_if_raised:nT { str_end } + \flag_if_raised:nT { __str_end } { \\\\ The~string~contained~an~odd~number~of~bytes.~This~is~invalid:~ @@ -23492,10 +23594,10 @@ 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 { __str_error } + \flag_clear:n { __str_missing } + \flag_clear:n { __str_extra } + \flag_clear:n { __str_end } \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } \__kernel_tl_gset:Ne \g__str_result_tl { @@ -23503,7 +23605,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #2 \q__str_nil \q__str_nil \prg_break_point: } - \__str_if_flag_error:nne { str_error } { utf16-decode } { } + \__str_if_flag_error:nne { __str_error } { utf16-decode } { } } \cs_new:Npn \__str_decode_utf_xvi_pair:NN #1#2 { @@ -23559,7 +23661,7 @@ 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_error } \flag_raise:n { str_#1 } #2 #3 \s__str \int_use:N \c__str_replacement_char_int \s__str @@ -23600,29 +23702,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 { __str_overflow } + \flag_clear_new:n { __str_end } \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 { __str_overflow } { ,~code~point~too~large } + \__str_if_flag_times:nT { __str_end } { ,~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 { __str_overflow } { \\\\ 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 { __str_end } { \\\\ The~length~of~the~string~is~not~a~multiple~of~4.~ @@ -23650,9 +23752,9 @@ 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 { __str_overflow } + \flag_clear:n { __str_end } + \flag_clear:n { __str_error } \cs_set:Npn \__str_tmp:w ##1 ##2 { ` ## #1 } \__kernel_tl_gset:Ne \g__str_result_tl { @@ -23660,7 +23762,7 @@ Type H <return> for immediate help}\def~{\errmessage{% #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 { __str_error } { utf32-decode } { } } \cs_new:Npn \__str_decode_utf_xxxii_loop:NNNN #1#2#3#4 { @@ -23669,13 +23771,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 { __str_overflow } + \flag_raise:n { __str_error } \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 { __str_overflow } + \flag_raise:n { __str_error } \int_use:N \c__str_replacement_char_int \else: \int_eval:n @@ -23689,8 +23791,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 { __str_end } + \flag_raise:n { __str_error } #1 \s__str \int_use:N \c__str_replacement_char_int \s__str } @@ -31171,19 +31273,6 @@ Type H <return> for immediate help}\def~{\errmessage{% } } } -\prop_new:N \g__pdf_object_prop -\cs_new_protected:Npn \pdf_object_new:nn #1#2 - { - \prop_gput:Nnn \g__pdf_object_prop {#1} {#2} - \__pdf_backend_object_new:n {#1} - } -\cs_new_protected:Npn \pdf_object_write:nn #1#2 - { - \exp_args:Nne \__pdf_backend_object_write:nnn - {#1} { \prop_item:Nn \g__pdf_object_prop {#1} } {#2} - \bool_gset_true:N \g__pdf_init_bool - } -\cs_generate_variant:Nn \pdf_object_write:nn { nx } %% File: l3coffins.dtx \box_new:N \l__coffin_internal_box \dim_new:N \l__coffin_internal_dim @@ -36634,9 +36723,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \__deprecation_old_protected:Nnn \tl_show_analysis:n { \tl_analysis_show:n } { 2020-01-01 } \__deprecation_old:Nnn \tl_case:cnn - { \tl_case:cnF } { 2015-07-14 } + { \exp_args:Nc \token_case_meaning:NnF } { 2015-07-14 } \__deprecation_old:Nnn \tl_case:Nnn - { \tl_case:NnF } { 2015-07-14 } + { \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 @@ -36668,13 +36757,46 @@ Type H <return> for immediate help}\def~{\errmessage{% \__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 } -\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case_true:n } +\cs_new_protected:Npn \iow_shipout_x:Nn { \iow_shipout_e:Nn } +\cs_generate_variant:Nn \iow_shipout_x:Nn { Nx , c, cx } +\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:N } #1 + { \__keys_variable_set:NnnN #1 { str } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_set_x:c } #1 + { \__keys_variable_set:cnnN {#1} { str } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:N } #1 + { \__keys_variable_set:NnnN #1 { str } { g } x } +\cs_new_protected:cpn { \c__keys_props_root_str .str_gset_x:c } #1 + { \__keys_variable_set:cnnN {#1} { str } { g } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:N } #1 + { \__keys_variable_set:NnnN #1 { tl } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_set_x:c } #1 + { \__keys_variable_set:cnnN {#1} { tl } { } x } +\cs_new_protected:cpn { \c__keys_props_root_str .tl_gset_x:N } #1 + { \__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 } +\prop_new:N \g__keys_object_prop +\__kernel_patch_deprecation:nnNNpn { 2022-08-30 } { [\pdf_object_new:n] } +\cs_new_protected:Npn \pdf_object_new:nn #1#2 + { + \prop_gput:Nnn \g__keys_object_prop {#1} {#2} + \__keys_backend_object_new:n {#1} + } +\__kernel_patch_deprecation:nnNNpn { 2022-08-30 } { [\pdf_object_write:n] } +\cs_new_protected:Npn \pdf_object_write:nn #1#2 + { + \exp_args:Nne \__keys_backend_object_write:nnn + {#1} { \prop_item:Nn \g__keys_object_prop {#1} } {#2} + \bool_gset_true:N \g__keys_init_bool + } +\cs_generate_variant:Nn \pdf_object_write:nn { nx } +\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case:n } \cs_gset:Npn \bool_case_true:n { \bool_case:n } -\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case_true:nT } +\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case:nT } \cs_gset:Npn \bool_case_true:nT { \bool_case:nT } -\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case_true:nF } +\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case:nF } \cs_gset:Npn \bool_case_true:nF { \bool_case:nF } -\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case_true:nTF } +\__kernel_patch_deprecation:nnNNpn { 2023-05-03 } { \bool_case:nTF } \cs_gset:Npn \bool_case_true:nTF { \bool_case:nTF } \__kernel_patch_deprecation:nnNNpn { 2020-01-03 } { \str_lowercase:n } \cs_gset:Npn \str_lower_case:n { \str_lowercase:n } @@ -36699,7 +36821,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_gset_protected:Npn \seq_indexed_map_inline:Nn { \seq_map_indexed_inline:Nn } \__kernel_patch_deprecation:nnNNpn { 2020-06-18 } { \seq_map_indexed_function:NN } \cs_gset:Npn \seq_indexed_map_function:NN { \seq_map_indexed_function:NN } -\__kernel_patch_deprecation:nnNNpn { 2023-05-10 } { \seq_mapthread_function:NNN } +\__kernel_patch_deprecation:nnNNpn { 2023-05-10 } { \seq_map_pairwise_function:NNN } \cs_gset:Npn \seq_mapthread_function:NNN { \seq_map_pairwise_function:NNN } \__kernel_patch_deprecation:nnNNpn { 2023-10-26 } { \seq_set_map_e:NNn } \cs_gset_protected:Npn \seq_set_map_x:NNn { \seq_set_map_e:NNn } @@ -36746,7 +36868,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \tl_build_clear:N { \tl_build_begin:N } \__kernel_patch_deprecation:nnNNpn { 2023-10-18 } { \tl_build_gbegin:N } \cs_new_protected:Npn \tl_build_gclear:N { \tl_build_gbegin:N } -\__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { [ \codepoint_generate:n ] } +\__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { [ \codepoint_generate:nn ] } \cs_gset:Npn \char_to_utfviii_bytes:n { \__kernel_codepoint_to_bytes:n } \__kernel_patch_deprecation:nnNNpn { 2022-10-09 } { \codepoint_to_nfd:n } \cs_gset:Npn \char_to_nfd:N #1 { \codepoint_to_nfd:n {`#1} } @@ -36772,10 +36894,16 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_gset:Npn \char_lowercase:N { \text_lowercase:n } \__kernel_patch_deprecation:nnNNpn { 2022-10-17 } { \text_uppercase:n } \cs_gset:Npn \char_uppercase:N { \text_uppercase:n } +\__kernel_patch_deprecation:nnNNpn { 2022-10-17 } { \text_titlecase_first:n } +\cs_gset:Npn \char_titlecase:N { \text_titlecase_first:n } \__kernel_patch_deprecation:nnNNpn { 2022-10-17 } { \str_casefold:n } \cs_gset:Npn \char_foldcase:N { \str_casefold:n } \__kernel_patch_deprecation:nnNNpn { 2022-10-17 } { \str_lowercase:n } \cs_gset:Npn \char_str_lowercase:N { \str_lowercase:n } +\__kernel_patch_deprecation:nnNNpn { 2022-10-17 } + { \tl_to_str:e { \text_titlecase_first:n } } +\cs_gset:Npn \char_str_titlecase:N #1 + { \tl_to_str:e { \text_titlecase_first:n {#1} } } \__kernel_patch_deprecation:nnNNpn { 2022-10-17 } { \str_uppercase:n } \cs_gset:Npn \char_str_uppercase:N { \str_uppercase:n } \__kernel_patch_deprecation:nnNNpn { 2022-10-17 } { \str_casefold:n } |