diff options
| author | Eli Zaretskii <eliz@gnu.org> | 2013-03-16 10:20:36 +0200 |
|---|---|---|
| committer | Eli Zaretskii <eliz@gnu.org> | 2013-03-16 10:20:36 +0200 |
| commit | 98e775e640b18104c1c83cf29d00f34605bde35d (patch) | |
| tree | 5ce88550a3ffddfd1dce1716b91829a58b81791d /lisp | |
| parent | cded56c19b30e038537398b5213438c339428ed9 (diff) | |
| download | emacs-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/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/startup.el | 16 |
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 |
