* times.cc (to_time_t): pass zero time as epoch
* fhandler.cc (fstat): copy atime/ctime from mtime if they're zero
This commit is contained in:
parent
b3c74e6dd0
commit
e9921bcbaa
|
@ -1,3 +1,8 @@
|
||||||
|
2000-10-20 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
|
* times.cc (to_time_t): pass zero time as epoch
|
||||||
|
* fhandler.cc (fstat): copy atime/ctime from mtime if they're zero
|
||||||
|
|
||||||
Thu Oct 19 23:31:41 2000 Christopher Faylor <cgf@cygnus.com>
|
Thu Oct 19 23:31:41 2000 Christopher Faylor <cgf@cygnus.com>
|
||||||
|
|
||||||
* external.cc (fillout_pinfo): Pass PID_NOREDIR flag to pinfo init to
|
* external.cc (fillout_pinfo): Pass PID_NOREDIR flag to pinfo init to
|
||||||
|
|
|
@ -855,6 +855,12 @@ fhandler_disk_file::fstat (struct stat *buf)
|
||||||
buf->st_dev = local.dwVolumeSerialNumber;
|
buf->st_dev = local.dwVolumeSerialNumber;
|
||||||
buf->st_size = local.nFileSizeLow;
|
buf->st_size = local.nFileSizeLow;
|
||||||
|
|
||||||
|
/* This is for FAT filesystems, which don't support atime/ctime */
|
||||||
|
if (buf->st_atime == 0)
|
||||||
|
buf->st_atime = buf->st_mtime;
|
||||||
|
if (buf->st_ctime == 0)
|
||||||
|
buf->st_ctime = buf->st_mtime;
|
||||||
|
|
||||||
/* Allocate some place to determine the root directory. Need to allocate
|
/* Allocate some place to determine the root directory. Need to allocate
|
||||||
enough so that rootdir can add a trailing slash if path starts with \\. */
|
enough so that rootdir can add a trailing slash if path starts with \\. */
|
||||||
char root[strlen (get_win32_name ()) + 3];
|
char root[strlen (get_win32_name ()) + 3];
|
||||||
|
|
|
@ -221,6 +221,11 @@ to_time_t (FILETIME *ptr)
|
||||||
|
|
||||||
long rem;
|
long rem;
|
||||||
long long x = ((long long) ptr->dwHighDateTime << 32) + ((unsigned)ptr->dwLowDateTime);
|
long long x = ((long long) ptr->dwHighDateTime << 32) + ((unsigned)ptr->dwLowDateTime);
|
||||||
|
|
||||||
|
/* pass "no time" as epoch */
|
||||||
|
if (x == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
x -= FACTOR; /* number of 100ns between 1601 and 1970 */
|
x -= FACTOR; /* number of 100ns between 1601 and 1970 */
|
||||||
rem = x % ((long long)NSPERSEC);
|
rem = x % ((long long)NSPERSEC);
|
||||||
rem += (NSPERSEC / 2);
|
rem += (NSPERSEC / 2);
|
||||||
|
|
Loading…
Reference in New Issue