libarchive: fix compilation on newer HP-UX versions
Newer HP-UX versions (e.g. 11.31) also offers F_SETTIMES, but with a different struct for the timing information. Suggested-by: Eric Berge <ericmberge@gmail.com>
This commit is contained in:
parent
eca798149b
commit
478b1c8b36
|
@ -2861,7 +2861,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,
|
||||
|
@ -2869,19 +2869,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,
|
||||
|
|
Loading…
Reference in New Issue