Commit 4189a7f9 authored by Rolf Eike Beer's avatar Rolf Eike Beer Committed by Brad King
Browse files

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's avatarEric Berge <ericmberge@gmail.com>
parent eca79814
......@@ -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.atime.tv_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,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment