* 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:
DJ Delorie 2000-10-20 21:45:50 +00:00
parent b3c74e6dd0
commit e9921bcbaa
3 changed files with 16 additions and 0 deletions

View File

@ -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>
* external.cc (fillout_pinfo): Pass PID_NOREDIR flag to pinfo init to

View File

@ -855,6 +855,12 @@ fhandler_disk_file::fstat (struct stat *buf)
buf->st_dev = local.dwVolumeSerialNumber;
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
enough so that rootdir can add a trailing slash if path starts with \\. */
char root[strlen (get_win32_name ()) + 3];

View File

@ -221,6 +221,11 @@ to_time_t (FILETIME *ptr)
long rem;
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 */
rem = x % ((long long)NSPERSEC);
rem += (NSPERSEC / 2);