summaryrefslogtreecommitdiffstats
path: root/src/bfstd.h
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-04-19 14:50:48 -0400
committerTavian Barnes <tavianator@tavianator.com>2024-04-19 15:50:45 -0400
commit48d91c62cd27c15fe0e928abf6d023d17e9c41f7 (patch)
treea6dd2dfb7acddb2e45bdbdddf4fced3ae0155e15 /src/bfstd.h
parent111cc3af4b6132fda47d18683a04985ca7c571c2 (diff)
downloadbfs-48d91c62cd27c15fe0e928abf6d023d17e9c41f7.tar.xz
config: Check for struct stat::st_{a,c,m,birth}{tim,timespec}
Diffstat (limited to 'src/bfstd.h')
-rw-r--r--src/bfstd.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/bfstd.h b/src/bfstd.h
index 42f5d5b..f91e380 100644
--- a/src/bfstd.h
+++ b/src/bfstd.h
@@ -283,11 +283,21 @@ int xminor(dev_t dev);
// #include <sys/stat.h>
-#if __APPLE__
-# define st_atim st_atimespec
-# define st_ctim st_ctimespec
-# define st_mtim st_mtimespec
-# define st_birthtim st_birthtimespec
+/**
+ * Get the access/change/modification time from a struct stat.
+ */
+#if BFS_HAS_ST_ACMTIM
+# define ST_ATIM(sb) (sb).st_atim
+# define ST_CTIM(sb) (sb).st_ctim
+# define ST_MTIM(sb) (sb).st_mtim
+#elif BFS_HAS_ST_ACMTIMESPEC
+# define ST_ATIM(sb) (sb).st_atimespec
+# define ST_CTIM(sb) (sb).st_ctimespec
+# define ST_MTIM(sb) (sb).st_mtimespec
+#else
+# define ST_ATIM(sb) ((struct timespec) { .tv_sec = (sb).st_atime })
+# define ST_CTIM(sb) ((struct timespec) { .tv_sec = (sb).st_ctime })
+# define ST_MTIM(sb) ((struct timespec) { .tv_sec = (sb).st_mtime })
#endif
// #include <sys/wait.h>