GNU bug report logs - #31355
26.1; [PATCH] Fix remote-host/tramp directory tracking for shells in `term' buffers

Previous Next

Package: emacs;

Reported by: Phil Sainty <psainty <at> orcon.net.nz>

Date: Thu, 3 May 2018 13:53:01 UTC

Severity: normal

Tags: patch

Found in version 26.1

Done: Phil Sainty <psainty <at> orcon.net.nz>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 31355 in the body.
You can then email your comments to 31355 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Thu, 03 May 2018 13:53:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Phil Sainty <psainty <at> orcon.net.nz>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 03 May 2018 13:53:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.1; [PATCH] Fix remote-host/tramp directory tracking for shells
 in `term' buffers
Date: Fri, 04 May 2018 01:52:09 +1200
[Message part 1 (text/plain, inline)]
With tramp methods now being mandatory, the term.el directory tracking
was generating invalid tramp paths on remote hosts.

I've rolled a patch for this (along with some very minor improvements
to the related commentary) in which I'm hard-coding the "ssh" method.
I'm not sure whether that's the ideal fix, but I suspect it's likely
to do the trick for most people, whereas the current code won't work
at all.


-Phil




In GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll 
bars)
 of 2018-04-15 built on shodan
Windowing system distributor 'The X.Org Foundation', version 
11.0.11804000
System Description:	Ubuntu 16.04.4 LTS

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
uncompressing term.el.gz...done
C-c i is undefined
Quit [3 times]
Making completion list... [3 times]
Quit [4 times]
GNU Emacs 26.1 (build 1, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll 
bars) of 2018-04-15

Configured using:
 'configure --prefix=/home/phil/emacs/26.1rc1/usr/local
 --with-x-toolkit=lucid --without-sound'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK DBUS GSETTINGS NOTIFY
GNUTLS LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 THREADS
LCMS2

Important settings:
  value of $LANG: en_NZ.UTF-8
  locale-coding-system: utf-8

Major mode: Dired by name

Minor modes in effect:
  show-paren-mode: t
  minibuffer-depth-indicate-mode: t
  winner-mode: t
  global-hl-line-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr imenu misearch multi-isearch jka-compr thingatpt
find-func emacsbug message rmc puny seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib format-spec rfc822 mml mml-sec
password-cache epa derived epg epg-config gnus-util rmail rmail-loaddefs
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils dired-x easymenu paren mb-depth winner ring hl-line dired
dired-loaddefs advice elec-pair time-date mule-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors 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 composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray 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 lcms2 dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 108228 20488)
 (symbols 48 20930 1)
 (miscs 40 423 129)
 (strings 32 31412 1231)
 (string-bytes 1 820395)
 (vectors 16 15792)
 (vector-slots 8 508466 10704)
 (floats 8 60 351)
 (intervals 56 1335 16)
 (buffers 992 17)
 (heap 1024 17853 1684))
[0001-Fix-remote-host-directory-tracking-for-shells-in-ter.patch (text/x-diff, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Thu, 03 May 2018 14:01:02 GMT) Full text and rfc822 format available.

Message #8 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: 31355 <at> debbugs.gnu.org
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>
Subject: Re: bug#31355: 26.1; [PATCH] Fix remote-host/tramp directory
 tracking for shells in `term' buffers
Date: Fri, 04 May 2018 02:00:11 +1200
Or if I'm reading the NEWS correctly:

> *** The new pseudo method "-" is a marker for the default method.
> "/-::" is the shortest remote file name then.

I should actually have made the following change?

-                     (concat "/" term-ansi-at-host ":" 
term-ansi-at-dir)
-                   (concat "/" term-ansi-at-user "@" term-ansi-at-host 
":"
+                     (concat "/-:" term-ansi-at-host ":" 
term-ansi-at-dir)
+                   (concat "/-:" term-ansi-at-user "@" 
term-ansi-at-host ":"






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Thu, 03 May 2018 14:06:01 GMT) Full text and rfc822 format available.

Message #11 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Phil Sainty <psainty <at> orcon.net.nz>
Cc: 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1;
 [PATCH] Fix remote-host/tramp directory tracking for shells in `term'
 buffers
Date: Thu, 03 May 2018 16:04:58 +0200
Phil Sainty <psainty <at> orcon.net.nz> writes:

Hi Phil,

> With tramp methods now being mandatory, the term.el directory tracking
> was generating invalid tramp paths on remote hosts.
>
> I've rolled a patch for this (along with some very minor improvements
> to the related commentary) in which I'm hard-coding the "ssh" method.
> I'm not sure whether that's the ideal fix, but I suspect it's likely
> to do the trick for most people, whereas the current code won't work
> at all.

