Function: ido-get-work-directory

ido-get-work-directory is a byte-compiled function defined in ido.el.gz.

Signature

(ido-get-work-directory &optional INCR MUST-MATCH)

Source Code

;; Defined in /usr/src/emacs/lisp/ido.el.gz
(defun ido-get-work-directory (&optional incr must-match)
  (let ((n (length ido-work-directory-list))
	(i ido-work-directory-index)
	(j 0)
	dir)
    (if (or (not ido-text) (= (length ido-text) 0))
	(setq must-match nil))
    (while (< j n)
      (setq i (+ i incr)
	    j (1+ j))
      (if (> incr 0)
	  (if (>= i n) (setq i 0))
	(if (< i 0) (setq i (1- n))))
      (setq dir (nth i ido-work-directory-list))
      (if (and dir
	       (not (equal dir ido-current-directory))
	       (file-directory-p dir)
	       (or (not must-match)
		   ;; TODO. check for nonreadable and too-big.
		   (ido-set-matches-1
		    (if (eq ido-cur-item 'file)
			(ido-make-file-list-1 dir)
		      (ido-make-dir-list-1 dir)))))
	  (setq j n)
	(setq dir nil)))
    (if dir
	(setq ido-work-directory-index i))
    dir))