Fix file name completion in Tramp
* lisp/net/tramp.el (tramp-handle-file-name-directory): Fix case of localname starts w/o a slash. * test/lisp/net/tramp-tests.el (tramp-test06-directory-file-name): Extend test.
This commit is contained in:
parent
5444cb5f68
commit
9fe9f21515
2 changed files with 11 additions and 7 deletions
|
|
@ -3153,15 +3153,11 @@ User is always nil."
|
|||
|
||||
(defun tramp-handle-file-name-directory (file)
|
||||
"Like `file-name-directory' but aware of Tramp files."
|
||||
;; Everything except the last filename thing is the directory. We
|
||||
;; cannot apply `with-parsed-tramp-file-name', because this expands
|
||||
;; the remote file name parts. This is a problem when we are in
|
||||
;; file name completion.
|
||||
(let ((v (tramp-dissect-file-name file t)))
|
||||
(with-parsed-tramp-file-name file nil
|
||||
(setf (tramp-file-name-localname v) nil)
|
||||
;; Run the command on the localname portion only.
|
||||
(tramp-make-tramp-file-name
|
||||
v (tramp-run-real-handler
|
||||
'file-name-directory (list (or (tramp-file-name-localname v) ""))))))
|
||||
v (tramp-run-real-handler'file-name-directory (list localname)))))
|
||||
|
||||
(defun tramp-handle-file-name-nondirectory (file)
|
||||
"Like `file-name-nondirectory' but aware of Tramp files."
|
||||
|
|
|
|||
|
|
@ -1938,6 +1938,14 @@ This checks also `file-name-as-directory', `file-name-directory',
|
|||
(string-equal
|
||||
(file-name-directory "/method:host:/path/to/file/")
|
||||
"/method:host:/path/to/file/"))
|
||||
(should
|
||||
(string-equal (file-name-directory "/method:host:file") "/method:host:"))
|
||||
(should
|
||||
(string-equal
|
||||
(file-name-directory "/method:host:path/") "/method:host:path/"))
|
||||
(should
|
||||
(string-equal
|
||||
(file-name-directory "/method:host:path/to") "/method:host:path/"))
|
||||
(should
|
||||
(string-equal (file-name-nondirectory "/method:host:/path/to/file") "file"))
|
||||
(should
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue