Subject: bug#9378: 23.3; iswitchb-make-buflist returns a nonexistent buffer

From: "Paul Du Bois" <[email-masked]>
Date: Wed, 7 Sep 2011 14:51:37 -0700

> "Paul Du Bois" wrote:
> > emacs -Q
> > (require 'iswitchb)
> > (setq read-buffer-function 'iswitchb-read-buffer)
> > (add-hook 'minibuffer-setup-hook 'iswitchb-minibuffer-setup)
> > find several files
> > C-x b C-k C-k
> >
> > After the first C-k, the buffer is deleted, but remains at the
> > head of the iswitchb list.  The second C-k produces an error
> > "No buffer named <the buffer that was just killed>"

Glen Morris wrote:
> I'm not sure this matters, because if you change the recipe to start:
> 
> emacs -Q -f iswitchb-mode \
>   --eval "(setq read-buffer-function 'iswitchb-read-buffer)"
> 
> ie, use iswitchb-mode rather than just adding to
minibuffer-setup-hook,
> there is no such error. The difference seems to be that C-x b runs
> iswitch-buffer in that case rather than switch-buffer.

Ah.  iswitchb-mode must have been added after I set up iswitchb
(which I've been using for many years)  I was most likely following
this advice which is still in the file header comment block as of emacs
23:

;; Replacement for read-buffer

;; iswitchb-read-buffer has been written to be a drop in replacement
;; for the normal buffer selection routine `read-buffer'.  To use
;; iswitch for all buffer selections in Emacs, add:
;; (setq read-buffer-function 'iswitchb-read-buffer)

I'll switch over, but from some experimentation, it seems like using
read-buffer-function no longer
works properly (for example, without the minibuffer-setup-hook,
iswitchb-read-buffer
is even less functional than the default).  Perhaps that comment should
be removed?