]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/iswitchb.el (iswitchb-kill-buffer): Avoid `iswitchb-make-buflist'
authorLeo Liu <sdl.web@gmail.com>
Thu, 28 Oct 2010 01:30:01 +0000 (21:30 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 28 Oct 2010 01:30:01 +0000 (21:30 -0400)
which changes the order of matches seen by users.

Fixes: debbugs:7231
lisp/ChangeLog
lisp/iswitchb.el

index 9150d39848fc3f57a58d093a5ca7f8e175c075bf..758d75bb688c11ca3b89fb8f5714abaf30cd8908 100644 (file)
@@ -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".
index 808a23577d10fccab85407dcdbba798be1bf7cf9..48f0edb49e0a9f4ea2d51ba1affb9b9d968674d7 100644 (file)
@@ -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)