From a72677ceac3bac82e6a17901b433376a0d03c1db Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 24 Oct 2019 21:48:00 +0000 Subject: l3kernel (24oct19) git-svn-id: svn://tug.org/texlive/trunk@52524 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/l3kernel/expl3-code.tex | 178 ++++++++++----------- .../tex/latex/l3kernel/expl3-generic.tex | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.ltx | 2 +- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 2 +- 4 files changed, 88 insertions(+), 96 deletions(-) (limited to 'Master/texmf-dist/tex/latex/l3kernel') diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index beba4ee3583..2ed1eb291df 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -65,7 +65,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2019-10-21}% +\def\ExplFileDate{2019-10-24}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -10392,7 +10392,7 @@ \tex_openin:D #1 \sys_if_engine_luatex:TF { {#2} } - { #2 \scan_stop: } + { \exp_not:N \__kernel_file_name_quote:n {#2} \scan_stop: } } \cs_new_protected:Npn \ior_close:N #1 { @@ -10567,10 +10567,7 @@ \cs_new_protected:Npn \iow_open:Nn #1#2 { \tl_set:Nx \l__iow_file_name_tl - { - \__kernel_file_name_quote:e - { \__kernel_file_name_sanitize:n {#2} } - } + { \__kernel_file_name_sanitize:n {#2} } \iow_close:N #1 \seq_gpop:NNTF \g__iow_streams_seq \l__iow_stream_tl { \__iow_open_stream:NV #1 \l__iow_file_name_tl } @@ -10585,7 +10582,8 @@ { \tex_global:D \tex_chardef:D #1 = \l__iow_stream_tl \scan_stop: \prop_gput:NVn \g__iow_streams_prop #1 {#2} - \tex_immediate:D \tex_openout:D #1 #2 \scan_stop: + \tex_immediate:D \tex_openout:D + #1 \__kernel_file_name_quote:n {#2} \scan_stop: } \cs_generate_variant:Nn \__iow_open_stream:Nn { NV } \cs_new_protected:Npn \iow_close:N #1 @@ -11008,8 +11006,11 @@ { \exp_args:Ne \__kernel_file_name_trim_spaces:n { - \__kernel_file_name_expand_loop:w #1 - \q_recursion_tail \q_recursion_stop + \exp_args:Ne \__kernel_file_name_strip_quotes:n + { + \__kernel_file_name_expand_loop:w #1 + \q_recursion_tail \q_recursion_stop + } } } \cs_new:Npn \__kernel_file_name_expand_loop:w #1 \q_recursion_stop @@ -11058,6 +11059,26 @@ \c_space_tl \exp_not:N \__kernel_file_name_expand_loop:w } +\cs_new:Npn \__kernel_file_name_strip_quotes:n #1 + { + \__kernel_file_name_strip_quotes:nnnw {#1} { 0 } { } + #1 " \q_recursion_tail " \q_recursion_stop + } +\cs_new:Npn \__kernel_file_name_strip_quotes:nnnw #1#2#3#4 " + { + \quark_if_recursion_tail_stop_do:nn {#4} + { \__kernel_file_name_strip_quotes:nnn {#1} {#2} {#3} } + \__kernel_file_name_strip_quotes:nnnw {#1} { #2 + 1 } { #3#4 } + } +\cs_new:Npn \__kernel_file_name_strip_quotes:nnn #1#2#3 + { + \int_if_even:nT {#2} + { + \__kernel_msg_expandable_error:nnn + { kernel } { unbalanced-quote-in-filename } {#1} + } + #3 + } \cs_new:Npn \__kernel_file_name_trim_spaces:n #1 { \__kernel_file_name_trim_spaces:nw {#1} #1 . \q_nil . \q_stop } \cs_new:Npn \__kernel_file_name_trim_spaces:nw #1#2 . #3 . #4 \q_stop @@ -11073,27 +11094,8 @@ { \__kernel_file_name_trim_spaces_aux:w #1 } \cs_new:Npn \__kernel_file_name_trim_spaces_aux:w #1 \s_stop {#1} \cs_new:Npn \__kernel_file_name_quote:n #1 - { - \__kernel_file_name_quote_auxi:nnnw {#1} { 0 } { } - #1 " \q_recursion_tail " \q_recursion_stop - } -\cs_generate_variant:Nn \__kernel_file_name_quote:n { e } -\cs_new:Npn \__kernel_file_name_quote_auxi:nnnw #1#2#3#4 " - { - \quark_if_recursion_tail_stop_do:nn {#4} - { \__kernel_file_name_quote_auxii:nnn {#1} {#2} {#3} } - \__kernel_file_name_quote_auxi:nnnw {#1} { #2 + 1 } { #3#4 } - } -\cs_new:Npn \__kernel_file_name_quote_auxii:nnn #1#2#3 - { - \int_if_even:nT {#2} - { - \__kernel_msg_expandable_error:nnn - { kernel } { unbalanced-quote-in-filename } {#1} - } - \__kernel_file_name_quote_auxiii:nw {#3} #3 ~ \q_nil \q_stop - } -\cs_new:Npn \__kernel_file_name_quote_auxiii:nw #1 #2 ~ #3 \q_stop + { \__kernel_file_name_quote:nw {#1} #1 ~ \q_nil \q_stop } +\cs_new:Npn \__kernel_file_name_quote:nw #1 #2 ~ #3 \q_stop { \quark_if_nil:nTF {#3} { #1 } @@ -11116,18 +11118,22 @@ } { \prg_return_false: } } -\cs_new_protected:Npn \__file_get_aux:nnN #1#2#3 +\cs_new_protected:Npx \__file_get_aux:nnN #1#2#3 { - \if_false: { \fi: + \exp_not:N \if_false: { \exp_not:N \fi: \group_begin: \int_set_eq:NN \tex_tracingnesting:D \c_zero_int - \exp_args:No \tex_everyeof:D { \c__file_marker_tl } + \exp_not:N \exp_args:No \tex_everyeof:D + { \exp_not:N \c__file_marker_tl } #2 \scan_stop: - \exp_after:wN \__file_get_do:Nw - \exp_after:wN #3 - \exp_after:wN \prg_do_nothing: - \tex_input:D #1 \scan_stop: - \if_false: } \fi: + \exp_not:N \exp_after:wN \exp_not:N \__file_get_do:Nw + \exp_not:N \exp_after:wN #3 + \exp_not:N \exp_after:wN \exp_not:N \prg_do_nothing: + \exp_not:N \tex_input:D + \sys_if_engine_luatex:TF + { {#1} } + { \exp_not:N \__kernel_file_name_quote:n {#1} \scan_stop: } + \exp_not:N \if_false: } \exp_not:N \fi: } \exp_args:Nno \use:nn { \cs_new_protected:Npn \__file_get_do:Nw #1#2 } @@ -11136,16 +11142,13 @@ \group_end: \tl_set:No #1 {#2} } -\cs_new_eq:NN \__file_file_size:n \tex_filesize:D +\cs_new_eq:NN \__file_size:n \tex_filesize:D \sys_if_engine_luatex:T { - \cs_gset:Npn \__file_file_size:n #1 + \cs_gset:Npn \__file_size:n #1 { \lua_now:e - { - l3kernel.filesize - ( " \lua_escape:e {#1} " ) - } + { l3kernel.filesize ( " \lua_escape:e {#1} " ) } } } \cs_new:Npn \file_full_name:n #1 @@ -11154,76 +11157,65 @@ { \__kernel_file_name_sanitize:n {#1} } } \cs_new:Npn \__file_full_name:n #1 - { - \exp_args:Ne \__file_full_name:nn - { \__kernel_file_name_quote:n {#1} } {#1} - } -\cs_new:Npn \__file_full_name:nn #1#2 { \tl_if_blank:nF {#1} { - \tl_if_blank:eTF { \__file_file_size:n {#1} } + \tl_if_blank:eTF { \__file_size:n {#1} } { \seq_map_tokens:Nn \l_file_search_path_seq - { \__file_full_name_aux:nn {#2} } + { \__file_full_name_aux:nn {#1} } \cs_if_exist:NT \input@path { \tl_map_tokens:Nn \input@path - { \__file_full_name_aux:nn {#2} } + { \__file_full_name_aux:nn {#1} } } - \__file_file_name_end: + \__file_name_end: } - { \__file_file_ext_check:n {#1} } + { \__file_ext_check:n {#1} } } } \cs_new:Npn \__file_full_name_aux:nn #1#2 - { - \exp_args:Ne \__file_full_name_aux:n - { \__kernel_file_name_quote:e { \tl_to_str:n {#2} / #1 } } - } + { \exp_args:Ne \__file_full_name_aux:n { \tl_to_str:n {#2} / #1 } } \cs_new:Npn \__file_full_name_aux:n #1 { - \tl_if_blank:eF { \__file_file_size:n {#1} } + \tl_if_blank:eF { \__file_size:n {#1} } { \seq_map_break:n { - \__file_file_ext_check:n {#1} - \__file_file_name_cleanup:w + \__file_ext_check:n {#1} + \__file_name_cleanup:w } } } -\cs_new:Npn \__file_file_name_cleanup:w #1 \__file_file_name_end: { } -\cs_new:Npn \__file_file_name_end: { } -\cs_new:Npn \__file_file_ext_check:n #1 - { \__file_file_ext_check_auxi:nw {#1} #1 " #1 " \q_stop } -\cs_new:Npn \__file_file_ext_check_auxi:nw #1#2 " #3 " #4 \q_stop - { \__file_file_ext_check_auxii:nw {#1} #3 / \q_nil / \q_stop } -\cs_new:Npn \__file_file_ext_check_auxii:nw #1#2 / #3 / #4 \q_stop +\cs_new:Npn \__file_name_cleanup:w #1 \__file_name_end: { } +\cs_new:Npn \__file_name_end: { } +\cs_new:Npn \__file_ext_check:n #1 + { \__file_ext_check:nw { / } #1 / \q_nil / \q_stop } +\cs_new:Npn \__file_ext_check:nw #1 #2 / #3 / #4 \q_stop { \quark_if_nil:nTF {#3} - { \__file_file_ext_check_auxiii:nw {#1} #2 . \q_nil . \q_stop } - { \__file_file_ext_check_auxii:nw {#1} #3 / #4 \q_stop } + { + \exp_args:No \__file_ext_check:nnw + { \use_none:n #1 } {#2} #2 . \q_nil . \q_stop + } + { \__file_ext_check:nw { #1 #2 / } #3 / #4 \q_stop } } -\cs_new:Npx \__file_file_ext_check_auxiii:nw #1#2 . #3 . #4 \q_stop +\cs_new:Npx \__file_ext_check:nnw #1#2#3 . #4 . #5 \q_stop { - \exp_not:N \quark_if_nil:nTF {#3} + \exp_not:N \quark_if_nil:nTF {#4} { - \exp_not:N \exp_args:Nee \exp_not:N \__file_file_ext_check_auxiv:nn - { \exp_not:N \__kernel_file_name_quote:n {#1} } - { - \exp_not:N \__kernel_file_name_quote:n - { #1 \tl_to_str:n { .tex } } - } + \exp_not:N \__file_ext_check:nn + { #1 #2 } { #1 #2 \tl_to_str:n { .tex } } } - {#1} + { #1 #2 } } -\cs_new:Npn \__file_file_ext_check_auxiv:nn #1#2 +\cs_new:Npn \__file_ext_check:nn #1#2 { - \tl_if_blank:eTF { \__file_file_size:n {#2} } + \tl_if_blank:eTF { \__file_size:n {#2} } {#1} { \int_compare:nNnTF - { \__file_file_size:n {#1} } = { \__file_file_size:n {#2} } + { \__file_size:n {#1} } = { \__file_size:n {#2} } {#2} {#1} } @@ -11302,10 +11294,7 @@ \cs_new_protected:Npn \__file_get_full_name_search:nN #1#2 { \tl_set:Nx \l__file_full_name_tl - { - \__kernel_file_name_quote:e - { \tl_to_str:n {#1} \l__file_base_name_tl } - } + { \tl_to_str:n {#1} \l__file_base_name_tl } \__kernel_ior_open:No \g__file_internal_ior \l__file_full_name_tl \ior_if_eof:NF \g__file_internal_ior { #2 { \prg_break: } } } @@ -11493,14 +11482,17 @@ { \__file_input:V \l__file_full_name_tl } { \__kernel_file_missing:n {#1} } } -\cs_new_protected:Npn \__file_input:n #1 +\cs_new_protected:Npx \__file_input:n #1 { - \clist_if_exist:NTF \@filelist - { \@addtofilelist {#1} } - { \seq_gput_right:Nn \g__file_record_seq {#1} } - \__file_input_push:n {#1} - \tex_input:D #1 \c_space_tl - \__file_input_pop: + \exp_not:N \clist_if_exist:NTF \exp_not:N \@filelist + { \exp_not:N \@addtofilelist {#1} } + { \seq_gput_right:Nn \exp_not:N \g__file_record_seq {#1} } + \exp_not:N \__file_input_push:n {#1} + \exp_not:N \tex_input:D + \sys_if_engine_luatex:TF + { {#1} } + { \exp_not:N \__kernel_file_name_quote:n {#1} \scan_stop: } + \exp_not:N \__file_input_pop: } \cs_generate_variant:Nn \__file_input:n { V } \cs_new_protected:Npn \__file_input_push:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 258765ae5fb..a836f70aec9 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{2019-10-21}% +\def\ExplFileDate{2019-10-24}% \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 50a4d8b52b8..dbeefa3cf48 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{2019-10-21}% +\def\ExplFileDate{2019-10-24}% \let\ExplLoaderFileDate\ExplFileDate \everyjob\expandafter{\the\everyjob \message{expl3 <\ExplFileDate> L3 programming layer}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index bf0dac992fd..9c6286928e6 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{2019-10-21}% +\def\ExplFileDate{2019-10-24}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% -- cgit v1.2.3