texlive[51041] Build/source/texk/web2c: Apply a patch in

commits+kakuto at tug.org commits+kakuto at tug.org
Wed May 8 01:29:25 CEST 2019


Revision: 51041
          http://tug.org/svn/texlive?view=revision&revision=51041
Author:   kakuto
Date:     2019-05-08 01:29:24 +0200 (Wed, 08 May 2019)
Log Message:
-----------
Apply a patch in https://tug.org/pipermail/tex-k/2019-May/003014.html

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/ChangeLog
    trunk/Build/source/texk/web2c/lib/ChangeLog
    trunk/Build/source/texk/web2c/lib/texmfmp.c
    trunk/Build/source/texk/web2c/pdftexdir/ChangeLog
    trunk/Build/source/texk/web2c/pdftexdir/writeimg.c
    trunk/Build/source/texk/web2c/texmfmp.h

Modified: trunk/Build/source/texk/web2c/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ChangeLog	2019-05-07 21:38:11 UTC (rev 51040)
+++ trunk/Build/source/texk/web2c/ChangeLog	2019-05-07 23:29:24 UTC (rev 51041)
@@ -1,3 +1,9 @@
+2019-05-08  Akira Kakuto  <kakuto at w32tex.org>
+
+	* texmfmp.h: Define a new function find_input_file(integer s).
+	A report in tex-k list:
+	https://tug.org/pipermail/tex-k/2019-May/003014.html
+
 2019-04-07  Karl Berry  <karl at freefriends.org>
 
 	* TeX Live 2019.

Modified: trunk/Build/source/texk/web2c/lib/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/lib/ChangeLog	2019-05-07 21:38:11 UTC (rev 51040)
+++ trunk/Build/source/texk/web2c/lib/ChangeLog	2019-05-07 23:29:24 UTC (rev 51041)
@@ -1,3 +1,11 @@
+2019-05-08  Akira Kakuto  <kakuto at w32tex.org>
+
+	* texmfmp.c: Introduce a new function find_input_file(s)
+	to fix a bug that in special cases getfilesize() etc. for
+	image files saved in "output-directory" do not work.
+	A report in tex-k list:
+	https://tug.org/pipermail/tex-k/2019-May/003014.html
+
 2019-03-30  Akira Kakuto  <kakuto at w32tex.org>
 
 	* texmfmp.c: Improve to record texmf.cnf. (ptex and friends,

Modified: trunk/Build/source/texk/web2c/lib/texmfmp.c
===================================================================
--- trunk/Build/source/texk/web2c/lib/texmfmp.c	2019-05-07 21:38:11 UTC (rev 51040)
+++ trunk/Build/source/texk/web2c/lib/texmfmp.c	2019-05-07 23:29:24 UTC (rev 51041)
@@ -3094,6 +3094,33 @@
     }
 }
 
