Fix bug #4674 with UNCs in file-relative-name.
files.el (file-relative-name): Handle UNC file names on DOS/Windows. Also fixes bug#4673.
This commit is contained in:
parent
4f1948eb4c
commit
2472c214a6
2 changed files with 25 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2010-12-04 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* files.el (file-relative-name): Handle UNC file names on
|
||||
DOS/Windows. (Bug#4674)
|
||||
|
||||
2010-12-02 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ps-print.el (ps-line-lengths-internal, ps-nb-pages):
|
||||
|
|
|
@ -4054,11 +4054,29 @@ on a DOS/Windows machine, it returns FILENAME in expanded form."
|
|||
(dremote (file-remote-p directory)))
|
||||
(if ;; Conditions for separate trees
|
||||
(or
|
||||
;; Test for different drives on DOS/Windows
|
||||
;; Test for different filesystems on DOS/Windows
|
||||
(and
|
||||
;; Should `cygwin' really be included here? --stef
|
||||
(memq system-type '(ms-dos cygwin windows-nt))
|
||||
(not (eq t (compare-strings filename 0 2 directory 0 2))))
|
||||
(or
|
||||
;; Test for different drive letters
|
||||
(not (eq t (compare-strings filename 0 2 directory 0 2)))
|
||||
;; Test for UNCs on different servers
|
||||
(not (eq t (compare-strings
|
||||
(progn
|
||||
(if (string-match "\\`//\\([^:/]+\\)/" filename)
|
||||
(match-string 1 filename)
|
||||
;; Windows file names cannot have ? in
|
||||
;; them, so use that to detect when
|
||||
;; neither FILENAME nor DIRECTORY is a
|
||||
;; UNC.
|
||||
"?"))
|
||||
0 nil
|
||||
(progn
|
||||
(if (string-match "\\`//\\([^:/]+\\)/" directory)
|
||||
(match-string 1 directory)
|
||||
"?"))
|
||||
0 nil t)))))
|
||||
;; Test for different remote file system identification
|
||||
(not (equal fremote dremote)))
|
||||
filename
|
||||
|
|
Loading…
Add table
Reference in a new issue