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

From: Shuguang Sun <[email-masked]>
Date: Thu, 25 Jan 2018 20:01:59 +0800

Thanks Micahel,

Now it works!

On Sun, Jan 14, 2018 at 1:37 AM, Michael Albinus <[email-masked]>
wrote:

> 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?
>
If we well set the shell via connection-local-set-profile-variables which
measn there is explicit-shell-file-name, it will not prompt the directory.

For example as in the manual:
  (connection-local-set-profile-variables
   'remote-bash
   '((explicit-shell-file-name . "/bin/bash")
     (explicit-bash-args . ("-i"))
     ))

> > 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.
>