Mercurial > emacs
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); }