changeset 105174:13f171fbff05

(minibuffer-force-complete): Cycle the list, rather than just dropping elements from it (bug#4504).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 24 Sep 2009 02:37:37 +0000
parents 500233eb2d72
children 721db724bb12
files lisp/ChangeLog lisp/minibuffer.el
diffstat 2 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Sep 24 02:15:11 2009 +0000
+++ b/lisp/ChangeLog	Thu Sep 24 02:37:37 2009 +0000
@@ -1,5 +1,8 @@
 2009-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* minibuffer.el (minibuffer-force-complete): Cycle the list, rather
+	than just dropping elements from it (bug#4504).
+
 	* term.el (term-set-scroll-region): Don't move cursor any more.
 	(term-handle-ansi-escape): Call term-goto here instead.
 	Suggested by Ivan Kanis <apple@kanis.eu>.
--- a/lisp/minibuffer.el	Thu Sep 24 02:15:11 2009 +0000
+++ b/lisp/minibuffer.el	Thu Sep 24 02:37:37 2009 +0000
@@ -546,7 +546,9 @@
       ;; completion-all-sorted-completions to nil, but we prefer not to,
       ;; so that repeated calls minibuffer-force-complete still cycle
       ;; through the previous possible completions.
-      (setq completion-all-sorted-completions (cdr all)))))
+      (let ((last (last all)))
+        (setcdr last (cons (car all) (cdr last)))
+        (setq completion-all-sorted-completions (cdr all))))))
 
 (defvar minibuffer-confirm-exit-commands
   '(minibuffer-complete minibuffer-complete-word PC-complete PC-complete-word)