1170 |
FILE_TIMESTAMP adjusted_mtime = mtime; |
FILE_TIMESTAMP adjusted_mtime = mtime; |
1171 |
|
|
1172 |
#if defined(WINDOWS32) || defined(__MSDOS__) |
#if defined(WINDOWS32) || defined(__MSDOS__) |
1173 |
FILE_TIMESTAMP adjustment; |
/* Experimentation has shown that FAT filesystems can set file times |
1174 |
#ifdef WINDOWS32 |
up to 3 seconds into the future! Play it safe. */ |
1175 |
/* FAT filesystems round time to the nearest even second! |
|
1176 |
Allow for any file (NTFS or FAT) to perhaps suffer from this |
#define FAT_ADJ_OFFSET (FILE_TIMESTAMP) 3 |
1177 |
brain damage. */ |
|
1178 |
adjustment = (((FILE_TIMESTAMP_S (adjusted_mtime) & 1) == 0 |
FILE_TIMESTAMP adjustment = FAT_ADJ_OFFSET << FILE_TIMESTAMP_LO_BITS; |
|
&& FILE_TIMESTAMP_NS (adjusted_mtime) == 0) |
|
|
? (FILE_TIMESTAMP) 1 << FILE_TIMESTAMP_LO_BITS |
|
|
: 0); |
|
|
#else |
|
|
/* On DJGPP under Windows 98 and Windows NT, FAT filesystems can |
|
|
set file times up to 3 seconds into the future! The bug doesn't |
|
|
occur in plain DOS or in Windows 95, but we play it safe. */ |
|
|
adjustment = (FILE_TIMESTAMP) 3 << FILE_TIMESTAMP_LO_BITS; |
|
|
#endif |
|
1179 |
if (ORDINARY_MTIME_MIN + adjustment <= adjusted_mtime) |
if (ORDINARY_MTIME_MIN + adjustment <= adjusted_mtime) |
1180 |
adjusted_mtime -= adjustment; |
adjusted_mtime -= adjustment; |
1181 |
#endif |
#endif |