From: Jim Meyering Date: Fri, 19 Mar 2010 17:09:20 +0000 (+0100) Subject: do not use stat.st_mtime of a non-regular file X-Git-Tag: v1.5~94 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=cad194d49efdb478ae0acf9355ab2ffe4d650739;p=debian%2Fgzip do not use stat.st_mtime of a non-regular file * gzip.c: Include "timespec.h". (treat_stdin): Use st_mtime only from a regular file. This matters at least on Cygwin 1.7.1-1, for which a stdin-pipe has the mtime of /dev/null, rather than the gzip-documented-for-pipes "current time". Reported by Denis Excoffier. --- diff --git a/THANKS b/THANKS index b0833e5..a69f832 100644 --- a/THANKS +++ b/THANKS @@ -74,6 +74,7 @@ Paul Eggert eggert@cs.ucla.edu Enami enami@sys.ptg.sony.co.jp Kristoffer Eriksson ske@pkmab.se Daniel Eriksson m91der@bellatrix.tdb.uu.se +Denis Excoffier 3.1416@free.fr Rik Faith faith@cs.unc.edu Larry Fahnoe fahnoe@c1mpls.mn.org Cristian Ferretti cfs@poincare.mat.puc.cl diff --git a/gzip.c b/gzip.c index d1105e5..41322ec 100644 --- a/gzip.c +++ b/gzip.c @@ -67,6 +67,7 @@ static char const *const license_msg[] = { #include "gzip.h" #include "lzw.h" #include "revision.h" +#include "timespec.h" #include "fcntl-safer.h" #include "getopt.h" @@ -648,7 +649,12 @@ local void treat_stdin() ifile_size = S_ISREG (istat.st_mode) ? istat.st_size : -1; time_stamp.tv_nsec = -1; if (!no_time || list) - time_stamp = get_stat_mtime (&istat); + { + if (S_ISREG (istat.st_mode)) + time_stamp = get_stat_mtime (&istat); + else + gettime (&time_stamp); + } clear_bufs(); /* clear input and output buffers */ to_stdout = 1;