Function: ido-set-current-directory
ido-set-current-directory is a byte-compiled function defined in
ido.el.gz.
Signature
(ido-set-current-directory DIR &optional SUBDIR NO-MERGE)
Source Code
;; Defined in /usr/src/emacs/lisp/ido.el.gz
(defun ido-set-current-directory (dir &optional subdir no-merge)
;; Set ido's current directory to DIR or DIR/SUBDIR
(unless (and ido-enable-tramp-completion
(string-match "\\`/[^/]*@\\'" dir))
(setq dir (ido-final-slash dir t)))
(setq ido-use-merged-list nil
ido-try-merged-list (not no-merge))
(when subdir
(setq dir (concat dir subdir))
(unless (and ido-enable-tramp-completion
(string-match "\\`/[^/]*@\\'" dir))
(setq dir (ido-final-slash dir t))))
(and ido-completion-buffer
(get-buffer ido-completion-buffer)
(kill-buffer ido-completion-buffer))
(cond
((equal dir ido-current-directory)
nil)
((ido-is-unc-root dir)
(ido-trace "unc" dir)
(setq ido-current-directory dir)
(setq ido-directory-nonreadable nil)
(setq ido-directory-too-big nil)
t)
(t
(ido-trace "cd" dir)
(setq ido-current-directory dir)
(and ido-completion-buffer
(get-buffer ido-completion-buffer)
(kill-buffer ido-completion-buffer))
(setq ido-directory-nonreadable (ido-nonreadable-directory-p dir))
(setq ido-directory-too-big (and (not ido-directory-nonreadable)
(ido-directory-too-big-p dir)))
t)))