Subject: bug#7231: closed (Re: bug#7231: 23.3; Don't rebuild buffer list in iswitchb-visit-buffer)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 28 Oct 2010 01:29:02 +0000

Your bug report

#7231: 23.3; Don't rebuild buffer list in iswitchb-visit-buffer

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
7231: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=7231
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#7231: 23.3; Don't rebuild buffer list in iswitchb-visit-buffer
From: Stefan Monnier <[email-masked]>
To: Leo <[email-masked]>
Cc: Óscar Fuentes <[email-masked]>
Date: Wed, 27 Oct 2010 21:31:01 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

> Sorry for being too lazy. Please try the following patch.

Thanks, installed in the trunk.

        Stefan

Subject: 23.3; Don't rebuild buffer list in iswitchb-visit-buffer
From: Leo <[email-masked]>
To: [email-masked]
Date: Mon, 18 Oct 2010 01:59:52 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

The original change was to address buffer name changes due to packages
such as uniquify.el. But it causes another annoying bug: changing the
order of matches seen by users.

This reverts it.

If people are annoyed (which I doubt) by outdated buffer names due to
uniquify.el, one solution is to map the buffer-names to buffer objects
before killing and map them back to names after killing.

>From 7e6597c54a7764688855c3ab2efa6cfa1cffbea6 Mon Sep 17 00:00:00 2001
Date: Mon, 18 Oct 2010 01:44:24 +0800
Subject: [PATCH] Don't rebuild buffer list in iswitchb-visit-buffer

Rebuilding buffer list will lose the order of matches seen by users
and thus cause surprises.
---
 lisp/iswitchb.el |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el
index 081897a..b7baa03 100644
--- a/lisp/iswitchb.el
+++ b/lisp/iswitchb.el
@@ -1042,10 +1042,8 @@ Return the modified list with the last element prepended to it."
 	  (if (get-buffer buf)
 	      ;; buffer couldn't be killed.
 	      (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))))))
+	    ;; else buffer was killed so remove name from list.
+	    (setq iswitchb-buflist  (delq buf iswitchb-buflist)))))))
 
 ;;; VISIT CHOSEN BUFFER
 (defun iswitchb-visit-buffer (buffer)
-- 
1.7.3