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