GNU bug report logs - #7231
23.3; Don't rebuild buffer list in iswitchb-visit-buffer

Previous Next

Package: emacs;

Reported by: Leo <sdl.web <at> gmail.com>

Date: Sun, 17 Oct 2010 17:57:02 UTC

Severity: normal

Found in version 23.3

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Leo <sdl.web <at> gmail.com>
Cc: Óscar Fuentes <ofv <at> wanadoo.es>, 7231 <at> debbugs.gnu.org
Subject: bug#7231: 23.3; Don't rebuild buffer list in iswitchb-visit-buffer
Date: Mon, 18 Oct 2010 10:54:40 -0400
> -	    ;; 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
> +	    (setq iswitchb-buflist
> +		  (delq nil (mapcar (lambda (b)
> +				      (if (bufferp b)
> +					  (buffer-name b)
> +					b))
> +				    bufobjs))))))))
 
I was about to install that change when I realized that this is
fundamentally not the right approach: since some of the buffers may have
changed name, the new list of matching buffers may be different (some
buffers that didn't match before may match now and vice-versa).

So iswitchb-make-buflist is more correct.  To deal with the problem of
ordering, we'll need to combine the two: call iswitchb-make-buflist to
get the new list of matches, and then use bufobjs to sort the new
iswitchb-buflist.

Something like

	    (iswitchb-make-buflist iswitchb-default))))))
	    ;; Try to preserve the previous sort order.
	    (setq iswitchb-buflist
		  (sort iswitchb-buflist
                        (lambda (bn1 bn2)
                          (< (length (or (memq (get-buffer bn1) bufobjs)
                                         ;; Place new buffers at the end.
                                         bufobjs))
                             (length (or (memq (get-buffer bn2) bufobjs)
                                         bufobjs))))))



        Stefan




This bug report was last modified 14 years and 214 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.