]> code.delx.au - gnu-emacs/commitdiff
Don't mirror slashes in convert-standard-filename on MS-Windows
authorEli Zaretskii <eliz@gnu.org>
Mon, 25 Apr 2016 08:50:37 +0000 (11:50 +0300)
committerEli Zaretskii <eliz@gnu.org>
Mon, 25 Apr 2016 08:50:37 +0000 (11:50 +0300)
* lisp/w32-fns.el (w32-convert-standard-filename): Don't mirror
slashes into backslashes.  This avoids producing ugly file names,
and is deemed no longer necessary, and should certainly be
unrelated to which shell is in use.

etc/NEWS
lisp/w32-fns.el

index f964e71f8b6609e9b42f6bc6ad604c1d37e43fa4..eff5472e1bdb019d38e29c7cbfec3e25c138dc01 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -418,6 +418,10 @@ Windows NT and later you can now register any hotkey combination.  (On
 Windows 9X, the previous limitations, spelled out in the Emacs manual,
 still apply.)
 
 Windows 9X, the previous limitations, spelled out in the Emacs manual,
 still apply.)
 
+** `convert-standard-filename' no longer mirrors slashes on MS-Windows.
+Previously, on MS-Windows this function converted slash characters in
+file names into backslashes.  It no longer does that.
+
 \f
 * Installation Changes in Emacs 25.1
 
 \f
 * Installation Changes in Emacs 25.1
 
index 472355741b815ac1e640116592e77869ea1a046a..690a99020878aa3eaf61f1dd3f8a6091f005c507 100644 (file)
@@ -200,8 +200,7 @@ certain patterns.
 This function is called by `convert-standard-filename'.
 
 Replace invalid characters and turn Cygwin names into native
 This function is called by `convert-standard-filename'.
 
 Replace invalid characters and turn Cygwin names into native
-names, and also turn slashes into backslashes if the shell
-requires it (see `w32-shell-dos-semantics')."
+names."
   (save-match-data
     (let ((name
           (if (string-match "\\`/cygdrive/\\([a-zA-Z]\\)/" filename)
   (save-match-data
     (let ((name
           (if (string-match "\\`/cygdrive/\\([a-zA-Z]\\)/" filename)
@@ -216,13 +215,6 @@ requires it (see `w32-shell-dos-semantics')."
       (while (string-match "[?*:<>|\"\000-\037]" name start)
        (aset name (match-beginning 0) ?!)
        (setq start (match-end 0)))
       (while (string-match "[?*:<>|\"\000-\037]" name start)
        (aset name (match-beginning 0) ?!)
        (setq start (match-end 0)))
-      ;; convert directory separators to Windows format
-      ;; (but only if the shell in use requires it)
-      (when (w32-shell-dos-semantics)
-       (setq start 0)
-       (while (string-match "/" name start)
-         (aset name (match-beginning 0) ?\\)
-         (setq start (match-end 0))))
       name)))
 
 (defun set-w32-system-coding-system (coding-system)
       name)))
 
 (defun set-w32-system-coding-system (coding-system)