# HG changeset patch # User Michael Albinus # Date 1166594261 0 # Node ID ca4412906dbd57facf6ac8e2198dc04f8846f0a0 # Parent 3cedab34a4b6d4d097a6731deefaff467846a5c9 * net/ange-ftp.el (ange-ftp-file-name-completion): Handle optional parameter PREDICATE. * lisp/tramp.el (tramp-handle-file-name-completion) (tramp-completion-handle-file-name-completion): Handle optional parameter PREDICATE. (tramp-find-default-method): Add code for default values. diff -r 3cedab34a4b6 -r ca4412906dbd lisp/ChangeLog --- a/lisp/ChangeLog Wed Dec 20 05:16:36 2006 +0000 +++ b/lisp/ChangeLog Wed Dec 20 05:57:41 2006 +0000 @@ -1,3 +1,13 @@ +2006-12-20 Michael Albinus + + * net/ange-ftp.el (ange-ftp-file-name-completion): Handle optional + parameter PREDICATE. + + * lisp/tramp.el (tramp-handle-file-name-completion) + (tramp-completion-handle-file-name-completion): Handle optional + parameter PREDICATE. + (tramp-find-default-method): Add code for default values. + 2006-12-20 Nick Roberts * progmodes/gdb-ui.el (gdb-stopped): After attaching to a process diff -r 3cedab34a4b6 -r ca4412906dbd lisp/net/ange-ftp.el --- a/lisp/net/ange-ftp.el Wed Dec 20 05:16:36 2006 +0000 +++ b/lisp/net/ange-ftp.el Wed Dec 20 05:57:41 2006 +0000 @@ -3977,7 +3977,7 @@ ange-ftp-this-dir)) (ange-ftp-real-file-name-all-completions file ange-ftp-this-dir))))) -(defun ange-ftp-file-name-completion (file dir) +(defun ange-ftp-file-name-completion (file dir &optional predicate) (let ((ange-ftp-this-dir (expand-file-name dir))) (if (ange-ftp-ftp-name ange-ftp-this-dir) (progn @@ -4005,8 +4005,13 @@ file (nconc (ange-ftp-generate-root-prefixes) (ange-ftp-real-file-name-all-completions - file ange-ftp-this-dir))) - (ange-ftp-real-file-name-completion file ange-ftp-this-dir))))) + file ange-ftp-this-dir)) + predicate) + (if predicate + (ange-ftp-real-file-name-completion + file ange-ftp-this-dir predicate) + (ange-ftp-real-file-name-completion + file ange-ftp-this-dir)))))) (defun ange-ftp-file-name-completion-1 (file tbl dir &optional predicate) diff -r 3cedab34a4b6 -r ca4412906dbd lisp/net/tramp.el --- a/lisp/net/tramp.el Wed Dec 20 05:16:36 2006 +0000 +++ b/lisp/net/tramp.el Wed Dec 20 05:57:41 2006 +0000 @@ -2856,7 +2856,8 @@ ;; The following isn't needed for Emacs 20 but for 19.34? -(defun tramp-handle-file-name-completion (filename directory) +(defun tramp-handle-file-name-completion + (filename directory &optional predicate) "Like `file-name-completion' for tramp files." (unless (tramp-tramp-file-p directory) (error @@ -2866,7 +2867,8 @@ (try-completion filename (mapcar (lambda (x) (cons x nil)) - (file-name-all-completions filename directory))))) + (file-name-all-completions filename directory)) + predicate))) ;; cp, mv and ln @@ -4627,10 +4629,13 @@ ;; Method, host name and user name completion for a file. ;;;###autoload -(defun tramp-completion-handle-file-name-completion (filename directory) +(defun tramp-completion-handle-file-name-completion + (filename directory &optional predicate) "Like `file-name-completion' for tramp files." - (try-completion filename - (mapcar 'list (file-name-all-completions filename directory)))) + (try-completion + filename + (mapcar 'list (file-name-all-completions filename directory)) + predicate)) ;; I misuse a little bit the tramp-file-name structure in order to handle ;; completion possibilities for partial methods / user names / host names. @@ -6965,8 +6970,8 @@ item) (while choices (setq item (pop choices)) - (when (and (string-match (nth 0 item) (or host "")) - (string-match (nth 1 item) (or user ""))) + (when (and (string-match (or (nth 0 item) "") (or host "")) + (string-match (or (nth 1 item) "") (or user ""))) (setq method (nth 2 item)) (setq choices nil))) method))