(stat): Treat UNC file names as residing on remote drives. (Bug#3542)
authorEli Zaretskii <eliz@gnu.org>
Thu, 9 Jul 2009 18:44:52 +0000 (18:44 +0000)
committerEli Zaretskii <eliz@gnu.org>
Thu, 9 Jul 2009 18:44:52 +0000 (18:44 +0000)
src/ChangeLog
src/w32.c

index fec0b8e..e64812b 100644 (file)
@@ -1,3 +1,8 @@
+2009-07-09  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (stat): Treat UNC file names as residing on remote
+       drives.  (Bug#3542)
+
 2009-07-09  Kenichi Handa  <handa@m17n.org>
 
        * fontset.c (fontset_find_font): Fix previous change.
index ef02722..2a7be36 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -3347,11 +3347,13 @@ stat (const char * path, struct stat * buf)
        }
     }
 
-  /* GetDriveType needs the root directory of NAME's drive.  */
-  if (!(strlen (name) >= 2 && IS_DEVICE_SEP (name[1])))
-    devtype = GetDriveType (NULL); /* use root of current diectory */
+  if (IS_DIRECTORY_SEP (name[0]) && IS_DIRECTORY_SEP (name[1]))
+    devtype = DRIVE_REMOTE;       /* assume UNC name is remote */
+  else if (!(strlen (name) >= 2 && IS_DEVICE_SEP (name[1])))
+    devtype = GetDriveType (NULL); /* use root of current drive */
   else
     {
+      /* GetDriveType needs the root directory of NAME's drive.  */
       strncpy (drive_root, name, 3);
       drive_root[3] = '\0';
       devtype = GetDriveType (drive_root);