+/* Search for an input file. If -output-directory is specified look
+   there first. If that fails, do the regular kpse search. */
+string
+find_input_file(integer s)
+{
+    string filename;
+
+#if defined(XeTeX)
+    filename = gettexstring(s);
+#else
+    filename = makecfilename(s);
+#endif
+    /* Look in -output-directory first, if the filename is not
+       absolute.  This is because we want the pdf* functions to
+       be able to find the same files as \openin */
+    if (output_directory && !kpse_absolute_p (filename, false)) {
+        string pathname;
+
+        pathname = concat3(output_directory, DIR_SEP_STRING, filename);
+        if (!access(pathname, R_OK) && !dir_p (pathname)) {
+            return pathname;
+        }
+        xfree (pathname);
+    }
+    return kpse_find_tex(filename);
+}
+
 #if !defined(XeTeX)
 char *makecstring(integer s)
 {
@@ -3176,13 +3203,8 @@
 void getfilemoddate(integer s)
 {
     struct stat file_data;
-#if defined(XeTeX)
-    int i;
-    const_string orig_name = gettexstring(s);
-#else
-    const_string orig_name = makecfilename(s);
-#endif
-    char *file_name = kpse_find_tex(orig_name);
+
+    char *file_name = find_input_file(s);
     if (file_name == NULL) {
         return;                 /* empty string */
     }
@@ -3206,6 +3228,8 @@
             /* error by str_toks that calls str_room(1) */
         } else {
 #if defined(XeTeX)
+            int i;
+
             for (i = 0; i < len; i++)
                 strpool[poolptr++] = (uint16_t)time_str[i];
 #else
@@ -3224,11 +3248,7 @@
     struct stat file_data;
     int i;
 
-#if defined(XeTeX)
-    char *file_name = kpse_find_tex(gettexstring(s));
-#else
-    char *file_name = kpse_find_tex(makecfilename(s));
-#endif
+    char *file_name = find_input_file(s);
     if (file_name == NULL) {
         return;                 /* empty string */
     }
@@ -3294,11 +3314,7 @@
         return;
     }
 
-#if defined(XeTeX)
-    file_name = kpse_find_tex(gettexstring(s));
-#else
-    file_name = kpse_find_tex(makecfilename(s));
-#endif
+    file_name = find_input_file(s);
     if (file_name == NULL) {
         return;                 /* empty string */
     }
@@ -3388,13 +3404,7 @@
         FILE *f;
         char *file_name;
 
-#if defined(XeTeX)
-        xname = gettexstring (s);
-        file_name = kpse_find_tex (xname);
-        xfree (xname);
-#else
-        file_name = kpse_find_tex(makecfilename(s));
-#endif
+        file_name = find_input_file(s);
         if (file_name == NULL) {
             return;             /* empty string */
         }

Modified: trunk/Build/source/texk/web2c/pdftexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/ChangeLog	2019-05-07 21:38:11 UTC (rev 51040)
+++ trunk/Build/source/texk/web2c/pdftexdir/ChangeLog	2019-05-07 23:29:24 UTC (rev 51041)
@@ -1,3 +1,10 @@
+2019-05-08  Akira Kakuto  <kakuto at w32tex.org>
+
+	* writeimg.c: Use a new function find_input_file() to find
+	an image file.
+	A report in tex-k list:
+	https://tug.org/pipermail/tex-k/2019-May/003014.html
+
 2019-05-03  Akira Kakuto  <kakuto at w32tex.org>
 
 	* pdftosrc-poppler0.76.0.cc, pdftoepdf-poppler0.76.0.cc:

Modified: trunk/Build/source/texk/web2c/pdftexdir/writeimg.c
===================================================================
--- trunk/Build/source/texk/web2c/pdftexdir/writeimg.c	2019-05-07 21:38:11 UTC (rev 51040)
+++ trunk/Build/source/texk/web2c/pdftexdir/writeimg.c	2019-05-07 23:29:24 UTC (rev 51041)
@@ -302,12 +302,10 @@
        already used by cur_file_name */
     if (page_name != 0)
         dest = xstrdup(makecstring(page_name));
-    cur_file_name = makecfilename(s);
-    img_name(img) = kpse_find_file(cur_file_name, kpse_tex_format, true);
+    cur_file_name = find_input_file(s);
+    img_name(img) = cur_file_name;
     if (img_name(img) == NULL)
         pdftex_fail("cannot find image file");
-    /* kpse_find_file perhaps changed the file name */
-    cur_file_name = img_name(img);
     recorder_record_input(cur_file_name);
     /* type checks */
     checktypebyheader(img);

Modified: trunk/Build/source/texk/web2c/texmfmp.h
===================================================================
--- trunk/Build/source/texk/web2c/texmfmp.h	2019-05-07 21:38:11 UTC (rev 51040)
+++ trunk/Build/source/texk/web2c/texmfmp.h	2019-05-07 23:29:24 UTC (rev 51041)
@@ -126,6 +126,7 @@
 #endif
 extern char start_time_str[];
 extern void initstarttime(void);
+extern string find_input_file(integer s);
 #if !defined(XeTeX)
 extern char *makecstring(integer s);
 extern char *makecfilename(integer s);



More information about the tex-live-commits mailing list