summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2013-03-16 10:20:36 +0200
committerEli Zaretskii <eliz@gnu.org>2013-03-16 10:20:36 +0200
commit98e775e640b18104c1c83cf29d00f34605bde35d (patch)
tree5ce88550a3ffddfd1dce1716b91829a58b81791d /lisp
parentcded56c19b30e038537398b5213438c339428ed9 (diff)
downloademacs-98e775e640b18104c1c83cf29d00f34605bde35d.tar.gz
Fix command-line-normalize-file-name for DOS/Windows file names.
lisp/startup.el (command-line-normalize-file-name): Fix handling of backslashes in DOS and Windows file names. Reported by Xue Fuqiao <xfq.free@gmail.com> in http://lists.gnu.org/archive/html/help-gnu-emacs/2013-03/msg00245.html.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/startup.el16
2 files changed, 17 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 41e78c7885a..2c729e3d5b7 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2013-03-16 Eli Zaretskii <eliz@gnu.org>
+
+ * startup.el (command-line-normalize-file-name): Fix handling of
+ backslashes in DOS and Windows file names. Reported by Xue Fuqiao
+ <xfq.free@gmail.com> in
+ http://lists.gnu.org/archive/html/help-gnu-emacs/2013-03/msg00245.html.
+
2013-03-15 Michael Albinus <michael.albinus@gmx.de>
Sync with Tramp 2.2.7.
diff --git a/lisp/startup.el b/lisp/startup.el
index ad31a7a2a45..db84a5b11b2 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -2399,13 +2399,17 @@ A fancy display is used on graphic displays, normal otherwise."
;; Use arg 1 so that we don't collapse // at the start of the file name.
;; That is significant on some systems.
;; However, /// at the beginning is supposed to mean just /, not //.
- (if (string-match "^///+" file)
+ (if (string-match
+ (if (memq system-type '(ms-dos windows-nt))
+ "^\\([\\/][\\/][\\/]\\)+"
+ "^///+")
+ file)
(setq file (replace-match "/" t t file)))
- (and (memq system-type '(ms-dos windows-nt))
- (string-match "^[A-Za-z]:\\(\\\\[\\\\/]\\)" file) ; C:\/ or C:\\
- (setq file (replace-match "/" t t file 1)))
- (while (string-match "//+" file 1)
- (setq file (replace-match "/" t t file)))
+ (if (memq system-type '(ms-dos windows-nt))
+ (while (string-match "\\([\\/][\\/]\\)+" file 1)
+ (setq file (replace-match "/" t t file)))
+ (while (string-match "//+" file 1)
+ (setq file (replace-match "/" t t file))))
file))
;;; startup.el ends here