]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fw32_long_file_name): Don't append dir separator to bare drive.
authorJason Rumney <jasonr@gnu.org>
Tue, 22 Jul 2008 15:28:21 +0000 (15:28 +0000)
committerJason Rumney <jasonr@gnu.org>
Tue, 22 Jul 2008 15:28:21 +0000 (15:28 +0000)
src/ChangeLog
src/w32proc.c

index 81d1006f56f13cb6451d6ad506a5b0a23f4c21c1..2e75084d5bfde3eb15bbf567bd507d604c03d912 100644 (file)
@@ -1,3 +1,8 @@
+2008-07-22  Jason Rumney  <jasonr@gnu.org>
+
+        * w32proc.c (Fw32_long_file_name): Don't append dir separator to
+        bare drive.
+
 2008-07-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
 
        * nsgui.h:
        * w32fns.c (globals_of_w32fns): Init common controls.
 
 2007-10-08  Richard Stallman  <rms@gnu.org>
-
        * image.c (our_memory_buffer): Rename from omfib_buffer.
 
 2007-10-08  Richard Stallman  <rms@gnu.org>
index 33981445c7ca3cceef46c737155525500d959fcd..ed405cce9fff2c8ba05e5fb07531913f347b3262 100644 (file)
@@ -1799,9 +1799,14 @@ All path elements in FILENAME are converted to their long names.  */)
      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 @@ All path elements in FILENAME are converted to their long names.  */)
 
   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);
 }