diff lisp/ido.el @ 112206:cf323f3bfe7f

* ido.el (ido-may-cache-directory): Move "too-big" check later. (ido-next-match, ido-prev-match): Fix stray reordering of matching items when cycling through the matches.
author Kim F. Storm <storm@cua.dk>
date Thu, 13 Jan 2011 17:26:40 +0100
parents 7e4ae0dd59c9
children 417b1e4d63cd
line wrap: on
line diff
--- a/lisp/ido.el	Thu Jan 13 16:44:41 2011 +0100
+++ b/lisp/ido.el	Thu Jan 13 17:26:40 2011 +0100
@@ -1289,8 +1289,6 @@
 (defun ido-may-cache-directory (&optional dir)
   (setq dir (or dir ido-current-directory))
   (cond
-   ((ido-directory-too-big-p dir)
-    nil)
    ((and (ido-is-root-directory dir)
 	 (or ido-enable-tramp-completion
 	     (memq system-type '(windows-nt ms-dos))))
@@ -1299,6 +1297,8 @@
     (ido-cache-unc-valid))
    ((ido-is-ftp-directory dir)
     (ido-cache-ftp-valid))
+   ((ido-directory-too-big-p dir)
+    nil)
    (t t)))
 
 (defun ido-pp (list &optional sep)
@@ -3072,8 +3072,8 @@
   (if ido-matches
       (let ((next (cadr ido-matches)))
 	(setq ido-cur-list (ido-chop ido-cur-list next))
-	(setq ido-rescan t)
-	(setq ido-rotate t))))
+	(setq ido-matches (ido-chop ido-matches next))
+	(setq ido-rescan nil))))
 
 (defun ido-prev-match ()
   "Put last element of `ido-matches' at the front of the list."
@@ -3081,8 +3081,8 @@
   (if ido-matches
       (let ((prev (car (last ido-matches))))
 	(setq ido-cur-list (ido-chop ido-cur-list prev))
-	(setq ido-rescan t)
-	(setq ido-rotate t))))
+	(setq ido-matches (ido-chop ido-matches prev))
+	(setq ido-rescan nil))))
 
 (defun ido-next-match-dir ()
   "Find next directory in match list.