Thanks for this. I haven't tested, just a short comment:

> @@ -2753,8 +2756,8 @@ term-handle-ansi-terminal-messages
>  					(string= term-ansi-at-user (user-real-login-name)))
>  		   (expand-file-name term-ansi-at-dir)
>  		 (if (string= term-ansi-at-user (user-real-login-name))
> -		     (concat "/" term-ansi-at-host ":" term-ansi-at-dir)
> -		   (concat "/" term-ansi-at-user "@" term-ansi-at-host ":"
> +                     (concat "/ssh:" term-ansi-at-host ":" term-ansi-at-dir)
> +                   (concat "/ssh:" term-ansi-at-user "@" term-ansi-at-host ":"

I believe it is always save to use term-ansi-at-user. There's no need to
check, whether it is equal to (user-real-login-name).

Furthermore, I wouldn't hard-code "ssh". People might have other
preferences, and on some systems it doesn't work. Think about Emacs
running on MS WIndows, where "plink" is used instead of "ssh". Just take
"-" as method, this is a notation to apply user's default (Tramp) method.

> -Phil

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Thu, 03 May 2018 14:48:01 GMT) Full text and rfc822 format available.

Message #14 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1; [PATCH] Fix remote-host/tramp directory
 tracking for shells in `term' buffers
Date: Fri, 04 May 2018 02:47:40 +1200
[Message part 1 (text/plain, inline)]
On 2018-05-04 02:04, Michael Albinus wrote:
> Furthermore, I wouldn't hard-code "ssh". People might have other
> preferences, and on some systems it doesn't work. Think about Emacs
> running on MS WIndows, where "plink" is used instead of "ssh". Just 
> take
> "-" as method, this is a notation to apply user's default (Tramp) 
> method.

Revised patch attached to use the "-" pseudo method.


> I believe it is always save to use term-ansi-at-user. There's no need
> to check, whether it is equal to (user-real-login-name).

I've not changed this.  The code is evidentially deciding whether the
user/host pair being tracked in the shell in the term buffer is a match
for the user/host pair known locally to Emacs.  Unless both of those
components match, a tramp path is created.  I've not tested the case
of a different user on the local host, but it seems like reasonable
logic to me, at first look.

(if (and (string= term-ansi-at-host (system-name))
         (string= term-ansi-at-user (user-real-login-name)))
    ;; Use a local path
  ;; Use a tramp path

[0001-Fix-remote-host-directory-tracking-for-shells-in-ter.patch (text/x-diff, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Thu, 03 May 2018 15:00:02 GMT) Full text and rfc822 format available.

Message #17 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Phil Sainty <psainty <at> orcon.net.nz>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1;
 [PATCH] Fix remote-host/tramp directory tracking for shells in `term'
 buffers
Date: Thu, 03 May 2018 16:59:02 +0200
Phil Sainty <psainty <at> orcon.net.nz> writes:

Hi Phil,

>> I believe it is always save to use term-ansi-at-user. There's no need
>> to check, whether it is equal to (user-real-login-name).
>
> I've not changed this.  The code is evidentially deciding whether the
> user/host pair being tracked in the shell in the term buffer is a match
> for the user/host pair known locally to Emacs.  Unless both of those
> components match, a tramp path is created.  I've not tested the case
> of a different user on the local host, but it seems like reasonable
> logic to me, at first look.

Of course.

> (if (and (string= term-ansi-at-host (system-name))
>          (string= term-ansi-at-user (user-real-login-name)))
>     ;; Use a local path

OK.

>   ;; Use a tramp path

And here I believe you could always apply

(format "/-:%s@%s:%s" term-ansi-at-user term-ansi-at-host term-ansi-at-dir)

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Thu, 03 May 2018 21:02:02 GMT) Full text and rfc822 format available.

Message #20 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1; [PATCH] Fix remote-host/tramp directory
 tracking for shells in `term' buffers
Date: Fri, 04 May 2018 09:01:38 +1200
On 2018-05-04 02:59, Michael Albinus wrote:
> And here I believe you could always apply
> 
> (format "/-:%s@%s:%s" term-ansi-at-user term-ansi-at-host 
> term-ansi-at-dir)

Right, although I believe the intent is simply to produce the least-
verbose path by excluding the username if possible (as indeed the user
would very likely be doing if entering the tramp path manually); so
I'd be inclined to leave that part alone as well.






Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Fri, 04 May 2018 07:28:02 GMT) Full text and rfc822 format available.

Message #23 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Phil Sainty <psainty <at> orcon.net.nz>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1;
 [PATCH] Fix remote-host/tramp directory tracking for shells in `term'
 buffers
Date: Fri, 04 May 2018 09:27:26 +0200
Phil Sainty <psainty <at> orcon.net.nz> writes:

Hi Phil,

>> And here I believe you could always apply
>>
>> (format "/-:%s@%s:%s" term-ansi-at-user term-ansi-at-host
>> term-ansi-at-dir)
>
> Right, although I believe the intent is simply to produce the least-
> verbose path by excluding the username if possible (as indeed the user
> would very likely be doing if entering the tramp path manually); so
> I'd be inclined to leave that part alone as well.

I don't understand the benefit of the "least-verbose path". The user
hasn't to type anything, so there's no profit to have a shorter file name.

And you cannot expect, that for all Tramp methods the default user is
equal to `user-login-name'. This happened to ange-ftp, but it isn't the
case in Tramp. See variables `tramp-default-user' and
`tramp-default-user-alist'.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Tue, 08 May 2018 12:53:02 GMT) Full text and rfc822 format available.

Message #26 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1; [PATCH] Fix remote-host/tramp directory
 tracking for shells in `term' buffers
Date: Wed, 09 May 2018 00:52:12 +1200
[Message part 1 (text/plain, inline)]
On 2018-05-04 19:27, Michael Albinus wrote:
> And you cannot expect, that for all Tramp methods the default user is
> equal to `user-login-name'. This happened to ange-ftp, but it isn't the
> case in Tramp. See variables `tramp-default-user' and
> `tramp-default-user-alist'.

You're right, the explicit username is more robust.

Attaching a new patch with that fix included.


-Phil
[0001-Fix-remote-host-directory-tracking-for-shells-in-ter.patch (text/x-diff, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Tue, 08 May 2018 17:44:01 GMT) Full text and rfc822 format available.

Message #29 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Phil Sainty <psainty <at> orcon.net.nz>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1;
 [PATCH] Fix remote-host/tramp directory tracking for shells in `term'
 buffers
Date: Tue, 08 May 2018 19:43:07 +0200
Phil Sainty <psainty <at> orcon.net.nz> writes:

Hi Phil,

> Attaching a new patch with that fix included.

LGTM, could go into the emacs-26 branch after release of 26.1. Do you
have git push permissions, or shall I do it for you?

> -Phil

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#31355; Package emacs. (Tue, 08 May 2018 20:28:01 GMT) Full text and rfc822 format available.

Message #32 received at 31355 <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355 <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1; [PATCH] Fix remote-host/tramp directory
 tracking for shells in `term' buffers
Date: Wed, 09 May 2018 08:27:42 +1200
On 2018-05-09 05:43, Michael Albinus wrote:
> LGTM, could go into the emacs-26 branch after release of 26.1.
> Do you have git push permissions, or shall I do it for you?

I do.  For the moment I've pushed it to origin/fix/bug-31355.

cheers,
-Phil





Reply sent to Phil Sainty <psainty <at> orcon.net.nz>:
You have taken responsibility. (Sun, 03 Jun 2018 23:41:01 GMT) Full text and rfc822 format available.

Notification sent to Phil Sainty <psainty <at> orcon.net.nz>:
bug acknowledged by developer. (Sun, 03 Jun 2018 23:41:01 GMT) Full text and rfc822 format available.

Message #37 received at 31355-done <at> debbugs.gnu.org (full text, mbox):

From: Phil Sainty <psainty <at> orcon.net.nz>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: bug-gnu-emacs <bug-gnu-emacs-bounces+psainty=orcon.net.nz <at> gnu.org>,
 31355-done <at> debbugs.gnu.org
Subject: Re: bug#31355: 26.1; [PATCH] Fix remote-host/tramp directory
 tracking for shells in `term' buffers
Date: Mon, 04 Jun 2018 11:40:17 +1200
On 2018-05-09 05:43, Michael Albinus wrote:
> LGTM, could go into the emacs-26 branch after release of 26.1.

Pushed to emacs-26 in commit 03697e648c.

-Phil





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 02 Jul 2018 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 67 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.