* lib/utimens.c (fdutimens): Before calling utimensat, recognize a
filename ending in a slash that does not point to a directory.
+2021-01-02 Bruno Haible <bruno@clisp.org>
+
+ utimens: Fix test failure on macOS 10.13.
+ * lib/utimens.c (fdutimens): Before calling utimensat, recognize a
+ filename ending in a slash that does not point to a directory.
+
2021-01-02 Bruno Haible <bruno@clisp.org>
utimens: Avoid test failures on macOS 10.13.
# if HAVE_UTIMENSAT
if (fd < 0)
{
+# if defined __APPLE__ && defined __MACH__
+ size_t len = strlen (file);
+ if (len > 0 && file[len - 1] == '/')
+ {
+ struct stat statbuf;
+ if (stat (file, &statbuf) < 0)
+ return -1;
+ if (!S_ISDIR (statbuf.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ }
+# endif
result = utimensat (AT_FDCWD, file, ts, 0);
# ifdef __linux__
/* Work around a kernel bug: