about summary refs log tree commit diff
path: root/mdeliver.c
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2019-03-28 22:22:45 +0100
committerLeah Neukirchen <leah@vuxu.org>2019-03-28 22:22:45 +0100
commit53151f4f890f302291eb8d3375dec4f8ecb66ed7 (patch)
tree733d24d0a224e46d917711e02f3c9e54733a003f /mdeliver.c
parent0d73424edf1476696270c7bbb2f79764c05a3e5e (diff)
downloadmblaze-53151f4f890f302291eb8d3375dec4f8ecb66ed7.tar.gz
mblaze-53151f4f890f302291eb8d3375dec4f8ecb66ed7.tar.xz
mblaze-53151f4f890f302291eb8d3375dec4f8ecb66ed7.zip
mdeliver: add fallback to utimes for systems that don't have utimensat
Namely, macOS before 10.13.
Diffstat (limited to 'mdeliver.c')
-rw-r--r--mdeliver.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/mdeliver.c b/mdeliver.c
index f202420..80dbe1a 100644
--- a/mdeliver.c
+++ b/mdeliver.c
@@ -223,6 +223,7 @@ try_again:
 		}
 
 		if (preserve_mtime) {
+#if defined(AT_FDCWD) && defined(UTIME_NOW) && defined(UTIME_OMIT)
 			const struct timespec times[2] = {
 				{ tv.tv_sec, tv.tv_usec * 1000L },
 #if (defined(__APPLE__) && defined(__MACH__))
@@ -232,6 +233,13 @@ try_again:
 #endif
 			};
 			utimensat(AT_FDCWD, tmp, times, 0);
+#else
+			const struct timeval times[2] = {
+				tv,
+				{ st.st_mtime, 0 }
+			};
+			utimes(tmp, times);
+#endif
 		}
 
 		snprintf(dst, sizeof dst, "%s/%s/%s:2,%s",