From: Jim Porter Date: Mon, 14 Feb 2022 21:16:05 +0000 (-0800) Subject: Don't attempt to connect to a remote server during 'abbreviate-file-name' X-Git-Tag: emacs-29.0.90~2298 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a4dd94de8018e75fc5c000cff5f57b4a53f05042;p=emacs.git 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. --- diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 32712efb3ea..3c06ad1630a 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -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)))))