|
|
@@ -2862,7 +2862,7 @@ set_time(int fd, int mode, const char *name,
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
-#ifdef F_SETTIMES /* Tru64 */
|
|
|
+#ifdef F_SETTIMES
|
|
|
static int
|
|
|
set_time_tru64(int fd, int mode, const char *name,
|
|
|
time_t atime, long atime_nsec,
|
|
|
@@ -2870,19 +2870,21 @@ set_time_tru64(int fd, int mode, const char *name,
|
|
|
time_t ctime, long ctime_nsec)
|
|
|
{
|
|
|
struct attr_timbuf tstamp;
|
|
|
- struct timeval times[3];
|
|
|
- times[0].tv_sec = atime;
|
|
|
- times[0].tv_usec = atime_nsec / 1000;
|
|
|
- times[1].tv_sec = mtime;
|
|
|
- times[1].tv_usec = mtime_nsec / 1000;
|
|
|
- times[2].tv_sec = ctime;
|
|
|
- times[2].tv_usec = ctime_nsec / 1000;
|
|
|
- tstamp.atime = times[0];
|
|
|
- tstamp.mtime = times[1];
|
|
|
- tstamp.ctime = times[2];
|
|
|
+ tstamp.atime.tv_sec = atime;
|
|
|
+ tstamp.mtime.tv_sec = mtime;
|
|
|
+ tstamp.ctime.tv_sec = ctime;
|
|
|
+#if defined (__hpux) && defined (__ia64)
|
|
|
+ tstamp.atime.tv_nsec = atime_nsec;
|
|
|
+ tstamp.mtime.tv_nsec = mtime_nsec;
|
|
|
+ tstamp.ctime.tv_nsec = ctime_nsec;
|
|
|
+#else
|
|
|
+ tstamp.atimetv_usec = atime_nsec / 1000;
|
|
|
+ tstamp.mtime.tv_usec = mtime_nsec / 1000;
|
|
|
+ tstamp.ctime.tv_usec = ctime_nsec / 1000;
|
|
|
+#endif
|
|
|
return (fcntl(fd,F_SETTIMES,&tstamp));
|
|
|
}
|
|
|
-#endif /* Tru64 */
|
|
|
+#endif /* F_SETTIMES */
|
|
|
|
|
|
static int
|
|
|
set_times(struct archive_write_disk *a,
|