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.tex275
1 files changed, 144 insertions, 131 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
index 0710918dfaf..d4f679dc452 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
@@ -48,6 +48,7 @@
%% l3luatex.dtx (with options: `package,tex')
%% l3unicode.dtx (with options: `package')
%% l3candidates.dtx (with options: `package')
+%% l3legacy.dtx (with options: `package')
%% l3deprecation.dtx (with options: `package')
%%
%% Copyright (C) 1990-2019 The LaTeX3 Project
@@ -63,7 +64,7 @@
%% and all files in that bundle must be distributed together.
%%
%% File: expl3.dtx
-\def\ExplFileDate{2019-04-21}%
+\def\ExplFileDate{2019-05-03}%
\begingroup
\def\next{\endgroup}%
\expandafter\ifx\csname PackageError\endcsname\relax
@@ -744,6 +745,7 @@
\__kernel_primitive:NN \pdfoutline \tex_pdfoutline:D
\__kernel_primitive:NN \pdfoutput \tex_pdfoutput:D
\__kernel_primitive:NN \pdfpageattr \tex_pdfpageattr:D
+ \__kernel_primitive:NN \pdfpagesattr \tex_pdfpagesattr:D
\__kernel_primitive:NN \pdfpagebox \tex_pdfpagebox:D
\__kernel_primitive:NN \pdfpageref \tex_pdfpageref:D
\__kernel_primitive:NN \pdfpageresources \tex_pdfpageresources:D
@@ -1223,6 +1225,8 @@
\__kernel_primitive:NN \Usuperscript \tex_Usuperscript:D
\__kernel_primitive:NN \Uunderdelimiter \tex_Uunderdelimiter:D
\__kernel_primitive:NN \Uvextensible \tex_Uvextensible:D
+ \__kernel_primitive:NN \harftexrevision \tex_harftexrevision:D
+ \__kernel_primitive:NN \harftexversion \tex_harftexversion:D
\__kernel_primitive:NN \autospacing \tex_autospacing:D
\__kernel_primitive:NN \autoxspacing \tex_autoxspacing:D
\__kernel_primitive:NN \dtou \tex_dtou:D
@@ -8979,6 +8983,47 @@
{ \exp_not:c { peek_#1:NF } ##1 {##2} }
}
}
+\group_begin:
+ \cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
+ {
+ \cs_new_protected:Npn \__peek_execute_branches_N_type:
+ {
+ \if_int_odd:w
+ \if_catcode:w \exp_not:N \l_peek_token { 0 \exp_stop_f: \fi:
+ \if_catcode:w \exp_not:N \l_peek_token } 0 \exp_stop_f: \fi:
+ \if_meaning:w \l_peek_token \c_space_token 0 \exp_stop_f: \fi:
+ 1 \exp_stop_f:
+ \exp_after:wN \__peek_N_type:w
+ \token_to_meaning:N \l_peek_token
+ \q_mark \__peek_N_type_aux:nnw
+ #1 \q_mark \use_none_delimit_by_q_stop:w
+ \q_stop
+ \exp_after:wN \__peek_true:w
+ \else:
+ \exp_after:wN \__peek_false:w
+ \fi:
+ }
+ \cs_new_protected:Npn \__peek_N_type:w ##1 #1 ##2 \q_mark ##3
+ { ##3 {##1} {##2} }
+ }
+ \exp_after:wN \__peek_tmp:w \tl_to_str:n { outer } \q_stop
+\group_end:
+\cs_new_protected:Npn \__peek_N_type_aux:nnw #1 #2 #3 \fi:
+ {
+ \fi:
+ \tl_if_in:noTF {#1} { \tl_to_str:n {ma} }
+ { \__peek_true:w }
+ { \tl_if_empty:nTF {#2} { \__peek_true:w } { \__peek_false:w } }
+ }
+\cs_new_protected:Npn \peek_N_type:TF
+ {
+ \__peek_token_generic:NNTF
+ \__peek_execute_branches_N_type: \scan_stop:
+ }
+\cs_new_protected:Npn \peek_N_type:T
+ { \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: }
+\cs_new_protected:Npn \peek_N_type:F
+ { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
%% File: l3prop.dtx
\scan_new:N \s__prop
\cs_new:Npn \__prop_pair:wn #1 \s__prop #2
@@ -11012,12 +11057,101 @@
\__kernel_ior_open:No \g__file_internal_ior \l__file_full_name_tl
\ior_if_eof:NF \g__file_internal_ior { #2 { \prg_break: } }
}
+\cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2
+ { \file_get_mdfive_hash:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
+\cs_new_protected:Npn \file_get_size:nN #1#2
+ { \file_get_size:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
+\cs_new_protected:Npn \file_get_timestamp:nN #1#2
+ { \file_get_timestamp:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
+\prg_new_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2 { T , F , TF }
+ { \__file_get_details:nnN {#1} { mdfivesum } {#2} }
+\prg_new_protected_conditional:Npnn \file_get_size:nN #1#2 { T , F , TF }
+ { \__file_get_details:nnN {#1} { size } {#2} }
+\prg_new_protected_conditional:Npnn \file_get_timestamp:nN #1#2 { T , F , TF }
+ { \__file_get_details:nnN {#1} { moddate } {#2} }
+\cs_new_protected:Npn \__file_get_details:nnN #1#2#3
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ {
+ \tl_set:Nx #3
+ {
+ \use:c { tex_file #2 :D } \exp_after:wN
+ { \l__file_full_name_tl }
+ }
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+\sys_if_engine_luatex:TF
+ {
+ \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ {
+ \tl_set:Nx #3
+ {
+ \lua_now:e
+ {
+ l3kernel.file#2
+ ( " \lua_escape:e { \l__file_full_name_tl } " )
+ }
+ }
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+ }
+ {
+ \prg_set_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2
+ { T , F , TF }
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ {
+ \tl_set:Nx #2
+ {
+ \tex_mdfivesum:D file \exp_after:wN
+ { \l__file_full_name_tl }
+ }
+ \prg_return_true:
+ }
+ { \prg_return_false: }
+ }
+ \cs_if_exist:NF \tex_filesize:D
+ {
+ \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
+ {
+ \tl_clear:N #3
+ \__kernel_msg_error:nnx
+ { kernel } { primitive-not-available }
+ { \exp_not:c { (pdf)file #2 } }
+ \prg_return_false:
+ }
+ }
+ }
+\__kernel_msg_new:nnnn { kernel } { primitive-not-available }
+ { Primitive~\token_to_str:N #1 not~available }
+ {
+ The~version~of~XeTeX~in~use~does~not~provide~functionality~equivalent~to~
+ the~\token_to_str:N #1 primitive.
+ }
\prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF }
{
\file_get_full_name:nNTF {#1} \l__file_full_name_tl
{ \prg_return_true: }
{ \prg_return_false: }
}
+\cs_new_protected:Npn \file_if_exist_input:n #1
+ {
+ \file_get_full_name:nNT {#1} \l__file_full_name_tl
+ { \__file_input:V \l__file_full_name_tl }
+ }
+\cs_new_protected:Npn \file_if_exist_input:nF #1#2
+ {
+ \file_get_full_name:nNTF {#1} \l__file_full_name_tl
+ { \__file_input:V \l__file_full_name_tl }
+ {#2}
+ }
+\cs_new_protected:Npn \file_input_stop: { \tex_endinput:D }
\cs_new_protected:Npn \__kernel_file_missing:n #1
{
\__kernel_file_name_sanitize:nN {#1} \l__file_base_name_tl
@@ -25830,95 +25964,6 @@
}
\cs_new:Npn \fp_sign:n #1
{ \fp_to_decimal:n { sign \__fp_parse:n {#1} } }
-\cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2
- { \file_get_mdfive_hash:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
-\cs_new_protected:Npn \file_get_size:nN #1#2
- { \file_get_size:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
-\cs_new_protected:Npn \file_get_timestamp:nN #1#2
- { \file_get_timestamp:nNF {#1} #2 { \tl_set:Nn #2 { \q_no_value } } }
-\prg_new_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2 { T , F , TF }
- { \__file_get_details:nnN {#1} { mdfivesum } {#2} }
-\prg_new_protected_conditional:Npnn \file_get_size:nN #1#2 { T , F , TF }
- { \__file_get_details:nnN {#1} { size } {#2} }
-\prg_new_protected_conditional:Npnn \file_get_timestamp:nN #1#2 { T , F , TF }
- { \__file_get_details:nnN {#1} { moddate } {#2} }
-\cs_new_protected:Npn \__file_get_details:nnN #1#2#3
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- {
- \tl_set:Nx #3
- {
- \use:c { tex_file #2 :D } \exp_after:wN
- { \l__file_full_name_tl }
- }
- \prg_return_true:
- }
- { \prg_return_false: }
- }
-\sys_if_engine_luatex:TF
- {
- \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- {
- \tl_set:Nx #3
- {
- \lua_now:e
- {
- l3kernel.file#2
- ( " \lua_escape:e { \l__file_full_name_tl } " )
- }
- }
- \prg_return_true:
- }
- { \prg_return_false: }
- }
- }
- {
- \prg_set_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2
- { T , F , TF }
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- {
- \tl_set:Nx #2
- {
- \tex_mdfivesum:D file \exp_after:wN
- { \l__file_full_name_tl }
- }
- \prg_return_true:
- }
- { \prg_return_false: }
- }
- \cs_if_exist:NF \tex_filesize:D
- {
- \cs_set_protected:Npn \__file_get_details:nnN #1#2#3
- {
- \tl_clear:N #3
- \__kernel_msg_error:nnx
- { kernel } { primitive-not-available }
- { \exp_not:c { (pdf)file #2 } }
- \prg_return_false:
- }
- }
- }
-\__kernel_msg_new:nnnn { kernel } { primitive-not-available }
- { Primitive~\token_to_str:N #1 not~available }
- {
- The~version~of~XeTeX~in~use~does~not~provide~functionality~equivalent~to~
- the~\token_to_str:N #1 primitive.
- }
-\cs_new_protected:Npn \file_if_exist_input:n #1
- {
- \file_get_full_name:nNT {#1} \l__file_full_name_tl
- { \__file_input:V \l__file_full_name_tl }
- }
-\cs_new_protected:Npn \file_if_exist_input:nF #1#2
- {
- \file_get_full_name:nNTF {#1} \l__file_full_name_tl
- { \__file_input:V \l__file_full_name_tl }
- {#2}
- }
-\cs_new_protected:Npn \file_input_stop: { \tex_endinput:D }
\__kernel_patch:nnNNpn { \__flag_chk_exist:n {#1} } { }
\cs_new:Npn \flag_raise_if_clear:n #1
{
@@ -27549,47 +27594,6 @@
\char_set_lccode:nn { `* } { `\ }
\tex_lowercase:D { \tl_const:Nn \c_catcode_active_space_tl { * } }
\group_end:
-\group_begin:
- \cs_set_protected:Npn \__peek_tmp:w #1 \q_stop
- {
- \cs_new_protected:Npn \__peek_execute_branches_N_type:
- {
- \if_int_odd:w
- \if_catcode:w \exp_not:N \l_peek_token { 0 \exp_stop_f: \fi:
- \if_catcode:w \exp_not:N \l_peek_token } 0 \exp_stop_f: \fi:
- \if_meaning:w \l_peek_token \c_space_token 0 \exp_stop_f: \fi:
- 1 \exp_stop_f:
- \exp_after:wN \__peek_N_type:w
- \token_to_meaning:N \l_peek_token
- \q_mark \__peek_N_type_aux:nnw
- #1 \q_mark \use_none_delimit_by_q_stop:w
- \q_stop
- \exp_after:wN \__peek_true:w
- \else:
- \exp_after:wN \__peek_false:w
- \fi:
- }
- \cs_new_protected:Npn \__peek_N_type:w ##1 #1 ##2 \q_mark ##3
- { ##3 {##1} {##2} }
- }
- \exp_after:wN \__peek_tmp:w \tl_to_str:n { outer } \q_stop
-\group_end:
-\cs_new_protected:Npn \__peek_N_type_aux:nnw #1 #2 #3 \fi:
- {
- \fi:
- \tl_if_in:noTF {#1} { \tl_to_str:n {ma} }
- { \__peek_true:w }
- { \tl_if_empty:nTF {#2} { \__peek_true:w } { \__peek_false:w } }
- }
-\cs_new_protected:Npn \peek_N_type:TF
- {
- \__peek_token_generic:NNTF
- \__peek_execute_branches_N_type: \scan_stop:
- }
-\cs_new_protected:Npn \peek_N_type:T
- { \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: }
-\cs_new_protected:Npn \peek_N_type:F
- { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: }
\tl_new:N \l__peek_collect_tl
\cs_new_protected:Npn \peek_catcode_collect_inline:Nn
{ \__peek_collect:NNn \__peek_execute_branches_catcode: }
@@ -27637,6 +27641,15 @@
\tl_put_right:Nn \l__peek_collect_tl {#1}
\exp_after:wN \__peek_true_remove:w
}
+%% File: l3legacy.dtx
+\prg_new_conditional:Npnn \legacy_if:n #1 { p , T , F , TF }
+ {
+ \exp_args:Nc \if_meaning:w { if#1 } \iftrue
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
%% File: l3deprecation.dtx
\bool_new:N \l__deprecation_grace_period_bool
\cs_new:Npn \__deprecation_date_compare:nNnTF #1#2#3