changeset 74766:ca4412906dbd

* 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.
author Michael Albinus <michael.albinus@gmx.de>
date Wed, 20 Dec 2006 05:57:41 +0000
parents 3cedab34a4b6
children 89d09601ddf8
files lisp/ChangeLog lisp/net/ange-ftp.el lisp/net/tramp.el
diffstat 3 files changed, 30 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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  <michael.albinus@gmx.de>
+
+	* 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  <nickrob@snap.net.nz>
 
 	* progmodes/gdb-ui.el (gdb-stopped): After attaching to a process
--- 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)
--- 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))