]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix the MS-Windows build broken by recent errno changes
authorEli Zaretskii <eliz@gnu.org>
Wed, 18 Sep 2019 12:14:15 +0000 (15:14 +0300)
committerEli Zaretskii <eliz@gnu.org>
Wed, 18 Sep 2019 12:14:15 +0000 (15:14 +0300)
* src/fileio.c (file_directory_p): If the file exists, but is
not a directory, set errno to ENOTDIR, like the Posix branch
does; openp expects that.

src/fileio.c

index 58bc6b7ee8ced67850227e1007038654fcc480da..53eecc31aaf552ec35a00751ca75bafc12cd2b9c 100644 (file)
@@ -2961,7 +2961,10 @@ file_directory_p (Lisp_Object file)
 {
 #ifdef DOS_NT
   /* This is cheaper than 'stat'.  */
-  return faccessat (AT_FDCWD, SSDATA (file), D_OK, AT_EACCESS) == 0;
+  bool retval = faccessat (AT_FDCWD, SSDATA (file), D_OK, AT_EACCESS) == 0;
+  if (!retval && errno == EACCES)
+    errno = ENOTDIR;   /* like the non-DOS_NT branch below does */
+  return retval;
 #else
 # ifdef O_PATH
   /* Use O_PATH if available, as it avoids races and EOVERFLOW issues.  */