Subject: bug#9591: 24.0.50; buffer name completion

From: Stefan Monnier <[email-masked]>
Date: Thu, 29 Sep 2011 18:02:25 -0400

>> I think it is a bug to complete to a buffer name that starts with a
>> space, when the user did not type an initial space in the buffer name.
>> These buffers are not supposed to be visible unless the user
>> specifically asks to see them.

Having looked a bit more into it, I'm undecided:
we could go like you suggest and force users to type a leading space,
but at least for my own use this would be inconvenient, since I pretty
often need to get at hidden buffers, and often don't know the exact name
of the buffer I want (and I don't even always know whether it's a hidden
buffer or not, since Elisp authors aren't always very consistent about
it).  So I find it very handy to just say "C-x b *foo TAB" (or indeed
just "C-x b foo TAB" in Emacs-24) and see all buffers that contain
"foo", regardless of whether they're hidden or not.
So it seems that both behaviors are desirable and I'm not sure how to
tell which to use when.

> Another fix might be for C-x k to use confirm-nonexistent-file-or-buffer
> so that after you type TAB, Emacs prompts with [Confirm] when you try to
> exit the minibuffer immediately.  `C-x b' already does this.

We could indeed do something like that when trying to kill a hidden
buffer (for C-x k it can't be a nonexistent buffer, of course).

> Maybe it would be good to enable this for "b" interactive codes.

confirm-nonexistent-file-or-buffer already found resistance when
I introduced it, so I expect people will complain if we generalize it to
all "b" interactive specs, tho admittedly, I haven't thought about it
very much.

        Stefan