]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fexpand_file_name) [WINDOWSNT]: Be careful not to
authorRichard M. Stallman <rms@gnu.org>
Sat, 16 May 1998 19:56:07 +0000 (19:56 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 16 May 1998 19:56:07 +0000 (19:56 +0000)
concatenate the directory prefix and file name to accidentally
create a network share name.

src/fileio.c

index 352129a0853c04c3979f4130eb10f5b6ebef6f20..aef7a01e0a306bfed387ac41072c8a72afb07a8b 100644 (file)
@@ -1419,7 +1419,18 @@ See also the function `substitute-in-file-name'.")
     {
 #ifndef VMS
       if (nm[0] == 0 || IS_DIRECTORY_SEP (nm[0]))
-       strcpy (target, newdir);
+       {
+#ifdef WINDOWSNT
+         /* If newdir is effectively "C:/", then the drive letter will have
+            been stripped and newdir will be "/".  Concatenating with an
+            absolute directory in nm produces "//", which will then be
+            incorrectly treated as a network share.  Ignore newdir in
+            this case (keeping the drive letter).  */
+         if (!(drive && nm[0] && IS_DIRECTORY_SEP (newdir[0]) 
+               && newdir[1] == '\0'))
+#endif
+           strcpy (target, newdir);
+       }
       else
 #endif
        file_name_as_directory (target, newdir);