From: Christian Weisgerber Subject: Use modern POSIX timestamp fields in struct stat To: gameoftrees@openbsd.org Date: Thu, 10 Sep 2020 16:23:13 +0200 Use modern POSIX timestamp fields in struct stat This is another instance where using the modern POSIX API eases portability without any drawback. The timestamps in struct stat are now all struct timespec. OK? diff 3168e5da215c7b442d231f40bfd61df067505d8b /home/naddy/got blob - 1e59fdb908a5087e2dbdb5ce930a9743a9eead43 file + lib/fileindex.c --- lib/fileindex.c +++ lib/fileindex.c @@ -105,10 +105,10 @@ got_fileindex_entry_update(struct got_fileindex_entry if ((ie->flags & GOT_FILEIDX_F_NO_FILE_ON_DISK) == 0) { if (update_timestamps) { - ie->ctime_sec = sb.st_ctime; - ie->ctime_nsec = sb.st_ctimensec; - ie->mtime_sec = sb.st_mtime; - ie->mtime_nsec = sb.st_mtimensec; + ie->ctime_sec = sb.st_ctim.tv_sec; + ie->ctime_nsec = sb.st_ctim.tv_nsec; + ie->mtime_sec = sb.st_mtim.tv_sec; + ie->mtime_nsec = sb.st_mtim.tv_nsec; } ie->uid = sb.st_uid; ie->gid = sb.st_gid; blob - 8afc4c2596b52c558eca6fd9e0ac8678040d308f file + lib/worktree.c --- lib/worktree.c +++ lib/worktree.c @@ -1569,10 +1569,10 @@ xbit_differs(struct got_fileindex_entry *ie, uint16_t static int stat_info_differs(struct got_fileindex_entry *ie, struct stat *sb) { - return !(ie->ctime_sec == sb->st_ctime && - ie->ctime_nsec == sb->st_ctimensec && - ie->mtime_sec == sb->st_mtime && - ie->mtime_nsec == sb->st_mtimensec && + return !(ie->ctime_sec == sb->st_ctim.tv_sec && + ie->ctime_nsec == sb->st_ctim.tv_nsec && + ie->mtime_sec == sb->st_mtim.tv_sec && + ie->mtime_nsec == sb->st_mtim.tv_nsec && ie->size == (sb->st_size & 0xffffffff) && !xbit_differs(ie, sb->st_mode)); } -- Christian "naddy" Weisgerber naddy@mips.inka.de