Fix multihop file name expansion in Tramp

* lisp/net/tramp.el (tramp-dissect-file-name): Set hop to nil if
NODEFAULT.  (Bug#63578)
This commit is contained in:
Michael Albinus 2023-05-22 12:20:27 +02:00
parent dd3e4e14fd
commit d6fb868cdd

View file

@ -1681,8 +1681,9 @@ The structure consists of method, user, domain, host, port,
localname (file name on remote host), and hop. localname (file name on remote host), and hop.
Unless NODEFAULT is non-nil, method, user and host are expanded Unless NODEFAULT is non-nil, method, user and host are expanded
to their default values. For the other file name parts, no to their default values. Hop is set to nil if NODEFAULT is non-nil.
default values are used."
For the other file name parts, no default values are used."
(save-match-data (save-match-data
(unless (tramp-tramp-file-p name) (unless (tramp-tramp-file-p name)
(tramp-user-error nil "Not a Tramp file name: \"%s\"" name)) (tramp-user-error nil "Not a Tramp file name: \"%s\"" name))
@ -1708,7 +1709,8 @@ default values are used."
(when (string-match tramp-postfix-ipv6-regexp host) (when (string-match tramp-postfix-ipv6-regexp host)
(setq host (replace-match "" nil t host)))) (setq host (replace-match "" nil t host))))
(unless nodefault (if nodefault
(setq hop nil)
(when hop (when hop
(setq v (tramp-dissect-hop-name hop) (setq v (tramp-dissect-hop-name hop)
hop (and hop (tramp-make-tramp-hop-name v)))) hop (and hop (tramp-make-tramp-hop-name v))))