Function: ido-make-merged-file-list-1
ido-make-merged-file-list-1 is a byte-compiled function defined in
ido.el.gz.
Signature
(ido-make-merged-file-list-1 TEXT AUTO WIDE)
Source Code
;; Defined in /usr/src/emacs/lisp/ido.el.gz
(defun ido-make-merged-file-list-1 (text auto wide)
(let (res)
(if (and (ido-final-slash text) ido-dir-file-cache)
(if wide
(setq res (ido-wide-find-dirs-or-files
ido-current-directory (substring text 0 -1) ido-enable-prefix t))
;; Use list of cached directories
(let ((re (concat (regexp-quote (substring text 0 -1)) "[^/:]*/\\'"))
(dirs ido-dir-file-cache)
dir b d f)
(if nil ;; simple
(while dirs
(setq dir (car (car dirs))
dirs (cdr dirs))
(when (and (string-match re dir)
(not (ido-ignore-item-p dir ido-ignore-directories-merge))
(file-directory-p dir))
(setq b (substring dir 0 -1)
f (concat (file-name-nondirectory b) "/")
d (file-name-directory b)
res (cons (cons f d) res))))
(while dirs
(setq dir (car dirs)
d (car dir)
dirs (cdr dirs))
(when (not (ido-ignore-item-p d ido-ignore-directories-merge))
(setq dir (cdr (cdr dir)))
(while dir
(setq f (car dir)
dir (cdr dir))
(if (and (string-match re f)
(not (ido-ignore-item-p f ido-ignore-directories)))
(setq res (cons (cons f d) res)))))
(if (and auto (input-pending-p))
(setq dirs nil
res t))))))
(if wide
(setq res (ido-wide-find-dirs-or-files
ido-current-directory text ido-enable-prefix nil))
(let ((ido-text text)
(dirs ido-work-directory-list)
(must-match (and text (> (length text) 0)))
dir fl)
(if (and auto (not (member ido-current-directory dirs)))
(setq dirs (cons ido-current-directory dirs)))
(while dirs
(setq dir (car dirs)
dirs (cdr dirs))
(when (and dir (stringp dir)
(or ido-merge-ftp-work-directories
(not (ido-is-ftp-directory dir)))
(file-directory-p dir)
;; TODO. check for nonreadable and too-big.
(setq fl (if (eq ido-cur-item 'file)
(ido-make-file-list-1 dir t)
(ido-make-dir-list-1 dir t))))
(if must-match
(setq fl (ido-set-matches-1 fl)))
(if fl
(setq res (nconc fl res))))
(if (and auto (input-pending-p))
(setq dirs nil
res t))))))
res))