Mercurial > emacs
changeset 111211:450eb2e9d20d
* lisp/iswitchb.el (iswitchb-kill-buffer): Avoid `iswitchb-make-buflist'
which changes the order of matches seen by users.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Wed, 27 Oct 2010 21:30:01 -0400 |
parents | 4c19a062df30 |
children | 4c0e52d5ae12 |
files | lisp/ChangeLog lisp/iswitchb.el |
diffstat | 2 files changed, 16 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Oct 27 21:10:22 2010 -0400 +++ b/lisp/ChangeLog Wed Oct 27 21:30:01 2010 -0400 @@ -1,4 +1,9 @@ -2010-10-28 Jes Bodi Klinke <jes@bodi-klinke.dk> +2010-10-28 Leo <sdl.web@gmail.com> + + * 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 <jes@bodi-klinke.dk> (tiny change) * progmodes/compile.el (compilation-mode-font-lock-keywords): Don't confuse -omega as "-o mega".
--- a/lisp/iswitchb.el Wed Oct 27 21:10:22 2010 -0400 +++ b/lisp/iswitchb.el Wed Oct 27 21:30:01 2010 -0400 @@ -1033,7 +1033,9 @@ (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 @@ (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)