diff options
Diffstat (limited to 'lisp/net')
-rw-r--r-- | lisp/net/tramp-sh.el | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 991a2102634..06c1c2da830 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -4610,7 +4610,8 @@ Goes through the list `tramp-inline-compress-commands'." (defun tramp-compute-multi-hops (vec) "Expands VEC according to `tramp-default-proxies-alist'." - (let ((target-alist `(,vec)) + (let ((saved-tdpa tramp-default-proxies-alist) + (target-alist `(,vec)) (hops (or (tramp-file-name-hop vec) "")) (item vec) choices proxy) @@ -4676,9 +4677,9 @@ Goes through the list `tramp-inline-compress-commands'." (while (setq item (pop choices)) (when (or (not (tramp-get-method-parameter item 'tramp-login-program)) (tramp-get-method-parameter item 'tramp-copy-program)) - (tramp-error - vec 'file-error - "Method `%s' is not supported for multi-hops." + (setq tramp-default-proxies-alist saved-tdpa) + (tramp-user-error + vec "Method `%s' is not supported for multi-hops." (tramp-file-name-method item))))) ;; Some methods ("su", "sg", "sudo", "doas", "ksu") do not use the @@ -4696,8 +4697,9 @@ Goes through the list `tramp-inline-compress-commands'." '("%h") (tramp-get-method-parameter item 'tramp-login-args)) ;; The host name must match previous hop. (string-match-p previous-host host)) + (setq tramp-default-proxies-alist saved-tdpa) (tramp-user-error - item "Host name `%s' does not match `%s'" host previous-host)) + vec "Host name `%s' does not match `%s'" host previous-host)) (setq previous-host (concat "^" (regexp-quote host) "$"))))) ;; Result. |