Subject: Re: bug#65039: 30.0.50; [PATCH] Add bookmark handler for M-x shell

From: Visuwesh <[email-masked]>
Date: Fri, 04 Aug 2023 20:05:03 +0530

[வெள்ளி ஆகஸ்ட் 04, 2023] Protesilaos Stavrou wrote:

>>> The code is adapted from Eshell, which has the capability you describe.
>>> I do not have the means to test an SSH connection.  Though I tried the
>>> 'sudo' TRAMP method and the bookmarking correctly logs me in as root
>>> when I do 'bookmark-jump'.  This works even if I kill the shell buffer
>>> and all TRAMP buffers.
>>
>> I see that `shell' sets the value of `explicit-shell-file-name' to the
>> filename of the remote shell chosen but unfortunately this gets set to
>> nil once `make-comint-in-buffer' function is called since `comint-mode'
>> kills all local variables.  :-(
>>
>> I don't know how reliable of a solution
>>
>>     (executable-find shell--start-prog)
>>
>> is to get the absolute filename of the shell being used.
>
> Thank you!  This seems reasonable.  Have you checked the variable
> 'shell-file-name'?

Unfortunately, it is not always reliable.  I use mksh as my (local)
shell but I use bash in the remote system.  In these remote shells, I
don't see the correct value being set:

    (list major-mode (file-remote-p default-directory) shell-file-name shell--start-prog)
        ⇒ (shell-mode "/ssh:REDACTED@REDACTED:" "/bin/mksh" "bash")

`shell' also has this comment before the prompt for remote shell
filename:

    ;; On remote hosts, the local `shell-file-name' might be useless.

HTH.