diff options
author | Karl Berry <karl@freefriends.org> | 2020-05-14 21:16:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-05-14 21:16:02 +0000 |
commit | bb587f3190ec7933ee6a18e994099e566c6e8009 (patch) | |
tree | 6619bbe50d37ded7861833bc580028c2a8cca64c /Master/texmf-dist/tex/latex/l3kernel | |
parent | 9e186a1e49f4a0ef3154b453e114e0e7adc6ae6c (diff) |
l3 (14may20)
git-svn-id: svn://tug.org/texlive/trunk@55142 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
4 files changed, 131 insertions, 79 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 4e1b9a8bdc0..d68df11175c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -68,7 +68,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2020-05-11}% +\def\ExplFileDate{2020-05-14}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -12818,92 +12818,144 @@ \cs_new:Npn \__keyval_loop_active:NNw ##1 ##2 ##3 #1 { \__keyval_if_recursion_tail:w ##3 - \__keyval_end_loop_active:w \s__keyval_mark \s__keyval_tail + \__keyval_end_loop_active:w \s__keyval_tail \__keyval_loop_other:NNw ##1 ##2 ##3 , \s__keyval_tail , \__keyval_loop_active:NNw ##1 ##2 \s__keyval_mark } + \cs_new:Npn \__keyval_split_other:w ##1 = ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop + { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 } + \cs_new:Npn \__keyval_split_active:w ##1 #2 ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop + { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 } \cs_new:Npn \__keyval_loop_other:NNw ##1 ##2 ##3 , { \__keyval_if_recursion_tail:w ##3 - \__keyval_end_loop_other:w \s__keyval_mark \s__keyval_tail - \__keyval_if_has_equal_other:w ##3 = \s__keyval_stop - \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn - { - \__keyval_if_has_equal_active:w ##3 #2 \s__keyval_stop - \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn - \__keyval_misplaced_equal_error: - { \__keyval_split_other:w ##3 = \s__keyval_stop ##2 } - } - { - \__keyval_if_has_equal_active:w ##3 #2 \s__keyval_stop - \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn - { \__keyval_split_active:w ##3 #2 \s__keyval_stop ##2 } - { - \__keyval_if_blank:w ##3 \s__keyval_nil \s__keyval_stop - \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n - { \__keyval_trim:nN { ##3 } \__keyval_key:nN ##1 } - } - } + \__keyval_end_loop_other:w \s__keyval_tail + \__keyval_split_active:w ##3 \s__keyval_nil + \s__keyval_mark \__keyval_split_active_auxi:w + #2 \s__keyval_mark \__keyval_clean_up_active:w + \s__keyval_stop + ##1 ##2 \__keyval_loop_other:NNw ##1 ##2 \s__keyval_mark } - \cs_new:Npn \__keyval_split_active:w ##1 #2 - { \__keyval_trim:nN { ##1 } \__keyval_split_active:nw \s__keyval_mark } - \cs_new:Npn \__keyval_split_active:nw ##1 ##2 #2 ##3 \s__keyval_stop + \cs_new:Npn \__keyval_split_active_auxi:w ##1 \s__keyval_stop + { + \__keyval_split_other:w ##1 \s__keyval_nil + \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w + = \s__keyval_mark \__keyval_split_active_auxii:w + \s__keyval_stop + } + \cs_new:Npn \__keyval_split_active_auxii:w + ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w + \s__keyval_stop \s__keyval_mark + { \__keyval_trim:nN { ##1 } \__keyval_split_active_auxiii:w } + \cs_new:Npn \__keyval_split_active_auxiii:w ##1 ##2 \s__keyval_nil + { + \__keyval_split_active:w ##2 \s__keyval_nil + \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w + #2 \s__keyval_mark \__keyval_split_active_auxiv:w + \s__keyval_stop + { ##1 } + } + \cs_new:Npn \__keyval_split_active_auxiv:w + ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w + \s__keyval_stop \s__keyval_mark + { + \__keyval_split_other:w ##1 \s__keyval_nil + \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w + = \s__keyval_mark \__keyval_split_active_auxv:w + \s__keyval_stop + } + \cs_new:Npn \__keyval_split_active_auxv:w + ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w + \s__keyval_stop \s__keyval_mark + { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN } + \cs_new:Npn \__keyval_clean_up_active:w + ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_active_auxi:w \s__keyval_stop \s__keyval_mark + { + \__keyval_split_other:w ##1 \s__keyval_nil + \s__keyval_mark \__keyval_split_other_auxi:w + = \s__keyval_mark \__keyval_clean_up_other:w + \s__keyval_stop + } + \cs_new:Npn \__keyval_split_other_auxi:w ##1 \s__keyval_stop + { \__keyval_trim:nN { ##1 } \__keyval_split_other_auxii:w } + \cs_new:Npn \__keyval_split_other_auxii:w ##1 ##2 \s__keyval_nil + { + \__keyval_split_other:w ##2 \s__keyval_nil + \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w + = \s__keyval_mark \__keyval_split_other_auxiii:w + \s__keyval_stop + { ##1 } + } + \cs_new:Npn \__keyval_split_other_auxiii:w + ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w + \s__keyval_stop \s__keyval_mark + { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN } + \cs_new:Npn \__keyval_clean_up_other:w + ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_other_auxi:w \s__keyval_stop \s__keyval_mark + { + \__keyval_if_blank:w ##1 \s__keyval_nil \s__keyval_stop \__keyval_blank_true:w + \s__keyval_mark \s__keyval_stop \use:n + { \__keyval_trim:nN { ##1 } \__keyval_key:nNN } + } + \cs_new:Npn \__keyval_misplaced_equal_after_active_error:w + \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil + \s__keyval_mark ##3 \s__keyval_nil ##4 ##5 + { + \__kernel_msg_expandable_error:nn + { kernel } { misplaced-equals-sign } + } + \cs_new:Npn \__keyval_misplaced_equal_in_split_error:w + \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil + ##3 ##4 ##5 { - \__keyval_if_empty:w \s__keyval_mark ##3 \s__keyval_stop - \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn - { \__keyval_misplaced_equal_error: \use_none:n } - { \__keyval_trim:nN { ##2 } \__keyval_key_val:nnN { ##1 } } + \__kernel_msg_expandable_error:nn + { kernel } { misplaced-equals-sign } } - \cs_new:Npn \__keyval_if_has_equal_active:w ##1 #2 - { \__keyval_if_empty:w \s__keyval_mark } + \cs_new:Npn \__keyval_end_loop_other:w + \s__keyval_tail + \__keyval_split_active:w ##1 \s__keyval_nil + \s__keyval_mark \__keyval_split_active_auxi:w + #2 \s__keyval_mark \__keyval_clean_up_active:w + \s__keyval_stop + ##2 ##3 + \__keyval_loop_other:NNw ##4 \s__keyval_mark + { } + \cs_new:Npn \__keyval_end_loop_active:w + \s__keyval_tail + \__keyval_loop_other:NNw ##1 , \s__keyval_tail , + \__keyval_loop_active:NNw ##2 \s__keyval_mark + { } } \char_set_catcode_active:n { `\, } \char_set_catcode_active:n { `\= } \__keyval_tmp:NN , = \group_end: -\cs_new:Npn \__keyval_end_loop_active:w - \s__keyval_mark \s__keyval_tail - \__keyval_loop_other:NNw #1 , \s__keyval_tail , - \__keyval_loop_active:NNw #2 \s__keyval_mark - { } -\cs_new:Npn \__keyval_end_loop_other:w - \s__keyval_mark \s__keyval_tail - \__keyval_if_has_equal_other:w #1 = \s__keyval_stop - \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn - #2 - \__keyval_loop_other:NNw #3 \s__keyval_mark - { } -\cs_new:Npn \__keyval_split_other:w #1 = - { \__keyval_trim:nN { #1 } \__keyval_split_other:nw \s__keyval_mark } -\cs_new:Npn \__keyval_split_other:nw #1 #2 = #3 \s__keyval_stop - { - \__keyval_if_empty:w \s__keyval_mark #3 \s__keyval_stop - \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn - { \__keyval_misplaced_equal_error: \use_none:n } - { \__keyval_trim:nN { #2 } \__keyval_key_val:nnN { #1 } } - } -\cs_new:Npn \__keyval_key:nN #1 #2 - { \exp_not:n { #2 { #1 } } } -\cs_new:Npn \__keyval_key_val:nnN #1 #2 #3 - { - \__keyval_if_empty:w \s__keyval_mark #2 \s__keyval_stop - \__keyval_empty_key:w \s__keyval_mark \s__keyval_stop - \exp_not:n { #3 { #2 } { #1 } } - } -\cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop {} +\cs_new:Npn \__keyval_pair:nnNN #1 #2 #3 #4 + { + \__keyval_if_blank:w \s__keyval_mark #2 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w + \s__keyval_mark \s__keyval_stop + \exp_not:n { #4 { #2 } { #1 } } + } +\cs_new:Npn \__keyval_key:nNN #1 #2 #3 + { + \__keyval_if_blank:w \s__keyval_mark #1 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w + \s__keyval_mark \s__keyval_stop + \exp_not:n { #2 { #1 } } + } +\cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop { } \cs_new:Npn \__keyval_if_blank:w \s__keyval_mark #1 { \__keyval_if_empty:w \s__keyval_mark } -\cs_new:Npn \__keyval_if_recursion_tail:w #1 \s__keyval_mark \s__keyval_tail {} -\cs_new:Npn \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn #1 #2 { #2 } -\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n #1 {} -\cs_new:Npn \__keyval_empty_key:w \s__keyval_mark \s__keyval_stop \exp_not:n #1 - { \__keyval_misplaced_equal_error: } -\cs_new:Npn \__keyval_if_has_equal_other:w #1 = - { \__keyval_if_empty:w \s__keyval_mark } -\cs_new:Npn \__keyval_misplaced_equal_error: - { \__kernel_msg_expandable_error:nn { kernel } { misplaced-equals-sign } } +\cs_new:Npn \__keyval_if_recursion_tail:w \s__keyval_mark #1 \s__keyval_tail { } +\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n #1 #2 #3 { } +\cs_new:Npn \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop \exp_not:n #1 + { + \__kernel_msg_expandable_error:nn + { kernel } { blank-key-name } + } \__kernel_msg_new:nnn { kernel } { misplaced-equals-sign } { Misplaced~equals~sign~in~key-value~input~\msg_line_context: } +\__kernel_msg_new:nnn { kernel } { blank-key-name } + { Blank~key~name~in~key-value~input~\msg_line_context: } \group_begin: \cs_set_protected:Npn \__keyval_tmp:n #1 { @@ -12912,7 +12964,7 @@ \__keyval_trim_auxi:w ##1 \s__keyval_nil - \s__keyval_mark #1 {} + \s__keyval_mark #1 { } \s__keyval_mark \__keyval_trim_auxii:w \__keyval_trim_auxiii:w #1 \s__keyval_nil @@ -13005,11 +13057,11 @@ \cs_if_exist:cTF { \c__keys_props_root_str \l__keys_property_str } { \__keys_define_code:n {#2} } { - \str_if_empty:NF \l__keys_property_str - { - \__kernel_msg_error:nnxx { kernel } { key-property-unknown } - { \l__keys_property_str } { \l_keys_path_str } - } + \str_if_empty:NF \l__keys_property_str + { + \__kernel_msg_error:nnxx { kernel } { key-property-unknown } + { \l__keys_property_str } { \l_keys_path_str } + } } } \cs_new_protected:Npn \__keys_property_find:n #1 @@ -13772,7 +13824,7 @@ } { \__kernel_msg_error:nnxx { kernel } { key-unknown } - { \l_keys_path_str } { \l__keys_module_str } + { \l_keys_path_str } { \l__keys_module_str } } } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index ca20bd595a7..d81e7eafb3a 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{2020-05-11}% +\def\ExplFileDate{2020-05-14}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index 0cf5f0fd3a1..e65631921ef 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{2020-05-11}% +\def\ExplFileDate{2020-05-14}% \let\ExplLoaderFileDate\ExplFileDate \everyjob\expandafter{\the\everyjob \message{L3 programming layer <\ExplFileDate>}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index b962ab36e6e..ad6f7625caf 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{2020-05-11}% +\def\ExplFileDate{2020-05-14}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% |