From 19677c71262113e3993b545259aeb2fc3c397fb7 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Wed, 27 Oct 2010 21:30:01 -0400 Subject: [PATCH] * lisp/iswitchb.el (iswitchb-kill-buffer): Avoid `iswitchb-make-buflist' which changes the order of matches seen by users. Fixes: debbugs:7231 --- lisp/ChangeLog | 7 ++++++- lisp/iswitchb.el | 13 ++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9150d39848f..758d75bb688 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,4 +1,9 @@ -2010-10-28 Jes Bodi Klinke +2010-10-28 Leo + + * iswitchb.el (iswitchb-kill-buffer): Avoid `iswitchb-make-buflist' + which changes the order of matches seen by users (bug#7231). + +2010-10-28 Jes Bodi Klinke (tiny change) * progmodes/compile.el (compilation-mode-font-lock-keywords): Don't confuse -omega as "-o mega". diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index 808a23577d1..48f0edb49e0 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el @@ -1033,7 +1033,9 @@ Return the modified list with the last element prepended to it." (setq buf (car iswitchb-matches)) ;; check to see if buf is non-nil. (if buf - (progn + (let ((bufobjs (mapcar (lambda (name) + (or (get-buffer name) name)) + iswitchb-buflist))) (kill-buffer buf) ;; Check if buffer exists. XEmacs gnuserv.el makes alias @@ -1044,8 +1046,13 @@ Return the modified list with the last element prepended to it." (setq iswitchb-rescan t) ;; Else `kill-buffer' succeeds so re-make the buffer list ;; taking into account packages like uniquify may rename - ;; buffers - (iswitchb-make-buflist iswitchb-default)))))) + ;; buffers, and try to preserve the ordering of buffers. + (setq iswitchb-buflist + (delq nil (mapcar (lambda (b) + (if (bufferp b) + (buffer-name b) + b)) + bufobjs)))))))) ;;; VISIT CHOSEN BUFFER (defun iswitchb-visit-buffer (buffer) -- 2.39.5