diff options
author | Karl Berry <karl@freefriends.org> | 2023-12-08 21:36:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-12-08 21:36:03 +0000 |
commit | 801627f1bc8e15dbaf9dabf3eb66d5926b77171d (patch) | |
tree | 4f96944a520e450c5710b54b6e2ab3dd17289957 /Master/texmf-dist/tex/latex | |
parent | 6d3705c4cb01ac51e8b9224ceef15066cf850536 (diff) |
l3kernel (8dec23)
git-svn-id: svn://tug.org/texlive/trunk@69066 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 | 700 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3debug.def | 11 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/l3doc.cls | 160 |
6 files changed, 505 insertions, 382 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 } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 0c7206d4094..abad4be7ae9 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-11-09}% +\def\ExplFileDate{2023-12-08}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 @@ -92,7 +92,7 @@ } \tex_input:D #1 .def \scan_stop: } -\sys_everyjob: +\__kernel_sys_everyjob: \bool_new:N \g__kernel_backend_header_bool \bool_gset_true:N \g__kernel_backend_header_bool \sys_load_backend:n { } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 54d24346c1b..a07ab4a15a6 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-11-09}% +\def\ExplFileDate{2023-12-08}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 @@ -137,10 +137,10 @@ \tex_everyjob:D \exp_after:wN { \tex_the:D \tex_everyjob:D - \sys_everyjob: + \__kernel_sys_everyjob: } } - { \sys_everyjob: } + { \__kernel_sys_everyjob: } \reverse_if:N \if_cs_exist:N \s__expl_stop \scan_new:N \s__expl_stop \fi: diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 0d984b2c84a..f2b134ad294 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-11-09}% +\def\ExplFileDate{2023-12-08}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% @@ -164,10 +164,10 @@ \tex_everyjob:D \exp_after:wN { \tex_the:D \tex_everyjob:D - \sys_everyjob: + \__kernel_sys_everyjob: } } - { \sys_everyjob: } + { \__kernel_sys_everyjob: } \reverse_if:N \if_cs_exist:N \s__expl_stop \scan_new:N \s__expl_stop \fi: diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def index 5a506c6cb41..0c3acc61766 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}{2019-04-06}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2023-12-08}{}{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 @@ -466,6 +466,10 @@ \skip_set_eq:NN \skip_add:Nn \skip_sub:Nn + \str_clear:N + \str_set_eq:NN + \str_put_left:Nn + \str_put_right:Nn \__kernel_tl_set:Ne \tl_clear:N \tl_set_eq:NN @@ -531,6 +535,10 @@ \skip_gset_eq:NN \skip_gadd:Nn \skip_gsub:Nn + \str_gclear:N + \str_gset_eq:NN + \str_gput_left:Nn + \str_gput_right:Nn \__kernel_tl_gset:Ne \tl_gclear:N \tl_gset_eq:NN @@ -565,6 +573,7 @@ \intarray_const_from_clist:Nn \muskip_const:Nn \skip_const:Nn + \str_const:Nn \tl_const:Nn } \__kernel_patch:nnn diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 238756a9bdb..b9c4d377118 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -42,8 +42,9 @@ \prop_new:N \g__codedoc_missing_tests_prop \seq_new:N \g__codedoc_not_tested_seq \seq_new:N \g__codedoc_testfiles_seq -\bool_new:N \l__codedoc_macro_internal_set_bool +\bool_new:N \l__codedoc_macro_deprecated_bool \bool_new:N \l__codedoc_macro_internal_bool +\bool_new:N \l__codedoc_macro_nodoc_bool \bool_new:N \l__codedoc_macro_TF_bool \bool_new:N \l__codedoc_macro_pTF_bool \bool_new:N \l__codedoc_macro_noTF_bool @@ -102,33 +103,16 @@ \cs_new_eq:NN \__codedoc_tmpa:w ? \cs_new_eq:NN \__codedoc_tmpb:w ? \cs_generate_variant:Nn \seq_set_split:Nnn { NoV } -\cs_generate_variant:Nn \seq_gput_right:Nn { Nf } -\cs_generate_variant:Nn \str_case:nn { fn } -\cs_generate_variant:Nn \tl_count:n { f } -\cs_generate_variant:Nn \tl_greplace_all:Nnn { Nx , Nno } -\cs_generate_variant:Nn \tl_if_empty:nTF { f } -\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNTF { o } -\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNT { o } -\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNF { o } -\cs_generate_variant:Nn \tl_if_head_eq_meaning:nNF { V } -\cs_generate_variant:Nn \tl_if_in:nnTF { no , oo } -\cs_generate_variant:Nn \tl_if_in:NnTF { No } -\cs_generate_variant:Nn \tl_if_in:NnT { No } -\cs_generate_variant:Nn \tl_if_in:NnF { No } -\cs_generate_variant:Nn \tl_remove_all:Nn { Nx } -\cs_generate_variant:Nn \tl_replace_all:Nnn { Nx , Nnx, No , Nno } -\cs_generate_variant:Nn \tl_replace_once:Nnn { Noo } -\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV } -\cs_generate_variant:Nn \tl_to_str:n { f , o } +\cs_generate_variant:Nn \tl_to_str:n { f } \prg_new_protected_conditional:Npnn \__codedoc_if_almost_str:n #1 { TF , T , F } { \int_compare:nNnTF { \tl_count:n {#1} } - < { \tl_count:f { \tl_to_str:f {#1} } } + < { \tl_count:e { \tl_to_str:f {#1} } } { \prg_return_false: } { \prg_return_true: } } -\cs_generate_variant:Nn \__codedoc_if_almost_str:nT { V } +\prg_generate_conditional_variant:Nnn \__codedoc_if_almost_str:n { V } { T } \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} } @@ -173,7 +157,7 @@ \cs_new_protected:Npn \__codedoc_detect_internals_aux:N #1 { \tl_set_eq:NN \l__codedoc_detect_internals_tl #1 - \tl_replace_all:Non \l__codedoc_detect_internals_tl { \token_to_str:N _ } { _ } + \tl_replace_all:NVn \l__codedoc_detect_internals_tl \c_underscore_str { _ } \seq_set_split:NnV \l__codedoc_tmpa_seq { _ _ } \l__codedoc_detect_internals_tl \seq_pop_left:NN \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl \seq_map_variable:NNn \l__codedoc_tmpa_seq \l__codedoc_detect_internals_tl @@ -695,9 +679,9 @@ \bool_if:NT \l__codedoc_cmd_replace_bool { \tl_set_rescan:Nnn \l__codedoc_tmpb_tl { } { _ } - \tl_replace_all:Non \l__codedoc_cmd_tl \l__codedoc_tmpb_tl { _ } + \tl_replace_all:NVn \l__codedoc_cmd_tl \l__codedoc_tmpb_tl { _ } \__codedoc_replace_at_at:N \l__codedoc_cmd_tl - \tl_replace_all:Nno \l__codedoc_cmd_tl { _ } \l__codedoc_tmpb_tl + \tl_replace_all:NnV \l__codedoc_cmd_tl { _ } \l__codedoc_tmpb_tl } \mode_if_math:T { \mbox } { @@ -751,7 +735,7 @@ { \tl_set_rescan:Nnn \l__codedoc_tmpb_tl { \char_set_catcode:nn { `_ } {##1} } { _ } - \tl_replace_all:Non \l__codedoc_tmpa_tl \l__codedoc_tmpb_tl + \tl_replace_all:NVn \l__codedoc_tmpa_tl \l__codedoc_tmpb_tl { \__codedoc_ensuremath_sb:n } } \exp_args:NV \__codedoc_meta_original:n \l__codedoc_tmpa_tl @@ -809,8 +793,8 @@ \cs_new_protected:Npn \__codedoc_get_hyper_target:nN #1#2 { \__kernel_tl_set:Ne #2 { \tl_to_str:n {#1} } - \tl_replace_all:Nen #2 { \c_underscore_str } { / } - \tl_remove_all:Ne #2 { \c_backslash_str } + \tl_replace_all:NVn #2 \c_underscore_str { / } + \tl_remove_all:NV #2 \c_backslash_str \tl_put_left:Nn #2 { doc/function// } } \cs_generate_variant:Nn \__codedoc_get_hyper_target:nN { o , e } @@ -886,8 +870,8 @@ { \seq_pop:NN #1 \l__codedoc_tmpa_tl \tl_gset_eq:NN \g__codedoc_base_name_tl \l__codedoc_tmpa_tl - \tl_greplace_all:Nno \g__codedoc_base_name_tl - { ~ } { \c_catcode_other_space_tl } + \tl_greplace_all:NnV \g__codedoc_base_name_tl + { ~ } \c_catcode_other_space_tl \seq_get:NN #1 \l__codedoc_tmpa_tl \str_if_eq:VnTF \l__codedoc_tmpa_tl { \scan_stop: } { @@ -923,13 +907,10 @@ \cs_generate_variant:Nn \__codedoc_names_typeset_block:nN { e } \prg_new_conditional:Npnn \__codedoc_if_macro_internal:n #1 { p , T , F , TF } { - \bool_if:NTF \l__codedoc_macro_internal_set_bool - { - \bool_if:NTF \l__codedoc_macro_internal_bool - { \prg_return_true: } { \prg_return_false: } - } + \bool_if:NTF \l__codedoc_macro_internal_bool + { \prg_return_true: } { - \tl_if_empty:fTF + \tl_if_empty:eTF { \exp_after:wN \__codedoc_if_macro_internal_aux:w \tl_to_str:n { #1 ~ __ } @@ -993,7 +974,8 @@ } , added .code:n = { \__codedoc_date_set_past:Nn \l__codedoc_date_added_tl {#1} }, updated .code:n = { \__codedoc_date_set_past:Nn \l__codedoc_date_updated_tl {#1} } , - deprecated .code:n = {} , % A stub + deprecated .bool_set:N = \l__codedoc_macro_deprecated_bool , + no-user-doc .bool_set:N = \l__codedoc_macro_nodoc_bool , tested .code:n = { } , label .code:n = { @@ -1292,18 +1274,14 @@ \msg_warning:nnnn { l3doc } { deprecated-option } { aux } { function/macro } } , + deprecated .bool_set:N = \l__codedoc_macro_deprecated_bool , internal .value_forbidden:n = true , internal .code:n = - { - \bool_set_true:N \l__codedoc_macro_internal_bool - \bool_set_true:N \l__codedoc_macro_internal_set_bool - } , + { \bool_set_true:N \l__codedoc_macro_internal_bool } , int .value_forbidden:n = true , int .code:n = - { - \bool_set_true:N \l__codedoc_macro_internal_bool - \bool_set_true:N \l__codedoc_macro_internal_set_bool - } , + { \bool_set_true:N \l__codedoc_macro_internal_bool } , + no-user-doc .bool_set:N = \l__codedoc_macro_nodoc_bool , var .value_forbidden:n = true , var .code:n = { \bool_set_true:N \l__codedoc_macro_var_bool } , @@ -1342,7 +1320,6 @@ } , added .code:n = {} , % TODO updated .code:n = {} , % TODO - deprecated .code:n = {} , % A stub verb .bool_set:N = \l__codedoc_names_verb_bool , module .tl_set:N = \l__codedoc_override_module_tl , documented-as .tl_set:N = \l__codedoc_macro_documented_tl , @@ -1366,8 +1343,8 @@ \cs_new_protected:Npn \__codedoc_macro_init: { \int_incr:N \l__codedoc_nested_macro_int + \bool_set_false:N \l__codedoc_macro_deprecated_bool \bool_set_false:N \l__codedoc_macro_internal_bool - \bool_set_false:N \l__codedoc_macro_internal_set_bool \bool_set_false:N \l__codedoc_macro_TF_bool \bool_set_false:N \l__codedoc_macro_pTF_bool \bool_set_false:N \l__codedoc_macro_noTF_bool @@ -1399,8 +1376,8 @@ \tl_if_empty:NTF \l__codedoc_macro_documented_tl { \__codedoc_names_block_base_map:N \__codedoc_macro_save_names_aux:n } { - \seq_gput_right:Nf \g__codedoc_nested_names_seq - { \exp_after:wN \token_to_str:N \l__codedoc_macro_documented_tl } + \seq_gput_right:Ne \g__codedoc_nested_names_seq + { \tl_to_str:N \l__codedoc_macro_documented_tl } } } \cs_new_protected:Npn \__codedoc_macro_save_names_aux:n #1 @@ -1446,7 +1423,6 @@ { \__codedoc_get_function_name:n {#1} } #2 } } -\cs_generate_variant:Nn \__codedoc_macro_typeset_block:nN { x } \cs_new_protected:Npn \__codedoc_macro_typeset_variant_list:nN #1#2 { \seq_map_inline:Nn \g__codedoc_variants_seq @@ -1467,7 +1443,12 @@ \DoNotIndex {#1} \bool_if:NT #2 { - \__codedoc_if_macro_internal:nF {#1} + \bool_lazy_any:nF + { + { \__codedoc_if_macro_internal_p:n {#1} } + { \l__codedoc_macro_deprecated_bool } + { \l__codedoc_macro_nodoc_bool } + } { \seq_gput_right:Nn \g_doc_macros_seq {#1} } \hbox_set:Nw \l__codedoc_macro_index_box \hbox_unpack_drop:N \l__codedoc_macro_index_box @@ -1505,8 +1486,8 @@ \int_compare:nTF { \str_count:n {#1} <= 28 } { \MacroFont } { \MacroLongFont } \tl_set:Nn \l__codedoc_tmpa_tl {#1} - \tl_replace_all:Nno \l__codedoc_tmpa_tl - { ~ } { \c_catcode_other_space_tl } + \tl_replace_all:NnV \l__codedoc_tmpa_tl + { ~ } \c_catcode_other_space_tl \__codedoc_macroname_prefix:o \l__codedoc_tmpa_tl \__codedoc_macroname_suffix:N #2 } @@ -1609,8 +1590,8 @@ \cs_new_protected:Npn \__codedoc_macro_end_wrap_item:n #1 { \tl_set:Nn \l__codedoc_tmpa_tl {#1} - \tl_replace_all:Non \l__codedoc_tmpa_tl - { \token_to_str:N _ } { \_ } + \tl_replace_all:NVn \l__codedoc_tmpa_tl + \c_underscore_str { \_ } \texttt { \l__codedoc_tmpa_tl } } \cs_new_protected:Npn \__codedoc_print_end_definition: @@ -1632,7 +1613,14 @@ { \seq_gset_filter:NNn \g__codedoc_nested_names_seq \g__codedoc_nested_names_seq - { ! \__codedoc_if_macro_internal_p:n {##1} } + { + ! \bool_lazy_any_p:n + { + { \__codedoc_if_macro_internal_p:n {##1} } + { \l__codedoc_macro_deprecated_bool } + { \l__codedoc_macro_nodoc_bool } + } + } \seq_if_empty:NF \g__codedoc_nested_names_seq { \int_set:Nn \l__codedoc_tmpa_int @@ -1995,18 +1983,18 @@ \tl_clear:N \l__codedoc_doc_def_tl \tl_clear:N \l__codedoc_doc_undef_tl \tl_clear:N \l__codedoc_undoc_def_tl + \seq_gremove_duplicates:N \g_doc_functions_seq + \seq_gremove_duplicates:N \g_doc_macros_seq \seq_map_inline:Nn \g_doc_functions_seq { \seq_if_in:NnTF \g_doc_macros_seq {##1} { \tl_put_right:Ne \l__codedoc_doc_def_tl - { ##1 \iow_newline: } - \iow_now:Nn \g__codedoc_func_iow { > ~ ##1 } + { \iow_newline: > ~ ##1 } } { \tl_put_right:Ne \l__codedoc_doc_undef_tl - { ##1 \iow_newline: } - \iow_now:Nn \g__codedoc_func_iow { ! ~ ##1 } + { \iow_newline: ! ~ ##1 } } } \seq_map_inline:Nn \g_doc_macros_seq @@ -2014,8 +2002,7 @@ \seq_if_in:NnF \g_doc_functions_seq {##1} { \tl_put_right:Ne \l__codedoc_undoc_def_tl - { ##1 \iow_newline: } - \iow_now:Nn \g__codedoc_func_iow { ? ~ ##1 } + { \iow_newline: ? ~ ##1 } } } \__codedoc_functions_typeout:nN @@ -2040,11 +2027,11 @@ { \tl_if_empty:NF #2 { - \typeout + \iow_now:Ne \g__codedoc_func_iow { \c__codedoc_iow_midrule_tl \iow_newline: #1 \iow_newline: - \c__codedoc_iow_midrule_tl \iow_newline: + \c__codedoc_iow_midrule_tl #2 } \tl_clear:N #2 @@ -2275,7 +2262,7 @@ \__kernel_tl_set:Ne #1 { \tl_to_str:n {#2} } \__codedoc_if_almost_str:nTF {#2} { - \tl_replace_all:Non #1 { \tl_to_str:n { __ } } + \tl_replace_all:Nen #1 { \tl_to_str:n { __ } } { \verbatimchar \token_to_str:N \_ \token_to_str:N \_ @@ -2298,8 +2285,8 @@ } { \tl_set:Nn #1 {#2} - \tl_replace_all:Non #1 - { \c_backslash_str } + \tl_replace_all:NVn #1 + \c_backslash_str { \token_to_str:N \bslash \c_space_tl } } \__codedoc_quote_special_char:N #1 @@ -2312,27 +2299,26 @@ { \tl_to_str:N ##1 } { \quotechar \tl_to_str:N ##1 } } } -\cs_new_protected:Npn \__codedoc_key_get:n #1 +\cs_new_protected:Npe \__codedoc_key_get:n #1 { - \__codedoc_key_get_base:nN {#1} \l__codedoc_index_macro_tl - \__kernel_tl_set:Ne \l__codedoc_index_key_tl - { \tl_to_str:N \l__codedoc_index_macro_tl } - \tl_clear:N \l__codedoc_index_module_tl - \tl_if_in:NoTF \l__codedoc_index_key_tl { \tl_to_str:n { __ } } - { \bool_set_true:N \l__codedoc_index_internal_bool } - { \bool_set_false:N \l__codedoc_index_internal_bool } - \exp_last_unbraced:NNo - \tl_if_head_eq_charcode:oNT - { \l__codedoc_index_key_tl } \c_backslash_str - { \__codedoc_key_pop: } - \tl_if_in:NoTF \l__codedoc_index_key_tl { \token_to_str:N : } - { \__codedoc_key_func: } + \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 + { \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 { __ } } + { \bool_set_true:N \exp_not:N \l__codedoc_index_internal_bool } + { \bool_set_false:N \exp_not:N \l__codedoc_index_internal_bool } + \exp_not:N \tl_if_head_eq_charcode:VNT + \exp_not:N \l__codedoc_index_key_tl \c_backslash_str + { \exp_not:N \__codedoc_key_pop: } + \tl_if_in:NnTF \exp_not:N \l__codedoc_index_key_tl { \token_to_str:N : } + { \exp_not:N \__codedoc_key_func: } { - \tl_if_in:NoTF \l__codedoc_index_key_tl { \token_to_str:N _ } - { \__codedoc_key_var: } + \tl_if_in:NnTF \exp_not:N \l__codedoc_index_key_tl { \token_to_str:N _ } + { \exp_not:N \__codedoc_key_var: } { - \tl_if_in:NoT \l__codedoc_index_key_tl { \token_to_str:N @ } - { \tl_set:Nn \l__codedoc_index_module_tl { TeX } } + \tl_if_in:NnT \exp_not:N \l__codedoc_index_key_tl { \token_to_str:N @ } + { \tl_set:Nn \exp_not:N \l__codedoc_index_module_tl { TeX } } } } } @@ -2350,12 +2336,12 @@ } \cs_new_protected:Npn \__codedoc_key_drop_underscores: { - \tl_if_head_eq_charcode:oNT { \l__codedoc_index_key_tl } _ + \tl_if_head_eq_charcode:VNT \l__codedoc_index_key_tl _ { \__codedoc_key_pop: \__codedoc_key_drop_underscores: } } \cs_new_protected:Npn \__codedoc_key_func: { - \tl_if_head_eq_charcode:oNT { \l__codedoc_index_key_tl } . + \tl_if_head_eq_charcode:VNT \l__codedoc_index_key_tl . { \__codedoc_key_pop: } \__codedoc_key_drop_underscores: \tl_set_eq:NN \l__codedoc_index_module_tl \l__codedoc_index_key_tl @@ -2367,7 +2353,7 @@ \exp_args:Ne \tl_if_head_eq_charcode:nNTF { \exp_args:No \str_tail:n \l__codedoc_index_key_tl } _ { - \str_case:fn { \str_head:N \l__codedoc_index_key_tl } + \str_case:en { \str_head:N \l__codedoc_index_key_tl } { { q } { \tl_set:Nn \l__codedoc_index_module_tl { quark } } { s } { \tl_set:Nn \l__codedoc_index_module_tl { scan } } |