Fix bug in tramp-handle-file-truename
* lisp/net/tramp.el (tramp-handle-file-truename): Expand localname. * test/lisp/net/tramp-tests.el (tramp-test21-file-links): Check also relative symbolic links.
This commit is contained in:
parent
4c21d04057
commit
c355529bae
2 changed files with 12 additions and 2 deletions
|
@ -3207,7 +3207,8 @@ User is always nil."
|
||||||
(if (file-remote-p symlink-target)
|
(if (file-remote-p symlink-target)
|
||||||
(let (file-name-handler-alist)
|
(let (file-name-handler-alist)
|
||||||
(tramp-compat-file-name-quote symlink-target))
|
(tramp-compat-file-name-quote symlink-target))
|
||||||
symlink-target)
|
(expand-file-name
|
||||||
|
symlink-target (file-name-directory v2-localname)))
|
||||||
v2-localname)))))
|
v2-localname)))))
|
||||||
(when (>= numchase numchase-limit)
|
(when (>= numchase numchase-limit)
|
||||||
(tramp-error
|
(tramp-error
|
||||||
|
|
|
@ -2671,7 +2671,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
||||||
(should-error
|
(should-error
|
||||||
(make-symbolic-link tmp-name1 tmp-name2)
|
(make-symbolic-link tmp-name1 tmp-name2)
|
||||||
:type 'file-already-exists)
|
:type 'file-already-exists)
|
||||||
;; number means interactive case.
|
;; A number means interactive case.
|
||||||
(cl-letf (((symbol-function 'yes-or-no-p) 'ignore))
|
(cl-letf (((symbol-function 'yes-or-no-p) 'ignore))
|
||||||
(should-error
|
(should-error
|
||||||
(make-symbolic-link tmp-name1 tmp-name2 0)
|
(make-symbolic-link tmp-name1 tmp-name2 0)
|
||||||
|
@ -2783,6 +2783,15 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
|
||||||
(should
|
(should
|
||||||
(string-equal (file-truename tmp-name1) (file-truename tmp-name2)))
|
(string-equal (file-truename tmp-name1) (file-truename tmp-name2)))
|
||||||
(should (file-equal-p tmp-name1 tmp-name2))
|
(should (file-equal-p tmp-name1 tmp-name2))
|
||||||
|
;; Check relative symlink file name.
|
||||||
|
(delete-file tmp-name2)
|
||||||
|
(let ((default-directory tramp-test-temporary-file-directory))
|
||||||
|
(make-symbolic-link (file-name-nondirectory tmp-name1) tmp-name2))
|
||||||
|
(should (file-symlink-p tmp-name2))
|
||||||
|
(should-not (string-equal tmp-name2 (file-truename tmp-name2)))
|
||||||
|
(should
|
||||||
|
(string-equal (file-truename tmp-name1) (file-truename tmp-name2)))
|
||||||
|
(should (file-equal-p tmp-name1 tmp-name2))
|
||||||
;; Symbolic links could look like a remote file name.
|
;; Symbolic links could look like a remote file name.
|
||||||
;; They must be quoted then.
|
;; They must be quoted then.
|
||||||
(delete-file tmp-name2)
|
(delete-file tmp-name2)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue