Subject: bug#4219: 23.1; case insensitive + partial completions

From: Chong Yidong <[email-masked]>
Date: Fri, 11 Sep 2009 21:23:20 -0400

> Start with a default Emacs, and
>
>   (setq read-file-name-completion-ignore-case t)
>   (setq completion-styles '(partial-completion))
>
> Now go to a directory that has two files called
>
>   INSTALL
>   install-sh
>
> Hit `C-x C-f ins TAB' -- it will be completed to "insTALL".

Stefan, could you take a look at this?  I glanced through your partial
completion code, and it's clear where the problem arises.  In
completion-pcm--merge-try,

  (completion-pcm--merge-completions all pattern)

returns

  (all "TALL" "ins")

and so completion-pcm--pattern->string naively joins the result into
"insTALL".  However, I don't know how to fix this.  The default
completion style actually does the right thing, because it can just
replace the string wholesale, but I'm not sure if the pcm style can do
the same thing.