Subject: bug#1757: 23.0.60; completion DWIM too clever

From: "Drew Adams" <[email-masked]>
Date: Thu, 1 Jan 2009 09:59:45 -0800

> I typed C-x b *d TAB and it offered me as completions `diary' 
> and `old', neither of which starts with a `*'.
> 
> I typed C-x b *di TAB and it completed to `diary', which is not
> even a completion of what I typed.
> 
> It is extremely annoying to discard the user's input characters.

I couldn't agree more. The is (the formerly optional) partial completion at
work. It is now the default behavior to first try the traditional completion,
and if that finds no matches, automatically try partial completion. IMO, the
default behavior should remain as it was in Emacs 22 (21, 20...), and the new
behavior should be optional.

With the traditional behavior, if there are no buffers with prefix `*', you are
told so immediately: [No match]. With the new, partial-completion behavior, you
are given possible completions that do not complete `*' in the normal way (as a
literal prefix).

To get the traditional behavior, you now need to customize option
`completion-styles', to be `(basic)', not `(basic partial-completion)'. This
significant change was made with no discussion, AFAIK.

See bug #1512:
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=1512