From 5285f83b77df9e206f4904eba92c741eb42acc93 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 13 Dec 2021 13:19:18 +0100 Subject: include/c: add cmp_timespec() and cmp_stat_mtime() It's like timercmp() in libc, but for timespec and for stat.st_mtim (or stat.st_mtime for old struct stat versions). Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=2180414 Upstream: http://github.com/util-linux/util-linux/commit/0cfb8c5c3205a92ae81def278cdded63ea47094f Signed-off-by: Karel Zak --- include/c.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/c.h b/include/c.h index 354b59e29..01f0fa507 100644 --- a/include/c.h +++ b/include/c.h @@ -167,6 +167,24 @@ _a == _b ? 0 : _a > _b ? 1 : -1; }) #endif + +#ifndef cmp_timespec +# define cmp_timespec(a, b, CMP) \ + (((a)->tv_sec == (b)->tv_sec) \ + ? ((a)->tv_nsec CMP (b)->tv_nsec) \ + : ((a)->tv_sec CMP (b)->tv_sec)) +#endif + + +#ifndef cmp_stat_mtime +# ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC +# define cmp_stat_mtime(_a, _b, CMP) cmp_timespec(&(_a)->st_mtim, &(_b)->st_mtim, CMP) +# else +# define cmp_stat_mtime(_a, _b, CMP) ((_a)->st_mtime CMP (_b)->st_mtime) +# endif +#endif + + #ifndef offsetof #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) #endif -- 2.39.2