Subject: Re: bug#59956: 29.0.60: Failure when completing arguments in Eshell after variable interpolation

From: Augusto Stoffel <[email-masked]>
Date: Mon, 12 Dec 2022 23:37:24 +0100

On Mon, 12 Dec 2022 at 22:21, Gregory Heytings wrote:

>>> Starting from "emacs -Q -f -eshell", type "echo $exec-path " (note
>>> the trailing space), and then hit TAB. The result is this error:
>>>
>>>    pcomplete-match: Wrong type argument: stringp, ("/usr/bin" ...)
>>>
>>> This is a regression from Emacs 28, and it looks like it's due to
>>> 'pcomplete-here-using-help' assuming that all the pcomplete args
>>> are strings. However, 'exec-path' is a list (and Eshell reports it
>>> this way to pcomplete), so the completion fails. I think all that's
>>> necessary is checking that the pcomplete args are strings in
>>> 'pcomplete-here-using-help', but I know next to nothing about
>>> pcomplete...
>>
>> Adding Stefan, who should know more about pcomplete.
>>
>> Stefan, any suggestions?
>>
>
> I'm still not Stefan, but this bug is fixed by the attached patch.

This is not a fix to the problem, in my opinion.  Just take any other
command with a pcomplete rule, say "cvs $exec-path SPC TAB" and you will
see the same problem.