From 6c87d764952f4d6eb0d273c68f6033a0b5536fdb Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 3 May 2019 22:30:06 +0000
Subject: l3 (3may19)

git-svn-id: svn://tug.org/texlive/trunk@50972 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/tex/latex/l3kernel/expl3-code.tex   | 275 +++++++++++----------
 1 file changed, 144 insertions(+), 131 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')

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
-- 
cgit v1.2.3

