[latex3-commits] [git/LaTeX3-latex3-latex3] master: Update \file_get_... functions to have TF versions (see #538) (d99621c)

Joseph Wright joseph.wright at morningstar2.co.uk
Sat Feb 16 23:06:02 CET 2019


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/d99621c4bd52d61d517c781849970b573ee6e883

>---------------------------------------------------------------

commit d99621c4bd52d61d517c781849970b573ee6e883
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Sat Feb 16 22:06:02 2019 +0000

    Update \file_get_... functions to have TF versions (see #538)


>---------------------------------------------------------------

d99621c4bd52d61d517c781849970b573ee6e883
 l3kernel/CHANGELOG.md                   |    3 +-
 l3kernel/l3candidates.dtx               |   79 +++++++++++++++---------
 l3kernel/l3file.dtx                     |  101 +++++++++++++++++--------------
 l3kernel/testfiles/m3expl001.luatex.tlg |   23 +++++--
 l3kernel/testfiles/m3expl001.ptex.tlg   |   23 +++++--
 l3kernel/testfiles/m3expl001.tlg        |   23 +++++--
 l3kernel/testfiles/m3expl001.uptex.tlg  |   23 +++++--
 l3kernel/testfiles/m3expl001.xetex.tlg  |   23 +++++--
 l3kernel/testfiles/m3expl003.luatex.tlg |   23 +++++--
 l3kernel/testfiles/m3expl003.ptex.tlg   |   23 +++++--
 l3kernel/testfiles/m3expl003.tlg        |   23 +++++--
 l3kernel/testfiles/m3expl003.uptex.tlg  |   23 +++++--
 l3kernel/testfiles/m3expl003.xetex.tlg  |   23 +++++--
 l3kernel/testfiles/m3file001.lvt        |   28 ++++-----
 l3kernel/testfiles/m3file001.ptex.tlg   |    8 +--
 l3kernel/testfiles/m3file001.tlg        |    8 +--
 l3kernel/testfiles/m3file001.uptex.tlg  |    8 +--
 l3kernel/testfiles/m3file001.xetex.tlg  |    8 +--
 18 files changed, 328 insertions(+), 145 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index a2e7d5b..22356ab 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -10,10 +10,11 @@ this project uses date-based 'snapshot' version identifiers.
 ### Added
 
 - `\str_log:n`, `\str_log:N`
+- `TF` versions for `\file_get_...:nN` functions
 
 ### Changed
 
-- Return values from `\file_get:nnN`, `\sys_shell_get:nnN`
+- Return values from `\file_get:nnN`, `\file_get_...:nN`, `\sys_shell_get:nnN`
 
 ## [2019-02-15]
 
diff --git a/l3kernel/l3candidates.dtx b/l3kernel/l3candidates.dtx
index ba75f66..18b318f 100644
--- a/l3kernel/l3candidates.dtx
+++ b/l3kernel/l3candidates.dtx
@@ -340,9 +340,10 @@
 %
 % \section{Additions to \pkg{l3file}}
 %
-% \begin{function}[added = 2017-07-11]{\file_get_mdfive_hash:nN}
+% \begin{function}[noTF, added = 2017-07-11, updates = 2019-02-16]
+%   {\file_get_mdfive_hash:nN}
 %   \begin{syntax}
-%     \cs{file_get_mdfive_hash:nN} \Arg{file name} \meta{str var}
+%     \cs{file_get_mdfive_hash:nN} \Arg{file name} \meta{tl var}
 %   \end{syntax}
 %   Searches for \meta{file name} using the current \TeX{} search
 %   path and the additional paths controlled by \cs{file_path_include:n}.
@@ -355,9 +356,10 @@
 %   Where the file is not found, the \meta{str var} will be empty.
 % \end{function}
 %
-% \begin{function}[added = 2017-07-09]{\file_get_size:nN}
+% \begin{function}[noTF, added = 2017-07-09, updates = 2019-02-16]
+%   {\file_get_size:nN}
 %   \begin{syntax}
-%     \cs{file_get_size:nN} \Arg{file name} \meta{str var}
+%     \cs{file_get_size:nN} \Arg{file name} \meta{tl var}
 %   \end{syntax}
 %   Searches for \meta{file name} using the current \TeX{} search
 %   path and the additional paths controlled by \cs{file_path_include:n}.
@@ -366,9 +368,10 @@
 %   This is not available in older versions of \XeTeX{}.
 % \end{function}
 %
-% \begin{function}[added = 2017-07-09]{\file_get_timestamp:nN}
+% \begin{function}[noTF, added = 2017-07-09, updates = 2019-02-16]
+%   {\file_get_timestamp:nN}
 %   \begin{syntax}
-%     \cs{file_get_timestamp:nN} \Arg{file name} \meta{str var}
+%     \cs{file_get_timestamp:nN} \Arg{file name} \meta{tl var}
 %   \end{syntax}
 %   Searches for \meta{file name} using the current \TeX{} search
 %   path and the additional paths controlled by \cs{file_path_include:n}.
@@ -2234,44 +2237,63 @@
 %   coverage varies in other engines.
 %    \begin{macrocode}
 \cs_new_protected:Npn \file_get_mdfive_hash:nN #1#2
-  { \@@_get_details:nnN {#1} { mdfivesum } {#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
-  { \@@_get_details:nnN {#1} { size } {#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 }
+  { \@@_get_details:nnN {#1} { mdfivesum } {#2} }
+\prg_new_protected_conditional:Npnn \file_get_size:nN #1#2 { T , F , TF }
+  { \@@_get_details:nnN {#1} { size } {#2} }
+\prg_new_protected_conditional:Npnn \file_get_timestamp:nN #1#2 { T , F , TF }
   { \@@_get_details:nnN {#1} { moddate } {#2} }
 \cs_new_protected:Npn \@@_get_details:nnN #1#2#3
   {
-    \file_get_full_name:nN {#1} \l_@@_full_name_str
-    \str_set:Nx #3
+    \file_get_full_name:nNTF {#1} \l_@@_full_name_tl
       {
-        \use:c { tex_file #2 :D } \exp_after:wN
-          { \l_@@_full_name_str }
+        \tl_set:Nx #3
+          {
+            \use:c { tex_file #2 :D } \exp_after:wN
+              { \l_@@_full_name_tl }
+          }
+        \prg_return_true:  
       }
+      { \prg_return_false: }
   }
 \sys_if_engine_luatex:TF
   {
     \cs_set_protected:Npn \@@_get_details:nnN #1#2#3
       {
-        \file_get_full_name:nN {#1} \l_@@_full_name_str
-        \str_set:Nx #3
+        \file_get_full_name:nNTF {#1} \l_@@_full_name_tl
           {
-            \lua_now:e
+            \tl_set:Nx #3
               {
-                l3kernel.file#2
-                  ( " \lua_escape:e { \l_@@_full_name_str } " )
+                \lua_now:e
+                  {
+                    l3kernel.file#2
+                      ( " \lua_escape:e { \l_@@_full_name_tl } " )
+                  }
               }
+            \prg_return_true:
           }
-       }
+          { \prg_return_false: }
+      }
   }
   {
-    \cs_set_protected:Npn \file_get_mdfive_hash:nN #1#2
+    \prg_set_protected_conditional:Npnn \file_get_mdfive_hash:nN #1#2
+      { T , F ,  TF }
       {
-        \file_get_full_name:nN {#1} \l_@@_full_name_str
-        \tl_set:Nx #2
+        \file_get_full_name:nNTF {#1} \l_@@_full_name_tl
           {
-            \tex_mdfivesum:D file \exp_after:wN
-              { \l_@@_full_name_str }
+            \tl_set:Nx #2
+              {
+                \tex_mdfivesum:D file \exp_after:wN
+                  { \l_@@_full_name_tl }
+              }
+            \prg_return_true:
           }
+          { \prg_return_false: }
       }
     \cs_if_exist:NF \tex_filesize:D
       {
@@ -2281,6 +2303,7 @@
             \__kernel_msg_error:nnx
               { kernel } { primitive-not-available }
               { \exp_not:c { (pdf)file #2 } }
+            \prg_return_false:
           }
       }
   }
@@ -2301,16 +2324,14 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \file_if_exist_input:n #1
   {
-    \file_get_full_name:nN {#1} \l_@@_full_name_str
-    \str_if_empty:NF \l_@@_full_name_str
-      { \@@_input:V \l_@@_full_name_str }
+    \file_get_full_name:nNT {#1} \l_@@_full_name_tl
+      { \@@_input:V \l_@@_full_name_tl }
   }
 \cs_new_protected:Npn \file_if_exist_input:nF #1#2
   {
-    \file_get_full_name:nN {#1} \l_@@_full_name_str
-    \str_if_empty:NTF \l_@@_full_name_str
+    \file_get_full_name:nNTF {#1} \l_@@_full_name_tl
+      { \@@_input:V \l_@@_full_name_tl }
       {#2}
-      { \@@_input:V \l_@@_full_name_str }
   }
 %    \end{macrocode}
 % \end{macro}
diff --git a/l3kernel/l3file.dtx b/l3kernel/l3file.dtx
index 8d79427..17a8399 100644
--- a/l3kernel/l3file.dtx
+++ b/l3kernel/l3file.dtx
@@ -600,23 +600,25 @@
 %   Defines \meta{tl} to the contents of \meta{filename}.
 %   Category codes may need to be set appropriately via the \meta{setup}
 %   argument.
-%   The non-branching verson sets teh \meta{tl} to |\q_no_value| if the file is
+%   The non-branching version sets theg \meta{tl} to |\q_no_value| if the file is
 %   not found. The branching version runs the \meta{true code} after the
 %   assignment to \meta{tl} if the file is found, and \meta{false code}
 %   otherwise.
 % \end{function}
 %
-% \begin{function}[updated = 2017-06-26]
+% \begin{function}[noTF, updated = 2019-02-16]
 %   {\file_get_full_name:nN, \file_get_full_name:VN}
 %   \begin{syntax}
-%     \cs{file_get_full_name:nN} \Arg{file name} \meta{str var}
+%     \cs{file_get_full_name:nN} \Arg{file name} \meta{tl}
+%     \cs{file_get_full_name:nNTF} \Arg{file name} \meta{tl} \Arg{true code} \Arg{false code}
 %   \end{syntax}
 %   Searches for \meta{file name} in the path as detailed for
-%   \cs{file_if_exist:nTF}, and if found sets the \meta{str var} the
+%   \cs{file_if_exist:nTF}, and if found sets the \meta{tl var} the
 %   fully-qualified name of the file, \emph{i.e.}~the path and file name.
 %   This includes an extension |.tex| when the given \meta{file name}
 %   has no extension but the file found has that extension.
-%   If the file is not found then the \meta{str var} is empty.
+%   In the non-branching version, the \meta{tl var} will be set to
+%   |\q_no_value| in the case that the file does not exist.
 % \end{function}
 %
 % \begin{function}[added = 2017-06-23, updated = 2017-06-26]
@@ -781,10 +783,10 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{variable}{\l_@@_file_name_str}
+% \begin{variable}{\l_@@_file_name_tl}
 %   Data storage.
 %    \begin{macrocode}
-\str_new:N \l_@@_file_name_str
+\tl_new:N \l_@@_file_name_tl
 %    \end{macrocode}
 % \end{variable}
 %
@@ -796,13 +798,12 @@
 %    \begin{macrocode}
 \prg_new_protected_conditional:Npnn \ior_open:Nn #1#2 { T , F , TF }
   {
-    \file_get_full_name:nN {#2} \l_@@_file_name_str
-    \str_if_empty:NTF \l_@@_file_name_str
-      { \prg_return_false: }
+    \file_get_full_name:nNTF {#2} \l_@@_file_name_tl
       {
-        \__kernel_ior_open:No #1 \l_@@_file_name_str
+        \__kernel_ior_open:No #1 \l_@@_file_name_tl
         \prg_return_true:
       }
+      { \prg_return_false: }
   }
 \prg_generate_conditional_variant:Nnn \ior_open:Nn { c } { T , F , TF }
 %    \end{macrocode}
@@ -1172,10 +1173,10 @@
 %    \end{macrocode}
 % \end{macro}
 %
-% \begin{variable}{\l_@@_file_name_str}
+% \begin{variable}{\l_@@_file_name_tl}
 %  Data storage.
 %    \begin{macrocode}
-\str_new:N \l_@@_file_name_str
+\tl_new:N \l_@@_file_name_tl
 %    \end{macrocode}
 % \end{variable}
 %
@@ -1186,10 +1187,10 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \iow_open:Nn #1#2
   {
-    \__kernel_file_name_sanitize:nN {#2} \l_@@_file_name_str
+    \__kernel_file_name_sanitize:nN {#2} \l_@@_file_name_tl
     \iow_close:N #1
     \seq_gpop:NNTF \g_@@_streams_seq \l_@@_stream_tl
-      { \@@_open_stream:NV #1 \l_@@_file_name_str }
+      { \@@_open_stream:NV #1 \l_@@_file_name_tl }
 %<*initex>
       { \__kernel_msg_fatal:nn { kernel } { output-streams-exhausted } }
 %</initex>
@@ -1197,7 +1198,7 @@
       {
         \@@_new:N #1
         \tl_set:Nx \l_@@_stream_tl { \int_eval:n {#1} }
-        \@@_open_stream:NV #1 \l_@@_file_name_str
+        \@@_open_stream:NV #1 \l_@@_file_name_tl
       }
 %</package>
   }
@@ -2091,11 +2092,11 @@
 %    \end{macrocode}
 % \end{variable}
 %
-% \begin{variable}{\l_@@_base_name_str, \l_@@_full_name_str}
+% \begin{variable}{\l_@@_base_name_tl, \l_@@_full_name_tl}
 %   For storing the basename and full path whilst passing data internally.
 %    \begin{macrocode}
-\str_new:N \l_@@_base_name_str
-\str_new:N \l_@@_full_name_str
+\tl_new:N \l_@@_base_name_tl
+\tl_new:N \l_@@_full_name_tl
 %    \end{macrocode}
 % \end{variable}
 %
@@ -2143,8 +2144,6 @@
           \char_set_active_eq:NN ##1 \l_@@_internal_tl
         }
       \tl_set:Nx \l_@@_internal_tl {#1}
-      \tl_set:Nx \l_@@_internal_tl
-        { \tl_to_str:N \l_@@_internal_tl }
     \exp_args:NNNV \group_end:
     \str_set:Nn #2 \l_@@_internal_tl
   }
@@ -2193,15 +2192,14 @@
   }
 \prg_new_protected_conditional:Npnn \file_get:nnN #1#2#3 { T , F , TF }
   {
-    \file_get_full_name:nN {#1} \l_@@_full_name_str
-    \str_if_empty:NTF \l_@@_full_name_str
-      { \prg_return_false: }
+    \file_get_full_name:nNTF {#1} \l_@@_full_name_tl
       {
         \exp_args:NV \@@_get_aux:nnN
-          \l_@@_full_name_str
+          \l_@@_full_name_tl
           {#2} #3
         \prg_return_true:
       }
+      { \prg_return_false: }
   }
 \cs_new_protected:Npn \@@_get_aux:nnN #1#2#3
   {
@@ -2228,6 +2226,7 @@
 % \end{macro}
 %
 % \begin{macro}{\file_get_full_name:nN, \file_get_full_name:VN}
+% \begin{macro}[TF]{\file_get_full_name:nN, \file_get_full_name:VN}
 % \begin{macro}{\@@_get_full_name_search:nN}
 %   The way to test if a file exists is to try to open it: if it does
 %   not exist then \TeX{} reports end-of-file. A search is made
@@ -2241,7 +2240,13 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \file_get_full_name:nN #1#2
   {
-    \__kernel_file_name_sanitize:nN {#1} \l_@@_base_name_str
+    \file_get_full_name:nNF {#1} #2
+      { \tl_set:Nn #2 { \q_no_value } }
+  }
+\cs_generate_variant:Nn \file_get_full_name:nN { V }
+\prg_new_protected_conditional:Npnn \file_get_full_name:nN #1#2 { T , F , TF }
+  {
+    \__kernel_file_name_sanitize:nN {#1} \l_@@_base_name_tl
     \@@_get_full_name_search:nN { } \use:n
     \seq_map_inline:Nn \l_file_search_path_seq
       { \@@_get_full_name_search:nN { ##1 / } \seq_map_break:n }
@@ -2252,35 +2257,43 @@
           { \@@_get_full_name_search:nN { ##1 } \tl_map_break:n }
       }
 %</package>
-    \str_clear:N \l_@@_full_name_str
+    \tl_set:Nn \l_@@_full_name_tl { \q_no_value }
     \prg_break_point:
-    \str_if_empty:NF \l_@@_full_name_str
+    \quark_if_no_value:NTF \l_@@_full_name_tl
       {
-        \exp_args:NV \file_parse_full_name:nNNN \l_@@_full_name_str
+        \ior_close:N \g_@@_internal_ior
+        \prg_return_false:
+      }
+      {
+        \exp_args:NV \file_parse_full_name:nNNN \l_@@_full_name_tl
           \l_@@_dir_str \l_@@_name_str \l_@@_ext_str
         \str_if_empty:NT \l_@@_ext_str
           {
             \__kernel_ior_open:No \g_@@_internal_ior
-              { \l_@@_full_name_str .tex }
+              { \l_@@_full_name_tl .tex }
             \ior_if_eof:NF \g_@@_internal_ior
-              { \str_put_right:Nn \l_@@_full_name_str { .tex } }
+              { \tl_put_right:Nn \l_@@_full_name_tl { .tex } }
           }
+        \ior_close:N \g_@@_internal_ior
+        \tl_set_eq:NN #2 \l_@@_full_name_tl
+        \prg_return_true:
       }
-    \str_set_eq:NN #2 \l_@@_full_name_str
-    \ior_close:N \g_@@_internal_ior
   }
-\cs_generate_variant:Nn \file_get_full_name:nN { V }
+\cs_generate_variant:Nn \file_get_full_name:nNT  { V }
+\cs_generate_variant:Nn \file_get_full_name:nNF  { V }
+\cs_generate_variant:Nn \file_get_full_name:nNTF { V }
 \cs_new_protected:Npn \@@_get_full_name_search:nN #1#2
   {
     \@@_name_quote:nN
-      { \tl_to_str:n {#1} \l_@@_base_name_str }
-      \l_@@_full_name_str
-    \__kernel_ior_open:No \g_@@_internal_ior \l_@@_full_name_str
+      { \tl_to_str:n {#1} \l_@@_base_name_tl }
+      \l_@@_full_name_tl
+    \__kernel_ior_open:No \g_@@_internal_ior \l_@@_full_name_tl
     \ior_if_eof:NF \g_@@_internal_ior { #2 { \prg_break: } }
   }
 %    \end{macrocode}
 % \end{macro}
 % \end{macro}
+% \end{macro}
 %
 % \begin{macro}[TF]{\file_if_exist:n}
 %   The test for the existence of a file is a wrapper around the function to
@@ -2290,10 +2303,9 @@
 %    \begin{macrocode}
 \prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF }
   {
-    \file_get_full_name:nN {#1} \l_@@_full_name_str
-    \str_if_empty:NTF \l_@@_full_name_str
-      { \prg_return_false: }
+    \file_get_full_name:nNTF {#1} \l_@@_full_name_tl
       { \prg_return_true: }
+      { \prg_return_false: }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2303,9 +2315,9 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \__kernel_file_missing:n #1
   {
-    \__kernel_file_name_sanitize:nN {#1} \l_@@_base_name_str
+    \__kernel_file_name_sanitize:nN {#1} \l_@@_base_name_tl
     \__kernel_msg_error:nnx { kernel } { file-not-found }
-      { \l_@@_base_name_str }
+      { \l_@@_base_name_tl }
   }
 %    \end{macrocode}
 % \end{macro}
@@ -2322,10 +2334,9 @@
 %    \begin{macrocode}
 \cs_new_protected:Npn \file_input:n #1
   {
-    \file_get_full_name:nN {#1} \l_@@_full_name_str
-    \str_if_empty:NTF \l_@@_full_name_str
+    \file_get_full_name:nNTF {#1} \l_@@_full_name_tl
+      { \@@_input:V \l_@@_full_name_tl }
       { \__kernel_file_missing:n {#1} }
-      { \@@_input:V \l_@@_full_name_str }
   }
 \cs_new_protected:Npn \@@_input:n #1
   {
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index b7d6626..d81ac48 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -2755,7 +2755,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -2800,7 +2800,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -2893,8 +2893,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -2912,6 +2912,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5938,6 +5944,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index 9ad9f74..e46023b 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -3048,7 +3048,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -3093,7 +3093,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -3186,8 +3186,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -3205,6 +3205,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5971,6 +5977,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index b10a9b7..1d9fe04 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -3048,7 +3048,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -3093,7 +3093,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -3186,8 +3186,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -3205,6 +3205,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5971,6 +5977,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index d5b5a76..bfe81ed 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -3048,7 +3048,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -3093,7 +3093,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -3186,8 +3186,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -3205,6 +3205,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5968,6 +5974,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 0d7d0a5..350759c 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -2793,7 +2793,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -2838,7 +2838,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -2931,8 +2931,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -2950,6 +2950,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5949,6 +5955,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index b7d6626..d81ac48 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -2755,7 +2755,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -2800,7 +2800,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -2893,8 +2893,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -2912,6 +2912,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5938,6 +5944,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index 9ad9f74..e46023b 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -3048,7 +3048,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -3093,7 +3093,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -3186,8 +3186,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -3205,6 +3205,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5971,6 +5977,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index b10a9b7..1d9fe04 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -3048,7 +3048,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -3093,7 +3093,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -3186,8 +3186,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -3205,6 +3205,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5971,6 +5977,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index d5b5a76..bfe81ed 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -3048,7 +3048,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -3093,7 +3093,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -3186,8 +3186,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -3205,6 +3205,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5968,6 +5974,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 0d7d0a5..350759c 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -2793,7 +2793,7 @@ Defining \g_tmpa_ior on line ...
 Defining \g_tmpb_ior on line ...
 Defining \ior_open:Nn on line ...
 Defining \ior_open:cn on line ...
-Defining \l__ior_file_name_str on line ...
+Defining \l__ior_file_name_tl on line ...
 Defining \ior_open:NnT on line ...
 Defining \ior_open:NnF on line ...
 Defining \ior_open:NnTF on line ...
@@ -2838,7 +2838,7 @@ Defining \iow_new:c on line ...
 Defining \g_tmpa_iow on line ...
 Defining \g_tmpb_iow on line ...
 Defining \__iow_new:N on line ...
-Defining \l__iow_file_name_str on line ...
+Defining \l__iow_file_name_tl on line ...
 Defining \iow_open:Nn on line ...
 Defining \iow_open:cn on line ...
 Defining \__iow_open_stream:Nn on line ...
@@ -2931,8 +2931,8 @@ Defining \g_file_curr_ext_str on line ...
 Defining \g_file_curr_name_str on line ...
 Defining \g__file_stack_seq on line ...
 Defining \g__file_record_seq on line ...
-Defining \l__file_base_name_str on line ...
-Defining \l__file_full_name_str on line ...
+Defining \l__file_base_name_tl on line ...
+Defining \l__file_full_name_tl on line ...
 Defining \l__file_dir_str on line ...
 Defining \l__file_ext_str on line ...
 Defining \l__file_name_str on line ...
@@ -2950,6 +2950,12 @@ Defining \__file_get_aux:nnN on line ...
 Defining \__file_get_do:Nw on line ...
 Defining \file_get_full_name:nN on line ...
 Defining \file_get_full_name:VN on line ...
+Defining \file_get_full_name:nNT on line ...
+Defining \file_get_full_name:nNF on line ...
+Defining \file_get_full_name:nNTF on line ...
+Defining \file_get_full_name:VNT on line ...
+Defining \file_get_full_name:VNF on line ...
+Defining \file_get_full_name:VNTF on line ...
 Defining \__file_get_full_name_search:nN on line ...
 Defining \file_if_exist:nT on line ...
 Defining \file_if_exist:nF on line ...
@@ -5949,6 +5955,15 @@ Defining \fp_sign:n on line ...
 Defining \file_get_mdfive_hash:nN on line ...
 Defining \file_get_size:nN on line ...
 Defining \file_get_timestamp:nN on line ...
+Defining \file_get_mdfive_hash:nNT on line ...
+Defining \file_get_mdfive_hash:nNF on line ...
+Defining \file_get_mdfive_hash:nNTF on line ...
+Defining \file_get_size:nNT on line ...
+Defining \file_get_size:nNF on line ...
+Defining \file_get_size:nNTF on line ...
+Defining \file_get_timestamp:nNT on line ...
+Defining \file_get_timestamp:nNF on line ...
+Defining \file_get_timestamp:nNTF on line ...
 Defining \__file_get_details:nnN on line ...
 Defining message LaTeX/kernel/primitive-not-available on line ...
 Defining \file_if_exist_input:n on line ...
diff --git a/l3kernel/testfiles/m3file001.lvt b/l3kernel/testfiles/m3file001.lvt
index 3d25875..524f23a 100644
--- a/l3kernel/testfiles/m3file001.lvt
+++ b/l3kernel/testfiles/m3file001.lvt
@@ -142,41 +142,41 @@
 
 \TEST { Getting~file~information }
   {
-    \file_get_mdfive_hash:nN { filetest-utf8.txt } \l_tmpa_str
-    \file_get_size:nN { filetest.txt } \l_tmpb_str
+    \file_get_mdfive_hash:nN { filetest-utf8.txt } \l_tmpa_tl
+    \file_get_size:nN { filetest.txt } \l_tmpb_tl
     % Unix line endings
-    \str_if_eq:VnTF \l_tmpa_str { 4F918CB10404DD50E3C1B9990FF54D4A }
+    \str_if_eq:VnTF \l_tmpa_tl { 4F918CB10404DD50E3C1B9990FF54D4A }
       {
         \bool_lazy_or:nnTF
           { \sys_if_engine_xetex_p: }
-          { \int_compare_p:nNn \l_tmpb_str = { 120 } }
+          { \int_compare_p:nNn \l_tmpb_tl = { 120 } }
           \TRUE
           \ERROR
       }
       {
         % Windows line endings
-        \str_if_eq:VnTF \l_tmpa_str { FA408C34EC7616533C50F8643B7949B6 }
+        \str_if_eq:VnTF \l_tmpa_tl { FA408C34EC7616533C50F8643B7949B6 }
           {
             \bool_lazy_or:nnTF
               { \sys_if_engine_xetex_p: }
-              { \int_compare_p:nNn \l_tmpb_str = { 123 } }
+              { \int_compare_p:nNn \l_tmpb_tl = { 123 } }
               \TRUE
               \ERROR
           }
           { \ERROR }
       }
-    \file_get_mdfive_hash:nN { NotAFile.txt } \l_tmpa_str
-    \tl_show:N \l_tmpa_str
-    \file_get_size:nN { NotAFile.txt } \l_tmpa_str
-    \tl_show:N \l_tmpa_str
+    \file_get_mdfive_hash:nN { NotAFile.txt } \l_tmpa_tl
+    \tl_show:N \l_tmpa_tl
+    \file_get_size:nN { NotAFile.txt } \l_tmpa_tl
+    \tl_show:N \l_tmpa_tl
     \OMIT
       \cs_generate_variant:Nn \regex_match:nnTF { nV }
     \TIMO
-    \file_get_timestamp:nN { filetest.txt } \l_tmpa_str
+    \file_get_timestamp:nN { filetest.txt } \l_tmpa_tl
     \regex_match:nVTF
-      { ^D\:\d{14} } \l_tmpa_str \TRUE \ERROR
-    \file_get_timestamp:nN { NotAFile.txt } \l_tmpa_str
-    \tl_show:N \l_tmpa_str
+      { ^D\:\d{14} } \l_tmpa_tl \TRUE \ERROR
+    \file_get_timestamp:nN { NotAFile.txt } \l_tmpa_tl
+    \tl_show:N \l_tmpa_tl
   }
 
 \END
diff --git a/l3kernel/testfiles/m3file001.ptex.tlg b/l3kernel/testfiles/m3file001.ptex.tlg
index b48e99b..786b72f 100644
--- a/l3kernel/testfiles/m3file001.ptex.tlg
+++ b/l3kernel/testfiles/m3file001.ptex.tlg
@@ -18,7 +18,7 @@ TEST 2: Getting the full name of files
 ============================================================
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
-> \l_A_tl=.
+> \l_A_tl=\q_no_value .
 ============================================================
 ============================================================
 TEST 3: Loading a file
@@ -197,14 +197,14 @@ l. ...  }
 TEST 9: Getting file information
 ============================================================
 TRUE
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 TRUE
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 ============================================================
diff --git a/l3kernel/testfiles/m3file001.tlg b/l3kernel/testfiles/m3file001.tlg
index 6862af5..aa9cf0f 100644
--- a/l3kernel/testfiles/m3file001.tlg
+++ b/l3kernel/testfiles/m3file001.tlg
@@ -18,7 +18,7 @@ TEST 2: Getting the full name of files
 ============================================================
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
-> \l_A_tl=.
+> \l_A_tl=\q_no_value .
 ============================================================
 ============================================================
 TEST 3: Loading a file
@@ -191,14 +191,14 @@ l. ...  }
 TEST 9: Getting file information
 ============================================================
 TRUE
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 TRUE
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 ============================================================
diff --git a/l3kernel/testfiles/m3file001.uptex.tlg b/l3kernel/testfiles/m3file001.uptex.tlg
index 1a00b49..6392fbf 100644
--- a/l3kernel/testfiles/m3file001.uptex.tlg
+++ b/l3kernel/testfiles/m3file001.uptex.tlg
@@ -18,7 +18,7 @@ TEST 2: Getting the full name of files
 ============================================================
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
-> \l_A_tl=.
+> \l_A_tl=\q_no_value .
 ============================================================
 ============================================================
 TEST 3: Loading a file
@@ -197,14 +197,14 @@ l. ...  }
 TEST 9: Getting file information
 ============================================================
 TRUE
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 TRUE
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 ============================================================
diff --git a/l3kernel/testfiles/m3file001.xetex.tlg b/l3kernel/testfiles/m3file001.xetex.tlg
index ac4d05f..7789fad 100644
--- a/l3kernel/testfiles/m3file001.xetex.tlg
+++ b/l3kernel/testfiles/m3file001.xetex.tlg
@@ -18,7 +18,7 @@ TEST 2: Getting the full name of files
 ============================================================
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
-> \l_A_tl=.
+> \l_A_tl=\q_no_value .
 ============================================================
 ============================================================
 TEST 3: Loading a file
@@ -197,7 +197,7 @@ l. ...  }
 The version of XeTeX in use does not provide functionality equivalent to the
 \(pdf)filesize primitive.
 TRUE
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 ! LaTeX3 Error: Primitive \(pdf)filesize not available
@@ -206,7 +206,7 @@ For immediate help type H <return>.
 l. ...  }
 The version of XeTeX in use does not provide functionality equivalent to the
 \(pdf)filesize primitive.
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 ! LaTeX3 Error: Primitive \(pdf)filemoddate not available
@@ -229,7 +229,7 @@ For immediate help type H <return>.
 l. ...  }
 The version of XeTeX in use does not provide functionality equivalent to the
 \(pdf)filemoddate primitive.
-> \l_tmpa_str=.
+> \l_tmpa_tl=\q_no_value .
 <recently read> }
 l. ...  }
 ============================================================





More information about the latex3-commits mailing list