emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master dba1be0: Improve Tramp's file-name-completion


From: Michael Albinus
Subject: master dba1be0: Improve Tramp's file-name-completion
Date: Tue, 17 Dec 2019 04:38:49 -0500 (EST)

branch: master
commit dba1be0a9b3e92717f7921335f8507c007df8ca6
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    Improve Tramp's file-name-completion
    
    * lisp/net/tramp.el (tramp-handle-file-name-completion):
    Filter out "./" and "../", if there's only one other result.
---
 lisp/net/tramp.el | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 8988e57..4b44d7a 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3259,10 +3259,16 @@ User is always nil."
 (defun tramp-handle-file-name-completion
   (filename directory &optional predicate)
   "Like `file-name-completion' for Tramp files."
-  (let (hits-ignored-extensions)
+  (let (hits-ignored-extensions fnac)
+    (setq fnac (file-name-all-completions filename directory))
+    ;; "." and ".." are never interesting as completions, and are
+    ;; actually in the way in a directory with only one file.  See
+    ;; file_name_completion() in dired.c.
+    (when (and (consp fnac) (= (length (delete "./" (delete "../" fnac))) 1))
+      (setq fnac (delete "./" (delete "../" fnac))))
     (or
      (try-completion
-      filename (file-name-all-completions filename directory)
+      filename fnac
       (lambda (x)
        (when (funcall (or predicate #'identity) (expand-file-name x directory))
          (not



reply via email to

[Prev in Thread] Current Thread [Next in Thread]