diff options
author | Karl Berry <karl@freefriends.org> | 2018-08-24 22:18:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-08-24 22:18:02 +0000 |
commit | 9067afb3f8bce172638d12a6f926ab82547590e6 (patch) | |
tree | fa13c48c4ed98564fbcee7220e7c1b76b4fbfefe /Master/texmf-dist/tex/latex/l3kernel | |
parent | 8d113437aa8a3fae9dc8603507fa4aa9f64c5517 (diff) |
l3 (24aug18)
git-svn-id: svn://tug.org/texlive/trunk@48476 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
9 files changed, 205 insertions, 132 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index b07a1cf252b..ee3ce0a28f8 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -63,7 +63,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project -\def\ExplFileDate{2018-06-14}% +\def\ExplFileDate{2018-08-23}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -225,7 +225,7 @@ }>0 % \everyjob\expandafter{% \the\expandafter\everyjob - \csname\detokenize{lua_now_x:n}\endcsname{require("expl3")}% + \csname\detokenize{lua_now:n}\endcsname{require("expl3")}% }% \fi \fi @@ -2172,7 +2172,10 @@ \cs_set_nopar:Npx \l__exp_internal_tl {#1} \l__exp_internal_tl } -\cs_set:Npn \use_x:n #1 { \tex_expanded:D {#1} } +\cs_set:Npn \use:e #1 { \tex_expanded:D {#1} } +\tex_ifdefined:D \tex_expanded:D \tex_else:D + \cs_set:Npn \use:e #1 { \exp_args:Ne \use:n {#1} } +\tex_fi:D \cs_set:Npn \use:n #1 {#1} \cs_set:Npn \use:nn #1#2 {#1#2} \cs_set:Npn \use:nnn #1#2#3 {#1#2#3} @@ -3018,7 +3021,7 @@ { \bool_if:NTF #3 { - \str_if_eq_x:nnF { } + \str_if_eq:eeF { } { \tl_map_function:nN {#2} \__cs_generate_from_signature:n } { \__kernel_msg_error:nnx { kernel } { non-base-function } @@ -5018,7 +5021,7 @@ \exp_not:c { tl_ #1 :Nx } ##1 { \exp_not:N \tl_to_str:n {##2} } } - \cs_generate_variant:cn { str_ #1 :Nn } { Nx , cn , cx } + \cs_generate_variant:cn { str_ #1 :Nn } { NV , Nx , cn , cV , cx } \__str_tmp:n } } @@ -5092,46 +5095,46 @@ { p , T , F , TF } \prg_new_eq_conditional:NNn \str_if_empty:c \tl_if_empty:c { p , T , F , TF } -\cs_new:Npn \__str_if_eq_x:nn #1#2 { \tex_strcmp:D {#1} {#2} } +\cs_new:Npn \__str_if_eq:nn #1#2 { \tex_strcmp:D {#1} {#2} } \cs_if_exist:NT \tex_luatexversion:D { - \cs_set_eq:NN \lua_escape_x:n \tex_luaescapestring:D - \cs_set_eq:NN \lua_now_x:n \tex_directlua:D - \cs_set:Npn \__str_if_eq_x:nn #1#2 + \cs_set_eq:NN \lua_escape:e \tex_luaescapestring:D + \cs_set_eq:NN \lua_now:e \tex_directlua:D + \cs_set:Npn \__str_if_eq:nn #1#2 { - \lua_now_x:n + \lua_now:e { l3kernel.strcmp ( - " \__str_escape_x:n {#1} " , - " \__str_escape_x:n {#2} " + " \__str_escape:n {#1} " , + " \__str_escape:n {#2} " ) } } - \cs_new:Npn \__str_escape_x:n #1 + \cs_new:Npn \__str_escape:n #1 { - \lua_escape_x:n - { \__kernel_tl_to_str:w \use_x:n { {#1} } } + \lua_escape:e + { \__kernel_tl_to_str:w \use:e { {#1} } } } } \prg_new_conditional:Npnn \str_if_eq:nn #1#2 { p , T , F , TF } { \if_int_compare:w - \__str_if_eq_x:nn { \exp_not:n {#1} } { \exp_not:n {#2} } + \__str_if_eq:nn { \exp_not:n {#1} } { \exp_not:n {#2} } = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } \prg_generate_conditional_variant:Nnn \str_if_eq:nn - { V , o , nV , no , VV } { p , T , F , TF } -\prg_new_conditional:Npnn \str_if_eq_x:nn #1#2 { p , T , F , TF } + { V , v , o , nV , no , VV , nv } { p , T , F , TF } +\prg_new_conditional:Npnn \str_if_eq:ee #1#2 { p , T , F , TF } { - \if_int_compare:w \__str_if_eq_x:nn {#1} {#2} = 0 \exp_stop_f: + \if_int_compare:w \__str_if_eq:nn {#1} {#2} = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_conditional:Npnn \str_if_eq:NN #1#2 { p , TF , T , F } { \if_int_compare:w - \__str_if_eq_x:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 } + \__str_if_eq:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 } = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } \prg_generate_conditional_variant:Nnn \str_if_eq:NN @@ -5181,33 +5184,33 @@ { \__str_case_end:nw {#3} } { \__str_case:nw {#1} } } -\cs_new:Npn \str_case_x:nn #1#2 +\cs_new:Npn \str_case_e:nn #1#2 { \exp:w - \__str_case_x:nnTF {#1} {#2} { } { } + \__str_case_e:nnTF {#1} {#2} { } { } } -\cs_new:Npn \str_case_x:nnT #1#2#3 +\cs_new:Npn \str_case_e:nnT #1#2#3 { \exp:w - \__str_case_x:nnTF {#1} {#2} {#3} { } + \__str_case_e:nnTF {#1} {#2} {#3} { } } -\cs_new:Npn \str_case_x:nnF #1#2 +\cs_new:Npn \str_case_e:nnF #1#2 { \exp:w - \__str_case_x:nnTF {#1} {#2} { } + \__str_case_e:nnTF {#1} {#2} { } } -\cs_new:Npn \str_case_x:nnTF #1#2 +\cs_new:Npn \str_case_e:nnTF #1#2 { \exp:w - \__str_case_x:nnTF {#1} {#2} + \__str_case_e:nnTF {#1} {#2} } -\cs_new:Npn \__str_case_x:nnTF #1#2#3#4 - { \__str_case_x:nw {#1} #2 {#1} { } \q_mark {#3} \q_mark {#4} \q_stop } -\cs_new:Npn \__str_case_x:nw #1#2#3 +\cs_new:Npn \__str_case_e:nnTF #1#2#3#4 + { \__str_case_e:nw {#1} #2 {#1} { } \q_mark {#3} \q_mark {#4} \q_stop } +\cs_new:Npn \__str_case_e:nw #1#2#3 { - \str_if_eq_x:nnTF {#1} {#2} + \str_if_eq:eeTF {#1} {#2} { \__str_case_end:nw {#3} } - { \__str_case_x:nw {#1} } + { \__str_case_e:nw {#1} } } \cs_new:Npn \__str_case_end:nw #1#2#3 \q_mark #4#5 \q_stop { \exp_end: #1 #4 } @@ -5611,6 +5614,22 @@ \cs_new_eq:NN \str_show:n \tl_show:n \cs_new_eq:NN \str_show:N \tl_show:N \cs_generate_variant:Nn \str_show:N { c } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nn } +\cs_new:Npn \str_case_x:nn { \str_case_e:nn } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nnT } +\cs_new:Npn \str_case_x:nnT { \str_case_e:nnT } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nnF } +\cs_new:Npn \str_case_x:nnF { \str_case_e:nnF } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nnTF } +\cs_new:Npn \str_case_x:nnTF { \str_case_e:nnTF } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq_p:ee } +\cs_new:Npn \str_if_eq_x_p:nn { \str_if_eq_p:ee } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq:eeT } +\cs_new:Npn \str_if_eq_x:nnT { \str_if_eq:eeT } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq:eeF } +\cs_new:Npn \str_if_eq_x:nnF { \str_if_eq:eeF } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq:eeTF } +\cs_new:Npn \str_if_eq_x:nnTF { \str_if_eq:eeTF } %% File: l3quark.dtx Copyright (C) 1990-2018 The LaTeX3 Project \__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN q #1 } { } \cs_new_protected:Npn \quark_new:N #1 @@ -7610,7 +7629,7 @@ \tl_map_inline:nn { { luatex } { pdftex } { ptex } { uptex } { xetex } } { \__sys_const:nn { sys_if_engine_ #1 } - { \str_if_eq_x_p:nn \c_sys_engine_str {#1} } + { \str_if_eq_p:Vn \c_sys_engine_str {#1} } } \str_const:Nx \c_sys_output_str { @@ -7620,9 +7639,9 @@ { dvi } } \__sys_const:nn { sys_if_output_dvi } - { \str_if_eq_x_p:nn \c_sys_output_str { dvi } } + { \str_if_eq_p:Vn \c_sys_output_str { dvi } } \__sys_const:nn { sys_if_output_pdf } - { \str_if_eq_x_p:nn \c_sys_output_str { pdf } } + { \str_if_eq_p:Vn \c_sys_output_str { pdf } } \__sys_const:nn { sys_if_rand_exist } { \cs_if_exist_p:N \tex_uniformdeviate:D } %% File: l3clist.dtx Copyright (C) 2004-2011 Frank Mittelbach, @@ -8373,7 +8392,7 @@ { #3 \exp_after:wN \exp_after:wN \exp_after:wN \exp_end: - \lua_now_x:n { l3kernel.charcat(#1, #2) } + \lua_now:e { l3kernel.charcat(#1, #2) } } } { @@ -8567,7 +8586,7 @@ ##1 \tl_to_str:n { ma } ##2 \c_colon_str ##3 \exp_not:N \q_stop } { - \str_if_eq_x:nnTF { #2 } { cro } + \str_if_eq:nnTF { #2 } { cro } { \prg_return_true: } { \prg_return_false: } } @@ -8623,7 +8642,7 @@ \exp_not:N \prg_return_false: \exp_not:N \else: } - \exp_not:N \str_if_eq_x:nnTF + \exp_not:N \str_if_eq:eeTF { \exp_not:N \exp_after:wN \exp_not:c { __token_delimit_by_ #2 :w } @@ -9065,7 +9084,7 @@ } \cs_new:Npn \__prop_item_Nn:nwwn #1#2 \__prop_pair:wn #3 \s__prop #4 { - \str_if_eq_x:nnTF {#1} {#3} + \str_if_eq:eeTF {#1} {#3} { \prg_break:n { \exp_not:n {#4} } } { \__prop_item_Nn:nwwn {#1} } } @@ -9150,7 +9169,7 @@ } \cs_new:Npn \__prop_if_in:nwwn #1#2 \__prop_pair:wn #3 \s__prop #4 { - \str_if_eq_x:nnTF {#1} {#3} + \str_if_eq:eeTF {#1} {#3} { \__prop_if_in:N } { \__prop_if_in:nwwn {#1} } } @@ -9671,7 +9690,7 @@ \seq_put_right:Nn \l__msg_class_loop_seq {#1} \prop_get:cnNT { l__msg_redirect_ #1 _prop } {#3} \l__msg_class_tl { - \str_if_eq_x:nnF { \l__msg_class_tl } {#1} + \str_if_eq:VnF \l__msg_class_tl {#1} { \tl_if_eq:NNTF \l__msg_class_tl \l__msg_current_class_tl { @@ -11407,7 +11426,7 @@ \cs_generate_variant:Nn \skip_gsub:Nn { c } \prg_new_conditional:Npnn \skip_if_eq:nn #1#2 { p , T , F , TF } { - \str_if_eq_x:nnTF { \skip_eval:n { #1 } } { \skip_eval:n { #2 } } + \str_if_eq:eeTF { \skip_eval:n { #1 } } { \skip_eval:n { #2 } } { \prg_return_true: } { \prg_return_false: } } @@ -11868,11 +11887,8 @@ \cs_if_exist:cTF { \c__keys_type_root_tl \__keys_parent:o \l_keys_path_tl } { - \str_if_eq_x:nnTF - { - \exp_not:v - { \c__keys_type_root_tl \__keys_parent:o \l_keys_path_tl } - } + \str_if_eq:vnTF + { \c__keys_type_root_tl \__keys_parent:o \l_keys_path_tl } { choice } { \__kernel_msg_error:nnxx { kernel } { nested-choice-key } @@ -13117,10 +13133,10 @@ #2 \s__fp_mark { #3 #1 } #4 } -\cs_new:Npn \__fp_str_if_eq_x:nn #1#2 { \tex_strcmp:D {#1} {#2} } +\cs_new:Npn \__fp_str_if_eq:nn #1#2 { \tex_strcmp:D {#1} {#2} } \sys_if_engine_luatex:T { - \cs_set:Npn \__fp_str_if_eq_x:nn #1#2 + \cs_set:Npn \__fp_str_if_eq:nn #1#2 { \tex_directlua:D { @@ -14210,7 +14226,7 @@ \if_catcode:w \scan_stop: \exp_not:N #1 \if_meaning:w \scan_stop: #1 \if_int_compare:w - \__fp_str_if_eq_x:nn { \s__fp } { \exp_not:N #1 } + \__fp_str_if_eq:nn { \s__fp } { \exp_not:N #1 } = 0 \exp_stop_f: 0 \__kernel_msg_expandable_error:nnn @@ -14224,7 +14240,7 @@ \fi: \else: \if_int_compare:w - \__fp_str_if_eq_x:nn { \int_value:w #1 } { \tex_the:D #1 } + \__fp_str_if_eq:nn { \int_value:w #1 } { \tex_the:D #1 } = 0 \exp_stop_f: \int_value:w #1 \else: @@ -14512,7 +14528,7 @@ { \if_catcode:w \scan_stop: \exp_not:N #2 \if_int_compare:w - \__fp_str_if_eq_x:nn { \s__fp_mark } { \exp_not:N #2 } + \__fp_str_if_eq:nn { \s__fp_mark } { \exp_not:N #2 } = 0 \exp_stop_f: \exp_after:wN \exp_after:wN \exp_after:wN \__fp_parse_infix_mark:NNN @@ -17125,7 +17141,7 @@ \cs_new:Npn \__fp_pow_normal_o:ww \s__fp \__fp_chk:w 1 #1#2#3; \s__fp \__fp_chk:w #4#5 { - \if_int_compare:w \__fp_str_if_eq_x:nn { #2 #3 } + \if_int_compare:w \__fp_str_if_eq:nn { #2 #3 } { 1 {1000} {0000} {0000} {0000} } = 0 \exp_stop_f: \if_int_compare:w #4 #1 = 32 \exp_stop_f: \exp_after:wN \__fp_case_return_ii_o:ww @@ -20145,7 +20161,7 @@ } \cs_new:Npn \__regex_escape_x_test:N #1 { - \str_if_eq_x:nnTF {#1} { break } { ; } + \str_if_eq:nnTF {#1} { break } { ; } { \if_charcode:w \c_space_token #1 \exp_after:wN \__regex_escape_x_test:N @@ -20167,7 +20183,7 @@ } \cs_new:Npn \__regex_escape_x:N #1 { - \str_if_eq_x:nnTF {#1} { break } { ; } + \str_if_eq:nnTF {#1} { break } { ; } { \__regex_hexadecimal_use:NTF #1 { ; \__regex_escape_loop:N } @@ -20176,7 +20192,7 @@ } \cs_new:Npn \__regex_escape_x_loop:N #1 { - \str_if_eq_x:nnTF {#1} { break } + \str_if_eq:nnTF {#1} { break } { ; \__regex_escape_x_loop_error:n { } {#1} } { \__regex_hexadecimal_use:NTF #1 @@ -20550,7 +20566,7 @@ } \cs_new_protected:Npn \__regex_compile_quantifier_braced_auxi:w #1#2 { - \str_case_x:nnF { #1 #2 } + \str_case_e:nnF { #1 #2 } { { \__regex_compile_special:N \c_right_brace_str } { @@ -22865,7 +22881,7 @@ { Missing~right~brace~inserted~for~'\iow_char:N\\u'~escape. } { LaTeX~ - \str_if_eq_x:nnTF { } {#2} + \str_if_eq:eeTF { } {#2} { reached~the~end~of~the~string~ } { encountered~an~escaped~alphanumeric~character '\iow_char:N\\#2'~ } when~parsing~the~argument~of~an~ @@ -22995,7 +23011,7 @@ } \cs_new:Npn \__regex_msg_repeated:nnN #1#2#3 { - \str_if_eq_x:nnF { #1 #2 } { 1 0 } + \str_if_eq:eeF { #1 #2 } { 1 0 } { , ~ repeated ~ \int_case:nnF {#2} @@ -23421,7 +23437,7 @@ { \l__box_right_new_dim - \l__box_left_new_dim } \box_use_drop:N \l__box_internal_box } -\cs_new_protected:Npn \__box_rotate_x:nnN #1#2#3 +\cs_new_protected:Npn \__box_rotate_xdir:nnN #1#2#3 { \dim_set:Nn #3 { @@ -23432,7 +23448,7 @@ } } } -\cs_new_protected:Npn \__box_rotate_y:nnN #1#2#3 +\cs_new_protected:Npn \__box_rotate_ydir:nnN #1#2#3 { \dim_set:Nn #3 { @@ -23445,46 +23461,46 @@ } \cs_new_protected:Npn \__box_rotate_quadrant_one: { - \__box_rotate_y:nnN \l__box_right_dim \l__box_top_dim + \__box_rotate_ydir:nnN \l__box_right_dim \l__box_top_dim \l__box_top_new_dim - \__box_rotate_y:nnN \l__box_left_dim \l__box_bottom_dim + \__box_rotate_ydir:nnN \l__box_left_dim \l__box_bottom_dim \l__box_bottom_new_dim - \__box_rotate_x:nnN \l__box_left_dim \l__box_top_dim + \__box_rotate_xdir:nnN \l__box_left_dim \l__box_top_dim \l__box_left_new_dim - \__box_rotate_x:nnN \l__box_right_dim \l__box_bottom_dim + \__box_rotate_xdir:nnN \l__box_right_dim \l__box_bottom_dim \l__box_right_new_dim } \cs_new_protected:Npn \__box_rotate_quadrant_two: { - \__box_rotate_y:nnN \l__box_right_dim \l__box_bottom_dim + \__box_rotate_ydir:nnN \l__box_right_dim \l__box_bottom_dim \l__box_top_new_dim - \__box_rotate_y:nnN \l__box_left_dim \l__box_top_dim + \__box_rotate_ydir:nnN \l__box_left_dim \l__box_top_dim \l__box_bottom_new_dim - \__box_rotate_x:nnN \l__box_right_dim \l__box_top_dim + \__box_rotate_xdir:nnN \l__box_right_dim \l__box_top_dim \l__box_left_new_dim - \__box_rotate_x:nnN \l__box_left_dim \l__box_bottom_dim + \__box_rotate_xdir:nnN \l__box_left_dim \l__box_bottom_dim \l__box_right_new_dim } \cs_new_protected:Npn \__box_rotate_quadrant_three: { - \__box_rotate_y:nnN \l__box_left_dim \l__box_bottom_dim + \__box_rotate_ydir:nnN \l__box_left_dim \l__box_bottom_dim \l__box_top_new_dim - \__box_rotate_y:nnN \l__box_right_dim \l__box_top_dim + \__box_rotate_ydir:nnN \l__box_right_dim \l__box_top_dim \l__box_bottom_new_dim - \__box_rotate_x:nnN \l__box_right_dim \l__box_bottom_dim + \__box_rotate_xdir:nnN \l__box_right_dim \l__box_bottom_dim \l__box_left_new_dim - \__box_rotate_x:nnN \l__box_left_dim \l__box_top_dim + \__box_rotate_xdir:nnN \l__box_left_dim \l__box_top_dim \l__box_right_new_dim } \cs_new_protected:Npn \__box_rotate_quadrant_four: { - \__box_rotate_y:nnN \l__box_left_dim \l__box_top_dim + \__box_rotate_ydir:nnN \l__box_left_dim \l__box_top_dim \l__box_top_new_dim - \__box_rotate_y:nnN \l__box_right_dim \l__box_bottom_dim + \__box_rotate_ydir:nnN \l__box_right_dim \l__box_bottom_dim \l__box_bottom_new_dim - \__box_rotate_x:nnN \l__box_left_dim \l__box_bottom_dim + \__box_rotate_xdir:nnN \l__box_left_dim \l__box_bottom_dim \l__box_left_new_dim - \__box_rotate_x:nnN \l__box_right_dim \l__box_top_dim + \__box_rotate_xdir:nnN \l__box_right_dim \l__box_top_dim \l__box_right_new_dim } \fp_new:N \l__box_scale_x_fp @@ -24533,25 +24549,24 @@ Poles~of~coffin~#1 : #3 . } %% File: l3luatex.dtx Copyright (C) 2010-2018 The LaTeX3 Project -\cs_new_eq:NN \__luatex_escape_x:n \tex_luaescapestring:D -\cs_new_eq:NN \__luatex_now_x:n \tex_directlua:D -\cs_new_eq:NN \__luatex_shipout_x:n \tex_latelua:D -\cs_undefine:N \lua_escape_x:n -\cs_undefine:N \lua_now_x:n -\cs_new:Npn \lua_now_x:n #1 { \__luatex_now_x:n {#1} } -\cs_new:Npn \lua_now:n #1 { \lua_now_x:n { \exp_not:n {#1} } } -\cs_new_protected:Npn \lua_shipout_x:n #1 { \__luatex_shiphout_x:n {#1} } +\cs_new_eq:NN \__lua_escape:n \tex_luaescapestring:D +\cs_new_eq:NN \__lua_now:n \tex_directlua:D +\cs_new_eq:NN \__lua_shipout:n \tex_latelua:D +\cs_undefine:N \lua_escape:e +\cs_undefine:N \lua_now:e +\cs_new:Npn \lua_now:e #1 { \__lua_now:n {#1} } +\cs_new:Npn \lua_now:n #1 { \lua_now:e { \exp_not:n {#1} } } +\cs_new_protected:Npn \lua_shipout_e:n #1 { \__lua_shiphout:n {#1} } \cs_new_protected:Npn \lua_shipout:n #1 - { \lua_shipout_x:n { \exp_not:n {#1} } } -\cs_new:Npn \lua_escape_x:n #1 { \__luatex_escape_x:n {#1} } -\cs_new:Npn \lua_escape:n #1 { \lua_escape_x:n { \exp_not:n {#1} } } + { \lua_shipout_e:n { \exp_not:n {#1} } } +\cs_new:Npn \lua_escape:e #1 { \__lua_escape:n {#1} } +\cs_new:Npn \lua_escape:n #1 { \lua_escape:e { \exp_not:n {#1} } } \sys_if_engine_luatex:F { \clist_map_inline:nn { - \use_x:n , - \lua_escape_x:n , \lua_escape:n , - \lua_now_x:n , \lua_now:n + \lua_escape:n , \lua_escape:e , + \lua_now:n , \lua_now:e } { \cs_set:Npn #1 ##1 @@ -24561,7 +24576,7 @@ } } \clist_map_inline:nn - { \lua_shipout_x:n , \lua_shipout:n } + { \lua_shipout_e:n , \lua_shipout:n } { \cs_set_protected:Npn #1 ##1 { @@ -24576,6 +24591,12 @@ The~feature~you~are~using~is~only~available~ with~the~LuaTeX~engine.~LaTeX3~ignored~'#1'. } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \lua_now:e } +\cs_new:Npn \lua_now_x:n #1 { \__lua_now:n {#1} } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \lua_escape:e } +\cs_new:Npn \lua_escape_x:n #1 { \__lua_escape:n {#1} } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \lua_shipout_e:n } +\cs_new_protected:Npn \lua_shipout_x:n #1 { \__lua_shipout:n {#1} } %% File: l3unicode.dtx Copyright (C) 2018 The LaTeX3 Project \ior_new:N \g__char_data_ior \bool_lazy_or:nnTF { \sys_if_engine_luatex_p: } { \sys_if_engine_xetex_p: } @@ -24648,7 +24669,7 @@ { \tl_if_blank:nF {#1} { - \str_if_eq_x:nnF { \tl_head:n {#1} } { \c_hash_str } + \str_if_eq:eeF { \tl_head:n {#1} } { \c_hash_str } { \__char_data_auxi:w #1 \q_stop } } } @@ -24685,9 +24706,9 @@ { \tl_if_blank:nF {#1} { - \str_if_eq_x:nnTF { \tl_head:n {#1} } { \c_hash_str } + \str_if_eq:eeTF { \tl_head:n {#1} } { \c_hash_str } { - \str_if_eq_x:nnT + \str_if_eq:eeT {#1} { \c_hash_str \c_space_tl Conditional~Mappings } { \ior_map_break: } @@ -25097,10 +25118,10 @@ \file_get_full_name:nN {#1} \l__file_full_name_str \str_set:Nx #3 { - \lua_now_x:n + \lua_now:e { l3kernel.file#2 - ( " \lua_escape_x:n { \l__file_full_name_str } " ) + ( " \lua_escape:e { \l__file_full_name_str } " ) } } } @@ -25510,6 +25531,29 @@ \tex_shellescape:D } } +\sys_if_engine_luatex:TF + { + \str_const:Nx \c_sys_platform_str + { \lua_now:n { tex.print(os.type) } } + } + { + \file_if_exist:nTF { nul: } + { + \file_if_exist:nF { /dev/null } + { \str_const:Nn \c_sys_platform_str { windows } } + } + { + \file_if_exist:nT { /dev/null } + { \str_const:Nn \c_sys_platform_str { unix } } + } + } +\cs_if_exist:NF \c_sys_platform_str + { \str_const:Nn \c_sys_platform_str { unknown } } +\clist_map_inline:nn { unix , windows } + { + \__sys_const:nn { sys_if_platform_ #1 } + { \str_if_eq_p:Vn \c_sys_platform_str { #1 } } + } \__sys_const:nn { sys_if_shell } { \int_compare_p:nNn \c_sys_shell_escape_int > 0 } \__sys_const:nn { sys_if_shell_unrestricted } @@ -25522,8 +25566,8 @@ { \cs_new_protected:Npn \sys_shell_now:n #1 { - \lua_now_x:n - { os.execute(" \lua_escape_x:n { \tl_to_str:n {#1} } ") } + \lua_now:e + { os.execute(" \lua_escape:e { \tl_to_str:n {#1} } ") } } } { @@ -25535,8 +25579,8 @@ { \cs_new_protected:Npn \sys_shell_shipout:n #1 { - \lua_shipout_x:n - { os.execute(" \lua_escape_x:n { \tl_to_str:n {#1} } ") } + \lua_shipout_e:n + { os.execute(" \lua_escape:e { \tl_to_str:n {#1} } ") } } } { @@ -25610,21 +25654,27 @@ \str_if_empty:NTF \l__tl_file_name_str { \__kernel_file_missing:n {#4} } { - \group_begin: - \exp_args:No \tex_everyeof:D - { \c__tl_rescan_marker_tl \exp_not:N } - #3 \scan_stop: - \exp_after:wN \__tl_from_file_do:w - \exp_after:wN \prg_do_nothing: - \tex_input:D \l__tl_file_name_str \scan_stop: - \exp_args:NNNo \group_end: - #1 #2 \l__tl_internal_a_tl + \exp_args:NV \__tl_set_from:nNNn + \l__tl_file_name_str + #1 #2 {#3} } } \exp_args:Nno \use:nn { \cs_new_protected:Npn \__tl_from_file_do:w #1 } { \c__tl_rescan_marker_tl } { \tl_set:No \l__tl_internal_a_tl {#1} } +\cs_new_protected:Npn \__tl_set_from:nNNn #1#2#3#4 + { + \group_begin: + \exp_args:No \tex_everyeof:D + { \c__tl_rescan_marker_tl \exp_not:N } + #4 \scan_stop: + \exp_after:wN \__tl_from_file_do:w + \exp_after:wN \prg_do_nothing: + \tex_input:D #1 \scan_stop: + \exp_args:NNNo \group_end: + #2 #3 \l__tl_internal_a_tl + } \cs_new_protected:Npn \tl_set_from_file_x:Nnn { \__tl_set_from_file_x:NNnn \tl_set:Nn } \cs_new_protected:Npn \tl_gset_from_file_x:Nnn @@ -25647,6 +25697,29 @@ } } \str_new:N \l__tl_file_name_str +\cs_new_protected:Npn \tl_set_from_shell:Nnn + { \__tl_set_from_shell:NNnn \tl_set:Nn } +\cs_generate_variant:Nn \tl_set_from_shell:Nnn { c } +\cs_new_protected:Npn \tl_gset_from_shell:Nnn + { \__tl_set_from_shell:NNnn \tl_gset:Nn } +\cs_generate_variant:Nn \tl_gset_from_shell:Nnn { c } +\cs_new_protected:Npn \__tl_set_from_shell:NNnn #1#2#3#4 + { + \sys_if_shell:TF + { + \tl_set:Nn \l__tl_internal_a_tl {#4} + \tl_if_in:NnTF \l__tl_internal_a_tl { " } + { + \__kernel_msg_error:nnx + { kernel } { quote-in-shell } {#4} + } + { \__tl_set_from:nNNn { | " #4 " } #1 #2 {#3} } + } + { #1 #2 { } } + } +\__kernel_msg_new:nnnn { kernel } { quote-in-shell } + { Quotes~in~shell~command~'#1'. } + { Shell~commands~cannot~contain~quotes~("). } \cs_new:Npn \char_lower_case:N #1 { \__char_change_case:nNN { lower } \char_value_lccode:n #1 } \cs_new:Npn \char_upper_case:N #1 @@ -27009,7 +27082,7 @@ \__kernel_deprecation_error:Nnn \str_case:onn { \str_case:onF } { 2015-07-14 } \__kernel_deprecation_error:Nnn \str_case_x:nnn - { \str_case_x:nnF } { 2015-07-14 } + { \str_case_e:nnF } { 2015-07-14 } \__kernel_deprecation_error:Nnn \tl_case:cnn { \tl_case:cnF } { 2015-07-14 } \__kernel_deprecation_error:Nnn \tl_case:Nnn diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 0a797cade44..373507a4c79 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 Copyright (C) 1990-2018 The LaTeX3 Project -\def\ExplFileDate{2018-06-14}% +\def\ExplFileDate{2018-08-23}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 8c35b008653..6c3b94acfda 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 Copyright (C) 1990-2018 The LaTeX3 Project -\def\ExplFileDate{2018-06-14}% +\def\ExplFileDate{2018-08-23}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index dce81b3df6e..3247d6f568c 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -855,7 +855,7 @@ \tl_greplace_all:Nno \g__codedoc_base_name_tl { ~ } { \c_catcode_other_space_tl } \seq_get:NN #1 \l__codedoc_tmpa_tl - \str_if_eq_x:nnTF { \l__codedoc_tmpa_tl } { \scan_stop: } + \str_if_eq:VnTF \l__codedoc_tmpa_tl { \scan_stop: } { \seq_gclear:N \g__codedoc_variants_seq \__codedoc_names_typeset_auxii:x { \g__codedoc_base_name_tl } @@ -918,7 +918,7 @@ #1 { \l__codedoc_tmpa_tl - \str_if_eq_x:nnF { \l__codedoc_tmpb_tl } { \scan_stop: } + \str_if_eq:VnF \l__codedoc_tmpb_tl { \scan_stop: } { : \l__codedoc_tmpb_tl } \bool_if:NT \l__codedoc_macro_TF_bool { TF } } @@ -2065,7 +2065,7 @@ \tl_if_empty:nTF {#3} { { } { } { } } { - \str_if_eq_x:nnTF {#3} { TeX } + \str_if_eq:nnTF {#3} { TeX } { { TeX~and~LaTeX2e } { \string\TeX{}~and~\string\LaTeXe{} } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index dfb4dec6f0d..e4dc5a16b41 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -20,11 +20,11 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvidpfmx.def}{2018-06-14}{} + {l3dvidpfmx.def}{2018-08-23}{} {L3 Experimental driver: dvipdfmx} -\cs_new_eq:NN \__driver_literal_x:n \tex_special:D +\cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal_x:n { \exp_not:n {#1} } } + { \__driver_literal:e { \exp_not:n {#1} } } \cs_generate_variant:Nn \__driver_literal:n { x } \cs_new_protected:Npn \driver_color_pickup:N #1 { } \AtBeginDocument diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def index 7a13c44ddee..920c8628651 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def @@ -20,11 +20,11 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvips.def}{2018-06-14}{} + {l3dvips.def}{2018-08-23}{} {L3 Experimental driver: dvips} -\cs_new_eq:NN \__driver_literal_x:n \tex_special:D +\cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal_x:n { \exp_not:n {#1} } } + { \__driver_literal:e { \exp_not:n {#1} } } \cs_generate_variant:Nn \__driver_literal:n { x } \cs_new_protected:Npn \driver_color_pickup:N #1 { } \AtBeginDocument diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def index d11ba6a2554..32d4f658f60 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def @@ -20,11 +20,11 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvisvgm.def}{2018-06-14}{} + {l3dvisvgm.def}{2018-08-23}{} {L3 Experimental driver: dvisvgm} -\cs_new_eq:NN \__driver_literal_x:n \tex_special:D +\cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal_x:n { \exp_not:n {#1} } } + { \__driver_literal:e { \exp_not:n {#1} } } \cs_generate_variant:Nn \__driver_literal:n { x } \cs_new_protected:Npn \driver_color_pickup:N #1 { } \AtBeginDocument diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def index f1ed2af34f8..be271f63788 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -20,11 +20,11 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3pdfmode.def}{2018-06-14}{} + {l3pdfmode.def}{2018-08-23}{} {L3 Experimental driver: PDF mode} -\cs_new_eq:NN \__driver_literal_x:n \tex_special:D +\cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal_x:n { \exp_not:n {#1} } } + { \__driver_literal:e { \exp_not:n {#1} } } \cs_generate_variant:Nn \__driver_literal:n { x } \cs_new_protected:Npn \driver_color_pickup:N #1 { } \AtBeginDocument diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def index f73a321a40f..afaabad8519 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def @@ -20,11 +20,11 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3xdvidpfmx.def}{2018-06-14}{} + {l3xdvidpfmx.def}{2018-08-23}{} {L3 Experimental driver: xdvipdfmx} -\cs_new_eq:NN \__driver_literal_x:n \tex_special:D +\cs_new_eq:NN \__driver_literal:e \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 - { \__driver_literal_x:n { \exp_not:n {#1} } } + { \__driver_literal:e { \exp_not:n {#1} } } \cs_generate_variant:Nn \__driver_literal:n { x } \cs_new_protected:Npn \driver_color_pickup:N #1 { } \AtBeginDocument |