Subject: bug#9598: 24.0.50; completion goes too far

From: Stefan Monnier <[email-masked]>
Date: Mon, 10 Oct 2011 22:52:50 -0400

>        It's somewhat difficult to distinguish the "all-completions for display"
>        case from the "all-completions for completion" in the existing
>        completion framework.
>        But I'll see how we can get that behavior.
> I thought the distinction is between `try-completions' and
> `all-completions'.  What am I missing?

Completion styles other than plain prefix completion
(e.g. partial-completion, substring completion, ...) can't just use
try-completion, so they use all-completions and then merge the resulting
entries to construct the result of completion.

So `all-completions' is sometimes used to build a *Completions* buffer,
but it's also used internally in various cases to perform completion.

So removing the current buffer from completion means it needs to be
removed from `all-completions's output, whereas displaying it in
*Completions* means it should be included in `all-completions's output.

This said, I can't think of any reason why it's important to show the
current buffer in *Completions* for C-x b since C-x b is about switching
to another buffer.

        Stefan