Subject: bug#29442: closed (Re: bug#29149: Tramp shell uses local shell setting in windows)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 25 Jan 2018 12:31:02 +0000

Your bug report

#29149: dired-do-shell-command puts "start /b" in tramp dired

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
29149: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=29149
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#29149: Tramp shell uses local shell setting in windows
From: Michael Albinus <[email-masked]>
To: Shuguang Sun <[email-masked]>
Cc: Eli Zaretskii <[email-masked]>, [email-masked]
Date: Thu, 25 Jan 2018 13:30:34 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Shuguang Sun <[email-masked]> writes:

> Thanks Micahel,

Hi Shuguang,

> Now it works!

Thanks for testing. So I mark this bug as closed.

>     > 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"))
>      ))

Hmm. I still don't understand why you want to change
default-directory. Or do you want to say it doesn't matter, when
explicit-shell-file-name is set?

And even in case there is no explicit-shell-file-name set,
read-file-name shall work as expected with the existing default-directory.

Best regards, Michael.

Subject: dired-do-shell-command puts "start /b" in tramp dired
From: Shuguang Sun <[email-masked]>
To: [email-masked]
Date: Sun, 26 Nov 2017 02:09:37 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

local: Windows7, and shell comman is cmdproxy.exe/cmd
GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32) of 2017-11-24

In general dired buffer, if I call dired-do-shell-command on marked file
with end "&", it will call "start /b ..." to run asyn shell command.
However, it hould not happend for tramp dired buffer if the
tramp-remote-shell is not cmd.

For example, my server is linux and tramp-remote-shell is "/bin/sh". If I
run dired-do-shell-command with end "&", it suppose to send the command
directly, but it add "start /b" actually.

I attached the tramp debug for your reference.

Tramp setting:
  (push '("plink"
           (tramp-login-program        "plink")
           (tramp-login-args           (("-l" "%u") ("-P" "%p") ("-ssh")
("%h")))
           (tramp-remote-shell         "/bin/sh")
           (tramp-remote-shell-args    ("-c"))
           (tramp-copy-program         "pscp")
           (tramp-copy-args            (("-l" "%u") ("-P" "%p") ("-scp")
("-p" "%k") ("-q") ("-r")))
           (tramp-copy-keep-date t)
           (tramp-copy-recursive t)
           (tramp-default-port         22))
        tramp-methods)

Best Regards,
Shuguang Sun