[latex3-commits] [git/LaTeX3-latex3-latex3] master: Correct handling of extensionless-files (74a590997)

Joseph Wright joseph.wright at morningstar2.co.uk
Thu Oct 10 14:28:10 CEST 2019


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

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

commit 74a5909972a7585fac9ed9691f92baee41ad3229
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Thu Oct 10 13:28:10 2019 +0100

    Correct handling of extensionless-files


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

74a5909972a7585fac9ed9691f92baee41ad3229
 l3kernel/CHANGELOG.md                                |  4 ++++
 l3kernel/l3expan.dtx                                 |  4 +++-
 l3kernel/l3file.dtx                                  | 20 +++++++++++++++++++-
 l3kernel/testfiles/m3file001.luatex.tlg              |  3 +++
 l3kernel/testfiles/m3file001.lvt                     |  8 +++++++-
 l3kernel/testfiles/m3file001.ptex.tlg                |  3 +++
 l3kernel/testfiles/m3file001.tlg                     |  3 +++
 l3kernel/testfiles/m3file001.uptex.tlg               |  3 +++
 l3kernel/testfiles/m3file001.xetex.tlg               |  3 +++
 .../testfiles/{filetest.txt => support/filetest}     |  0
 .../{filetest.txt => support/filetest-noname}        |  0
 .../testfiles/{filetest.txt => support/filetest-tex} |  0
 .../{filetest.txt => support/filetest-tex.tex}       |  0
 13 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index ba109925d..88d2e1805 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -13,6 +13,10 @@ this project uses date-based 'snapshot' version identifiers.
   to stable
 - Accept 'traditional' class options for backend (`dvipdfmx`, `dvips`, etc.)
 
+### Fixed
+
+- Handling of files with no extension
+
 ## [2019-10-02]
 
 ### Fixed
diff --git a/l3kernel/l3expan.dtx b/l3kernel/l3expan.dtx
index 68b09cf9f..f636c5c31 100644
--- a/l3kernel/l3expan.dtx
+++ b/l3kernel/l3expan.dtx
@@ -467,6 +467,7 @@
 %     \exp_args:NVo,
 %     \exp_args:Nfo,
 %     \exp_args:Nff,
+%     \exp_args:Nee,
 %   }
 %   \begin{syntax}
 %     \cs{exp_args:Noo} \meta{token} \Arg{tokens_1} \Arg{tokens_2}
