diff src/w32proc.c @ 96893:532dd6819465

(Fw32_long_file_name): Don't append dir separator to bare drive.
author Jason Rumney <jasonr@gnu.org>
date Tue, 22 Jul 2008 15:28:21 +0000
parents c3309dba6542
children 3ec2cc2d35c1
line wrap: on
line diff
--- a/src/w32proc.c	Tue Jul 22 12:33:13 2008 +0000
+++ b/src/w32proc.c	Tue Jul 22 15:28:21 2008 +0000
@@ -1799,9 +1799,14 @@
      Lisp_Object filename;
 {
   char longname[ MAX_PATH ];
+  int drive_only = 0;
 
   CHECK_STRING (filename);
 
+  if (SBYTES (filename) == 2
+      && *(SDATA (filename) + 1) == ':')
+    drive_only = 1;
+
   /* first expand it.  */
   filename = Fexpand_file_name (filename, Qnil);
 
@@ -1810,6 +1815,12 @@
 
   CORRECT_DIR_SEPS (longname);
 
+  /* If we were passed only a drive, make sure that a slash is not appended
+     for consistency with directories.  Allow for drive mapping via SUBST
+     in case expand-file-name is ever changed to expand those.  */
+  if (drive_only && longname[1] == ':' && longname[2] == '/' && !longname[3])
+    longname[2] = '\0';
+
   return build_string (longname);
 }