Subject: bug#36742: closed (Re: bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 23 Jul 2019 07:09:03 +0000

Your bug report

#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring

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

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

Subject: Re: bug#36742: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring
From: Michael Albinus <[email-masked]>
To: Fan_Yang <[email-masked]>
Cc: [email-masked]
Date: Tue, 23 Jul 2019 09:08:30 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 27.1

Fan_Yang <[email-masked]> writes:

> Hi Michael!

Hi Fan,

> I have cloned the git repo and tested your commit.  It works well in
> my environment!

Thanks for the feedback, I'm closing the bug.

> Fan

Best regards, Michael.

Subject: 25.2; shell-mode over TRAMP does not read remote history file as comint input ring
From: Fan Yang <[email-masked]>
To: [email-masked]
Date: Sat, 20 Jul 2019 22:30:42 +0800 (CST)
List-Id: <debbugs-submit.debbugs.gnu.org>

* Bug description:

When using "M-x shell" on a remote file (say "/scp:yf@val17:"), a bash
is started at the server "val17" as the user "yf".  But the "*shell*"
buffer is started with an empty input ring.  It does not read bash
history file ("/scp:yf@val17:~/.bash_history") into comint input ring.

* What is expected:

When using "M-x shell" on a remote file (say "/scp:yf@val17:"), a bash
is started at the server "val17" as the user "yf".  The "*shell*"
1. has the content of "/scp:yf@val17:~/.bash_history" as comint input
   ring.  And I can use "M-p" to insert previous command, use "M-r" to
   isearch previous comamnd, etc.
2. the commands I have input in this "*shell*" will be appended to
   "/scp:yf@val17:~/.bash_history" after shell exit.
Just like what "shell-mode" does for local shell.

* To re-produce:

Here is the content of the dribble file of my re-producing this issue
(control characters are replaced with caret)

--8<---------------cut here---------------start------------->8---
^X^F/scp:yf@val17:
^[xshell

^[p^[p^[p^X^Cyes
--8<---------------cut here---------------end--------------->8---

* My findings, if I may:

The code of shell-mode shows

--8<---------------cut here---------------start------------->8---
      (setq comint-input-ring-file-name
	    (or (getenv "HISTFILE")
		(cond ((string-equal shell "bash") "~/.bash_history")
		      ((string-equal shell "ksh") "~/.sh_history")
		      (t "~/.history"))))
--8<---------------cut here---------------end--------------->8---

It seems remote file path is not considered.

* How big this issue is?

Have a shell history is convenient and saves a lot of typing repeated or
similar commands.  Me and many of my colleagues use shell history
isearch heavily.  It works very well for local shells.  It is a little
bit disappointing that it does not work on remote shells.

Best Regards,
Fan

In GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.21)
 of 2017-09-23, modified by Debian built on lgw01-amd64-050
System Description:	Ubuntu 18.04.2 LTS

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --build x86_64-linux-gnu
 --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-x=yes --with-x-toolkit=gtk3
 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs25-jYekUr/emacs25-25.2+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LC_MONETARY: en_US.UTF-8
  value of $LC_NUMERIC: en_US.UTF-8
  value of $LC_TIME: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message dired format-spec rfc822 mml
mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail
rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu
cl-loaddefs pcase cl-lib mail-prsvr mail-utils term/xterm xterm
time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 90407 5144)
 (symbols 48 19870 0)
 (miscs 40 41 96)
 (strings 32 14595 4563)
 (string-bytes 1 413565)
 (vectors 16 9720)
 (vector-slots 8 385876 17362)
 (floats 8 166 540)
 (intervals 56 245 0)
 (buffers 976 18))