diff lisp/iswitchb.el @ 109945:c5974968dea9

Fix buffer-list rename&refresh after after killing a buffer in ido. * lisp/ido.el: Revert scar's. (ido-kill-buffer-at-head): Exit the minibuffer with ido-exit=refresh. Remember the buffers at head, rather than their name. * lisp/iswitchb.el (iswitchb-kill-buffer): Re-make the list.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Sat, 21 Aug 2010 15:35:27 +0200
parents df3df0622e73
children 515d80e174ba 376148b31b5e
line wrap: on
line diff
--- a/lisp/iswitchb.el	Sat Aug 21 11:19:38 2010 +0200
+++ b/lisp/iswitchb.el	Sat Aug 21 15:35:27 2010 +0200
@@ -1027,8 +1027,8 @@
 (defun iswitchb-kill-buffer ()
   "Kill the buffer at the head of `iswitchb-matches'."
   (interactive)
-  (let ( (enable-recursive-minibuffers t)
-	 buf)
+  (let ((enable-recursive-minibuffers t)
+        buf)
 
     (setq buf (car iswitchb-matches))
     ;; check to see if buf is non-nil.
@@ -1042,8 +1042,10 @@
 	  (if (get-buffer buf)
 	      ;; buffer couldn't be killed.
 	      (setq iswitchb-rescan t)
-	    ;; else buffer was killed so remove name from list.
-	    (setq iswitchb-buflist  (delq buf iswitchb-buflist)))))))
+	    ;; Else `kill-buffer' succeeds so re-make the buffer list
+	    ;; taking into account packages like uniquify may rename
+	    ;; buffers
+	    (iswitchb-make-buflist iswitchb-default))))))
 
 ;;; VISIT CHOSEN BUFFER
 (defun iswitchb-visit-buffer (buffer)