Function: ido-read-directory-name

ido-read-directory-name is an autoloaded and byte-compiled function defined in ido.el.gz.

Signature

(ido-read-directory-name PROMPT &optional DIR DEFAULT-DIRNAME MUSTMATCH INITIAL)

Documentation

Ido replacement for the built-in read-directory-name.

Read directory name, prompting with PROMPT and completing in directory DIR. See read-directory-name for additional parameters.

Source Code

;; Defined in /usr/src/emacs/lisp/ido.el.gz
;;;###autoload
(defun ido-read-directory-name (prompt &optional dir default-dirname mustmatch initial)
  "Ido replacement for the built-in `read-directory-name'.
Read directory name, prompting with PROMPT and completing in directory DIR.
See `read-directory-name' for additional parameters."
  (let* (filename
	 (minibuffer-completing-file-name t)
	 (ido-context-switch-command 'ignore)
	 ido-saved-vc-hb
	 (ido-current-directory (ido-expand-directory dir))
	 (ido-directory-nonreadable (not (file-readable-p ido-current-directory)))
	 (ido-directory-too-big (and (not ido-directory-nonreadable)
				     (ido-directory-too-big-p ido-current-directory)))
	 (ido-work-directory-index -1)
	 (ido-work-file-index -1))
    (setq filename (ido-read-internal
		    'dir prompt 'ido-file-history
		    (or default-dirname	; Bug#11861.
			(if initial
			    (expand-file-name initial ido-current-directory)
			  ido-current-directory))
		    mustmatch initial))
    (cond
     ((eq ido-exit 'fallback)
      (let ((read-file-name-function nil))
	(run-hook-with-args 'ido-before-fallback-functions 'read-directory-name)
	(read-directory-name prompt ido-current-directory
			     default-dirname mustmatch initial)))
     ((equal filename ".") ido-current-directory)
     (t (concat ido-current-directory filename)))))