Function: ange-ftp-file-name-completion

ange-ftp-file-name-completion is a byte-compiled function defined in ange-ftp.el.gz.

Signature

(ange-ftp-file-name-completion FILE DIR &optional PREDICATE)

Source Code

;; Defined in /usr/src/emacs/lisp/net/ange-ftp.el.gz
(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
	  (ange-ftp-barf-if-not-directory ange-ftp-this-dir)
	  (if (equal file "")
	      ""
	    (setq ange-ftp-this-dir
		  (ange-ftp-real-file-name-as-directory ange-ftp-this-dir))	;real?
	    (let* ((tbl (ange-ftp-get-files ange-ftp-this-dir))
		   (ange-ftp-completion-ignored-pattern
		    (mapconcat (lambda (s) (if (stringp s)
                                          (concat (regexp-quote s) "$")
                                        "/")) ; / never in filename
			       completion-ignored-extensions
			       "\\|")))
	      (save-match-data
		(or (ange-ftp-file-name-completion-1
		     file tbl ange-ftp-this-dir
		     'ange-ftp-file-entry-not-ignored-p)
		    (ange-ftp-file-name-completion-1
		     file tbl ange-ftp-this-dir))))))

      (if (ange-ftp-root-dir-p ange-ftp-this-dir)
	  (try-completion
	   file
	   (nconc (ange-ftp-generate-root-prefixes)
		  (ange-ftp-real-file-name-all-completions
		   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))))))