@@ -2793,7 +2794,7 @@
 %   {
 %     \exp_args:Nnc, \exp_args:Nno, \exp_args:NnV, \exp_args:Nnv, \exp_args:Nne, \exp_args:Nnf,
 %     \exp_args:Noc, \exp_args:Noo, \exp_args:Nof,
-%     \exp_args:NVo, \exp_args:Nfo, \exp_args:Nff,
+%     \exp_args:NVo, \exp_args:Nfo, \exp_args:Nff, \exp_args:Nee
 %   }
 % \begin{macro}
 %   {
@@ -2823,6 +2824,7 @@
 \@@_tmp:w { Vo }
 \@@_tmp:w { fo }
 \@@_tmp:w { ff }
+\@@_tmp:w { ee }
 \@@_tmp:w { Nx }
 \@@_tmp:w { cx }
 \@@_tmp:w { nx }
diff --git a/l3kernel/l3file.dtx b/l3kernel/l3file.dtx
index 153951ee7..72fec7dca 100644
--- a/l3kernel/l3file.dtx
+++ b/l3kernel/l3file.dtx
@@ -2642,8 +2642,26 @@
 \cs_new:Npx \@@_file_ext_check_auxiii:nw #1#2 . #3 . #4 \q_stop
   {
     \exp_not:N \quark_if_nil:nTF {#3}
-      { \exp_not:N \__kernel_file_name_quote:n { #1 \tl_to_str:n { .tex } } }
+      {
+        \exp_not:N \exp_args:Nee \exp_not:N \@@_file_ext_check_auxiv:nn
+          { \exp_not:N \__kernel_file_name_quote:n {#1} }
+          {
+            \exp_not:N \__kernel_file_name_quote:n
+              { #1 \tl_to_str:n { .tex } }
+          }
+      }
+      {#1}
+  }
+\cs_new:Npn \@@_file_ext_check_auxiv:nn #1#2
+  {
+    \tl_if_blank:eTF { \@@_file_size:n {#2} }
       {#1}
+      {
+        \int_compare:nNnTF
+          { \@@_file_size:n {#1} } = { \@@_file_size:n {#2} }
+          {#2}
+          {#1}
+      }
   }
 %    \end{macrocode}
 %   Deal with the fact that the primitive might not be available.
diff --git a/l3kernel/testfiles/m3file001.luatex.tlg b/l3kernel/testfiles/m3file001.luatex.tlg
index e1bcf94ce..36c642479 100644
--- a/l3kernel/testfiles/m3file001.luatex.tlg
+++ b/l3kernel/testfiles/m3file001.luatex.tlg
@@ -25,6 +25,9 @@ TEST 3: Getting the full name of files
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
 > \l_A_tl=\q_no_value .
+> \l_A_tl=filetest.
+> \l_A_tl=filetest-noname.
+> \l_A_tl=filetest-tex.tex.
 ============================================================
 ============================================================
 TEST 4: Loading a file
diff --git a/l3kernel/testfiles/m3file001.lvt b/l3kernel/testfiles/m3file001.lvt
index 170aea9ea..420ce8b65 100644
--- a/l3kernel/testfiles/m3file001.lvt
+++ b/l3kernel/testfiles/m3file001.lvt
@@ -1,5 +1,5 @@
 %
-% Copyright (C) 2009-2012,2015,2017,2018 The LaTeX3 Project
+% Copyright (C) 2009-2012,2015,2017-2019 The LaTeX3 Project
 %
 
 \documentclass{minimal}
@@ -62,6 +62,12 @@
     \tl_log:N \l_A_tl
     \file_get_full_name:nN { NotAFile.xxx.yyy.zzz } \l_A_tl
     \tl_log:N \l_A_tl
+    \file_get_full_name:nN { filetest } \l_A_tl
+    \tl_log:N \l_A_tl
+    \file_get_full_name:nN { filetest-noname } \l_A_tl
+    \tl_log:N \l_A_tl
+    \file_get_full_name:nN { filetest-tex } \l_A_tl
+    \tl_log:N \l_A_tl
   }
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/l3kernel/testfiles/m3file001.ptex.tlg b/l3kernel/testfiles/m3file001.ptex.tlg
index c162feba5..9f7712832 100644
--- a/l3kernel/testfiles/m3file001.ptex.tlg
+++ b/l3kernel/testfiles/m3file001.ptex.tlg
@@ -25,6 +25,9 @@ TEST 3: Getting the full name of files
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
 > \l_A_tl=\q_no_value .
+> \l_A_tl=filetest.
+> \l_A_tl=filetest-noname.
+> \l_A_tl=filetest-tex.tex.
 ============================================================
 ============================================================
 TEST 4: Loading a file
diff --git a/l3kernel/testfiles/m3file001.tlg b/l3kernel/testfiles/m3file001.tlg
index 570a13d35..dfc6cf74e 100644
--- a/l3kernel/testfiles/m3file001.tlg
+++ b/l3kernel/testfiles/m3file001.tlg
@@ -25,6 +25,9 @@ TEST 3: Getting the full name of files
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
 > \l_A_tl=\q_no_value .
+> \l_A_tl=filetest.
+> \l_A_tl=filetest-noname.
+> \l_A_tl=filetest-tex.tex.
 ============================================================
 ============================================================
 TEST 4: Loading a file
diff --git a/l3kernel/testfiles/m3file001.uptex.tlg b/l3kernel/testfiles/m3file001.uptex.tlg
index d9a5a78cb..91c722f18 100644
--- a/l3kernel/testfiles/m3file001.uptex.tlg
+++ b/l3kernel/testfiles/m3file001.uptex.tlg
@@ -25,6 +25,9 @@ TEST 3: Getting the full name of files
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
 > \l_A_tl=\q_no_value .
+> \l_A_tl=filetest.
+> \l_A_tl=filetest-noname.
+> \l_A_tl=filetest-tex.tex.
 ============================================================
 ============================================================
 TEST 4: Loading a file
diff --git a/l3kernel/testfiles/m3file001.xetex.tlg b/l3kernel/testfiles/m3file001.xetex.tlg
index 50c7c67ea..4d007d1e9 100644
--- a/l3kernel/testfiles/m3file001.xetex.tlg
+++ b/l3kernel/testfiles/m3file001.xetex.tlg
@@ -25,6 +25,9 @@ TEST 3: Getting the full name of files
 > \l_A_tl=filetest.txt.
 > \l_A_tl=filetest.txt.
 > \l_A_tl=\q_no_value .
+> \l_A_tl=filetest.
+> \l_A_tl=filetest-noname.
+> \l_A_tl=filetest-tex.tex.
 ============================================================
 ============================================================
 TEST 4: Loading a file
diff --git a/l3kernel/testfiles/filetest.txt b/l3kernel/testfiles/support/filetest
similarity index 100%
copy from l3kernel/testfiles/filetest.txt
copy to l3kernel/testfiles/support/filetest
diff --git a/l3kernel/testfiles/filetest.txt b/l3kernel/testfiles/support/filetest-noname
similarity index 100%
copy from l3kernel/testfiles/filetest.txt
copy to l3kernel/testfiles/support/filetest-noname
diff --git a/l3kernel/testfiles/filetest.txt b/l3kernel/testfiles/support/filetest-tex
similarity index 100%
copy from l3kernel/testfiles/filetest.txt
copy to l3kernel/testfiles/support/filetest-tex
diff --git a/l3kernel/testfiles/filetest.txt b/l3kernel/testfiles/support/filetest-tex.tex
similarity index 100%
copy from l3kernel/testfiles/filetest.txt
copy to l3kernel/testfiles/support/filetest-tex.tex





More information about the latex3-commits mailing list