diff options
author | Phil Sainty <psainty@orcon.net.nz> | 2018-05-04 01:29:42 +1200 |
---|---|---|
committer | Phil Sainty <psainty@orcon.net.nz> | 2018-05-09 08:10:15 +1200 |
commit | 2f44323b707723e007d0a8d17c80623bb74bbafe (patch) | |
tree | 09e4646da0c77d4febcb6f90c17ddaea15fbca59 | |
parent | 1d9e66aea17787e03954f32c6cd7561c881bb444 (diff) | |
download | emacs-fix/bug-31355.tar.gz |
Fix remote-host directory tracking for shells in `term' buffersfix/bug-31355
* lisp/term.el (term-handle-ansi-terminal-messages): Use an explicit
tramp method when constructing the tramp path for a non-local host,
as this is now mandatory. "-" is a pseudo-method for the user's
`tramp-default-method'.
Specify the remote username explicitly in all cases, as
`tramp-default-user' and `tramp-default-user-alist' could cause the
previous logic to fail.
Minor related improvements to the commentary.
(Bug#31355)
-rw-r--r-- | lisp/term.el | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/lisp/term.el b/lisp/term.el index 75c27797838..419ddb2db5c 100644 --- a/lisp/term.el +++ b/lisp/term.el @@ -233,31 +233,33 @@ ;; ;; Notice: for directory/host/user tracking you need to have something ;; like this in your shell startup script (this is for a POSIXish shell -;; like Bash but should be quite easy to port to other shells) +;; like Bash but should be quite easy to port to other shells). +;; +;; For troubleshooting in Bash, you can check the definition of the +;; custom functions with the "type" command. e.g. "type cd". If you +;; do not see the expected definition from the config below, then the +;; directory tracking will not work. ;; ;; ---------------------------------------- ;; -;; # Set HOSTNAME if not already set. +;; # Set HOSTNAME if not already set. ;; : ${HOSTNAME=$(uname -n)} ;; -;; # su does not change this but I'd like it to -;; +;; # su does not change this but I'd like it to ;; USER=$(whoami) ;; -;; # ... +;; # ... ;; ;; case $TERM in ;; eterm*) ;; ;; printf '%s\n' \ ;; -------------------------------------------------------------- \ -;; "Hello $user" \ +;; "Hello $USER" \ ;; "Today is $(date)" \ ;; "We are on $HOSTNAME running $(uname) under Emacs term mode" \ ;; -------------------------------------------------------------- ;; -;; export EDITOR=emacsclient -;; ;; # The \033 stands for ESC. ;; # There is a space between "AnSiT?" and $whatever. ;; @@ -269,10 +271,11 @@ ;; printf '\033AnSiTh %s\n' "$HOSTNAME" ;; printf '\033AnSiTu %s\n' "$USER" ;; -;; eval $(dircolors $HOME/.emacs_dircolors) +;; # Use custom dircolors in term buffers. +;; # eval $(dircolors $HOME/.emacs_dircolors) ;; esac ;; -;; # ... +;; # ... ;; ;; @@ -2750,12 +2753,10 @@ See `term-prompt-regexp'." (setq default-directory (file-name-as-directory (if (and (string= term-ansi-at-host (system-name)) - (string= term-ansi-at-user (user-real-login-name))) + (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 ":" - term-ansi-at-dir))))) + (concat "/-:" term-ansi-at-user "@" term-ansi-at-host ":" + term-ansi-at-dir)))) ;; I'm not sure this is necessary, ;; but it's best to be on the safe side. |