Subject: bug#29149: Tramp shell uses local shell setting in windows

From: Michael Albinus <[email-masked]>
Date: Sat, 13 Jan 2018 18:37:25 +0100

Shuguang Sun <[email-masked]> writes:

> Hi Michael,

Hi Shuguang,

> Here I focus on the connection from Windows local to linux remote

Finally, I was able to test on a Windows machine.

> 1.1 expand-file-name will add c:/ to the shell-file name because the
> local is windows

Yes. However, your patch (commenting expand-file-name) does not look
proper. I've committed another patch, changing the order
expand-file-name and file-local-name are called. This fixes this.

> 1.2 the default directory for read-file-name is better to use
> (file-remote-p default-directory) "/" than default-directory
> "/path/path/..."

I don't see why. Could you pls explain?

> 2. 6.5.3 Running ‘shell-command’ on a remote host or other section
> can't solve "start /b" issue. It is introduced by
> dired-do-shell-command (in dired-aux.el). It checks w32-shell for
> local environment and then add "start /b" to the command. However if
> it is in a tramp dir (e.g. linux server), the command with "start /b"
> will be transpose to remote handler. The linux shell can't understand
> it.

Yes. Your patch is OK, so I've applied it.

Everything committed to the master branch. Could you, pls, check?

Since both patches are simple, they could also be backported to the
emacs-26 branch. Eli, could you pls advice me whether I shall do?

Best regards, Michael.