Skip to content

Commit 8f2b001

Browse files
DerDakonbradking
authored andcommitted
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>
1 parent cd35859 commit 8f2b001

1 file changed

Lines changed: 14 additions & 12 deletions

File tree

libarchive/archive_write_disk_posix.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2862,27 +2862,29 @@ set_time(int fd, int mode, const char *name,
28622862
#endif
28632863
}
28642864

2865-
#ifdef F_SETTIMES /* Tru64 */
2865+
#ifdef F_SETTIMES
28662866
static int
28672867
set_time_tru64(int fd, int mode, const char *name,
28682868
time_t atime, long atime_nsec,
28692869
time_t mtime, long mtime_nsec,
28702870
time_t ctime, long ctime_nsec)
28712871
{
28722872
struct attr_timbuf tstamp;
2873-
struct timeval times[3];
2874-
times[0].tv_sec = atime;
2875-
times[0].tv_usec = atime_nsec / 1000;
2876-
times[1].tv_sec = mtime;
2877-
times[1].tv_usec = mtime_nsec / 1000;
2878-
times[2].tv_sec = ctime;
2879-
times[2].tv_usec = ctime_nsec / 1000;
2880-
tstamp.atime = times[0];
2881-
tstamp.mtime = times[1];
2882-
tstamp.ctime = times[2];
2873+
tstamp.atime.tv_sec = atime;
2874+
tstamp.mtime.tv_sec = mtime;
2875+
tstamp.ctime.tv_sec = ctime;
2876+
#if defined (__hpux) && defined (__ia64)
2877+
tstamp.atime.tv_nsec = atime_nsec;
2878+
tstamp.mtime.tv_nsec = mtime_nsec;
2879+
tstamp.ctime.tv_nsec = ctime_nsec;
2880+
#else
2881+
tstamp.atimetv_usec = atime_nsec / 1000;
2882+
tstamp.mtime.tv_usec = mtime_nsec / 1000;
2883+
tstamp.ctime.tv_usec = ctime_nsec / 1000;
2884+
#endif
28832885
return (fcntl(fd,F_SETTIMES,&tstamp));
28842886
}
2885-
#endif /* Tru64 */
2887+
#endif /* F_SETTIMES */
28862888

28872889
static int
28882890
set_times(struct archive_write_disk *a,

0 commit comments

Comments
 (0)