Subject: Re: bug#59803: completion-at-point in shell buffer ignores some files

From: Eli Zaretskii <[email-masked]>
Date: Sun, 04 Dec 2022 11:58:43 +0200

> From: Nicolas Graner <[email-masked]>
> Date: Sat, 03 Dec 2022 12:01:16 +0100
> 
> In a *Shell* buffer, file name completion ignores file names already
> present on the current line. For example, if you have a file named `foo'
> and no other file starting with an f, when you type:
> 
> $ cp f<TAB> f<TAB>
> 
> the first <TAB> completes `f' to `foo', but the second <TAB> gives a `No
> match' error.
> 
> Similarly, if you have files named foo1, foo2, foo3 and foo4, then:
> 
> $ mv foo1 foo2 f<TAB>
> 
> shows only foo3 and foo4 in the completions buffer.
> 
> Happens in emacs 29 but not in 28.

This seems to be due to some changes in pcomplete.el since Emacs 28, because
if you remove pcomplete-completions-at-point from the value of
shell-dynamic-complete-functions, the problem goes away.

Stefan, can you help here?  It sounds like the culprit is some of the
changes in commit 0a36671f41 and/or 88b025f815, but I'm not sure.

Thanks.