diff options
author | Karl Berry <karl@freefriends.org> | 2020-06-03 21:26:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-06-03 21:26:23 +0000 |
commit | 810785e2302cd260eb73f01e897c5e5978963cb8 (patch) | |
tree | a832daf8f6a5bc8c0d1dc54758abb5561e93cdb9 /Master/texmf-dist/tex/latex/l3kernel | |
parent | 27b8d6a6263cb4e808d7f6ad452462f9f455e97c (diff) |
l3 (3jun20)
git-svn-id: svn://tug.org/texlive/trunk@55406 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
4 files changed, 65 insertions, 34 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 5249b817c19..d1eab62be8b 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-15}% +\def\ExplFileDate{2020-06-03}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -21066,25 +21066,27 @@ \bool_new:N \g__str_error_bool \flag_new:n { str_byte } \flag_new:n { str_error } -\prg_new_conditional:Npnn \__str_if_contains_char:NN #1#2 { T , TF } +\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 #2 - #1 { \prg_break:n { ? \fi: } } + \exp_after:wN \__str_if_contains_char_aux:nn \exp_after:wN {#1} {#2} + { \prg_break:n { ? \fi: } } \prg_break_point: \prg_return_false: } -\prg_new_conditional:Npnn \__str_if_contains_char:nN #1#2 { TF } +\cs_new:Npn \__str_if_contains_char_aux:nn #1#2 + { \__str_if_contains_char_auxi:nN {#2} #1 } +\prg_new_conditional:Npnn \__str_if_contains_char:nn #1#2 { TF } { - \__str_if_contains_char_aux:NN #2 #1 { \prg_break:n { ? \fi: } } + \__str_if_contains_char_auxi:nN {#2} #1 { \prg_break:n { ? \fi: } } \prg_break_point: \prg_return_false: } -\cs_new:Npn \__str_if_contains_char_aux:NN #1#2 +\cs_new:Npn \__str_if_contains_char_auxi:nN #1#2 { \if_charcode:w #1 #2 \exp_after:wN \__str_if_contains_char_true: \fi: - \__str_if_contains_char_aux:NN #1 + \__str_if_contains_char_auxi:nN {#1} } \cs_new:Npn \__str_if_contains_char_true: { \prg_break:n { \prg_return_true: \use_none:n } } @@ -21777,22 +21779,22 @@ \str_const:Nn \c__str_escape_name_not_str { ! " $ & ' } %$ \str_const:Nn \c__str_escape_name_str { {}/<>[] } \cs_new_protected:Npn \__str_convert_escape_name: - { \__str_convert_gmap:N \__str_escape_name_char:N } -\cs_new:Npn \__str_escape_name_char:N #1 + { \__str_convert_gmap:N \__str_escape_name_char:n } +\cs_new:Npn \__str_escape_name_char:n #1 { - \__str_if_escape_name:NTF #1 {#1} + \__str_if_escape_name:nTF {#1} {#1} { \c_hash_str \__str_output_hexadecimal:n {`#1} } } -\prg_new_conditional:Npnn \__str_if_escape_name:N #1 { TF } +\prg_new_conditional:Npnn \__str_if_escape_name:n #1 { TF } { \if_int_compare:w `#1 < "2A \exp_stop_f: - \__str_if_contains_char:NNTF \c__str_escape_name_not_str #1 + \__str_if_contains_char:NnTF \c__str_escape_name_not_str {#1} \prg_return_true: \prg_return_false: \else: \if_int_compare:w `#1 > "7E \exp_stop_f: \prg_return_false: \else: - \__str_if_contains_char:NNTF \c__str_escape_name_str #1 + \__str_if_contains_char:NnTF \c__str_escape_name_str {#1} \prg_return_false: \prg_return_true: \fi: \fi: @@ -21805,8 +21807,8 @@ { \__str_if_escape_string:NTF #1 { - \__str_if_contains_char:NNT - \c__str_escape_string_str #1 + \__str_if_contains_char:NnT + \c__str_escape_string_str {#1} { \c_backslash_str } #1 } @@ -21830,22 +21832,22 @@ \fi: } \cs_new_protected:Npn \__str_convert_escape_url: - { \__str_convert_gmap:N \__str_escape_url_char:N } -\cs_new:Npn \__str_escape_url_char:N #1 + { \__str_convert_gmap:N \__str_escape_url_char:n } +\cs_new:Npn \__str_escape_url_char:n #1 { - \__str_if_escape_url:NTF #1 {#1} + \__str_if_escape_url:nTF {#1} {#1} { \c_percent_str \__str_output_hexadecimal:n { `#1 } } } -\prg_new_conditional:Npnn \__str_if_escape_url:N #1 { TF } +\prg_new_conditional:Npnn \__str_if_escape_url:n #1 { TF } { \if_int_compare:w `#1 < "41 \exp_stop_f: - \__str_if_contains_char:nNTF { "-.<> } #1 + \__str_if_contains_char:nnTF { "-.<> } {#1} \prg_return_true: \prg_return_false: \else: \if_int_compare:w `#1 > "7E \exp_stop_f: \prg_return_false: \else: - \__str_if_contains_char:nNTF { [ ] } #1 + \__str_if_contains_char:nnTF { [ ] } {#1} \prg_return_false: \prg_return_true: \fi: \fi: @@ -22330,6 +22332,43 @@ \prg_break: } \group_end: +\cs_new:Npn \str_convert_pdfname:n #1 + { + \exp_args:Ne \tl_to_str:n + { \str_map_function:nN {#1} \__str_convert_pdfname:n } + } +\bool_lazy_or:nnTF + { \sys_if_engine_luatex_p: } + { \sys_if_engine_xetex_p: } + { + \cs_new:Npn \__str_convert_pdfname:n #1 + { + \int_compare:nNnTF { `#1 } > { "7F } + { \__str_convert_pdfname_bytes:n {#1} } + { \__str_escape_name_char:n {#1} } + } + \cs_new:Npn \__str_convert_pdfname_bytes:n #1 + { + \exp_args:Ne \__str_convert_pdfname_bytes_aux:n + { \char_to_utfviii_bytes:n {`#1} } + } + \cs_new:Npn \__str_convert_pdfname_bytes_aux:n #1 + { \__str_convert_pdfname_bytes_aux:nnnn #1 } + \cs_new:Npx \__str_convert_pdfname_bytes_aux:nnnn #1#2#3#4 + { + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#1} + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#2} + \exp_not:N \tl_if_blank:nF {#3} + { + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#3} + \exp_not:N \tl_if_blank:nF {#4} + { + \c_hash_str \exp_not:N \__str_output_hexadecimal:n {#4} + } + } + } + } + { \cs_new_eq:NN \__str_convert_pdfname:n \__str_escape_name_char:n } %% File: l3tl-analysis.dtx \scan_new:N \s__tl \cs_new_eq:NN \l__tl_analysis_token ? @@ -26656,15 +26695,7 @@ { \__color_select:w #1 \s__color_stop } \cs_generate_variant:Nn \__color_select:n { V } \cs_new_protected:Npn \__color_select:w #1 ~ #2 \s__color_stop - { \use:c { __color_select_ #1 :w } #2 \s__color_stop } -\cs_new_protected:Npn \__color_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop - { \__color_backend_cmyk:nnnn {#1} {#2} {#3} {#4} } -\cs_new_protected:Npn \__color_select_gray:w #1 \s__color_stop - { \__color_backend_gray:n {#1} } -\cs_new_protected:Npn \__color_select_rgb:w #1 ~ #2 ~ #3 \s__color_stop - { \__color_backend_rgb:nnn {#1} {#2} {#3} } -\cs_new_protected:Npn \__color_select_spot:w #1 ~ #2 \s__color_stop - { \__color_backend_spot:nn {#1} {#2} } + { \use:c { __color_backend_ #1 :w } #2 \s__color_stop } \tl_new:N \l__color_current_tl \tl_set:Nn \l__color_current_tl { gray~0 } %% File: l3coffins.dtx diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index e3eba08c2c6..cb8d09c4f0d 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-15}% +\def\ExplFileDate{2020-06-03}% \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 c0cbe0e53ab..538c3fddab2 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-15}% +\def\ExplFileDate{2020-06-03}% \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 8878c82ddf8..4ded77abe6b 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-15}% +\def\ExplFileDate{2020-06-03}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% |