Subject: Re: bug#76888: 31.0.50; start-process: Spawning child process: Invalid argument

From: Richard Copley <[email-masked]>
Date: Wed, 26 Mar 2025 10:09:45 +0000

Thanks Michael.

On Tue, 25 Mar 2025 at 12:56, Michael Albinus <[email-masked]> wrote:
>
> Richard Copley <[email-masked]> writes:
>
> > It's easy to move the call to 'start-process-shell-command' outside
> > the 'with-current-buffer' form. I have patched my local emacs repo to
> > do that. It works just fine for me. Whether that is the right thing to
> > do I leave to your judgement. I refrain from attaching the patch since
> > I do not intend to complete a copyright assignment.
>
> Thank you for the analysis. However, I don't believe that your change is
> correct. `buffer' is the working (output) buffer of
> start-process-shell-command, so we shall call it here.

Yes, but 'start-process-shell-command' takes care of switching to 'buffer'.

> Instead, I've tried the appended patch. Could you, please, check? It
> fixes the problem for me.

It doesn't work for me. With your patch, on my system, the original
recipe still exhibits the problem on the third invocation of
'async-shell-command'.

At the time when '(connection-local-value shell-file-name)' is invoked
in your patch, the current buffer is the output buffer (not the buffer
from which the user invoked 'async-shell-command'), and the default
directory is "/plink:xxx/" (not "c:/"), and the value returned is
"/bin/sh" (not the file name of "cmdproxy.exe").