texlive[49145] Build/source/texk/web2c/lib: \pdffilemoddate output

commits+karl at tug.org commits+karl at tug.org
Tue Nov 13 19:39:21 CET 2018


Revision: 49145
          http://tug.org/svn/texlive?view=revision&revision=49145
Author:   karl
Date:     2018-11-13 19:39:20 +0100 (Tue, 13 Nov 2018)
Log Message:
-----------
\pdffilemoddate output UTC if envvars set, pdftex r808

Revision Links:
--------------
    http://tug.org/svn/texlive?view=revision&revision=808

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

Modified: trunk/Build/source/texk/web2c/lib/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/lib/ChangeLog	2018-11-13 18:05:36 UTC (rev 49144)
+++ trunk/Build/source/texk/web2c/lib/ChangeLog	2018-11-13 18:39:20 UTC (rev 49145)
@@ -1,3 +1,12 @@
+2018-11-13  Karl Berry  <karl at freefriends.org>
+
+	* texmfmp.c (FORCE_SOURCE_DATE_set, SOURCE_DATE_EPOCH_set): new static.
+	(init_start_time, get_date_and_time): initialize them.
+	(getfilemoddate): use_utc if both vars set.
+	Original suggestion from Ulrike Fischer, tex-live 3 Nov 2018 23:00:48,
+	original patch from Akira Kakuto.
+	(getfilemoddate): also, return nothing if ! kpse_in_name_ok.
+
 2018-11-04  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	* openclose.c: cleanup for non-ascii file names (w32 only)

Modified: trunk/Build/source/texk/web2c/lib/texmfmp.c
===================================================================
--- trunk/Build/source/texk/web2c/lib/texmfmp.c	2018-11-13 18:05:36 UTC (rev 49144)
+++ trunk/Build/source/texk/web2c/lib/texmfmp.c	2018-11-13 18:39:20 UTC (rev 49145)
@@ -2219,6 +2219,9 @@
 static boolean start_time_set = false;
 static time_t start_time = 0;
 
+static boolean SOURCE_DATE_EPOCH_set = false;
+static boolean FORCE_SOURCE_DATE_set = false;
+
 void init_start_time() {
     char *source_date_epoch;
     unsigned long long epoch;
@@ -2239,6 +2242,7 @@
                 epoch = 32535291599ULL;
 #endif
             start_time = epoch;
+            SOURCE_DATE_EPOCH_set = true;
         } else
 #endif /* not onlyTeX */
         {
@@ -2263,6 +2267,7 @@
   if (sde_texprim && STREQ (sde_texprim, "1")) {
     init_start_time ();
     tmptr = gmtime (&start_time);
+    FORCE_SOURCE_DATE_set = true;
   } else
 #endif /* not onlyTeX */
     {
@@ -3150,10 +3155,14 @@
 {
     struct stat file_data;
 
-    char *file_name = kpse_find_tex(makecfilename(s));
+    const_string orig_name = makecfilename(s);
+    char *file_name = kpse_find_tex(orig_name);
     if (file_name == NULL) {
         return;                 /* empty string */
     }
+    if (! kpse_in_name_ok(file_name)) {
+       return;                  /* no permission */
+    }
 
     recorder_record_input(file_name);
     /* get file status */
@@ -3163,8 +3172,8 @@
     if (stat(file_name, &file_data) == 0) {
 #endif
         size_t len;
-
-        makepdftime(file_data.st_mtime, time_str, /* utc= */false);
+	boolean use_utc = FORCE_SOURCE_DATE_set && SOURCE_DATE_EPOCH_set;
+        makepdftime(file_data.st_mtime, time_str, use_utc);
         len = strlen(time_str);
         if ((unsigned) (poolptr + len) >= (unsigned) (poolsize)) {
             poolptr = poolsize;



More information about the tex-live-commits mailing list