Don't attempt to connect to a remote server during 'abbreviate-file-name'
* lisp/net/tramp.el (tramp-handle-abbreviate-file-name): Only use the "home-directory" when a connection has been established.
This commit is contained in:
parent
8a2f73f12a
commit
a4dd94de80
1 changed files with 14 additions and 6 deletions
|
@ -3343,16 +3343,24 @@ User is always nil."
|
|||
(let* ((case-fold-search (file-name-case-insensitive-p filename))
|
||||
(vec (tramp-dissect-file-name filename))
|
||||
(home-dir
|
||||
(with-tramp-connection-property vec "home-directory"
|
||||
(tramp-compat-funcall
|
||||
'directory-abbrev-apply
|
||||
(expand-file-name (tramp-make-tramp-file-name vec "~"))))))
|
||||
(if (let ((non-essential t)) (tramp-connectable-p vec))
|
||||
;; If a connection has already been established, make
|
||||
;; sure the "home-directory" connection property is
|
||||
;; properly set.
|
||||
(with-tramp-connection-property vec "home-directory"
|
||||
(tramp-compat-funcall
|
||||
'directory-abbrev-apply
|
||||
(expand-file-name (tramp-make-tramp-file-name vec "~"))))
|
||||
;; Otherwise, just use the cached value.
|
||||
(tramp-get-connection-property vec "home-directory" nil))))
|
||||
;; If any elt of `directory-abbrev-alist' matches this name,
|
||||
;; abbreviate accordingly.
|
||||
(setq filename (tramp-compat-funcall 'directory-abbrev-apply filename))
|
||||
;; Abbreviate home directory.
|
||||
(if (string-match
|
||||
(tramp-compat-funcall 'directory-abbrev-make-regexp home-dir) filename)
|
||||
(if (and home-dir
|
||||
(string-match
|
||||
(tramp-compat-funcall 'directory-abbrev-make-regexp home-dir)
|
||||
filename))
|
||||
(tramp-make-tramp-file-name
|
||||
vec (concat "~" (substring filename (match-beginning 1))))
|
||||
(tramp-make-tramp-file-name (tramp-dissect-file-name filename)))))
|
||||
|
|
Loading…
Add table
Reference in a new issue