mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-11 16:08:13 +00:00
* net/tramp-sh.el (tramp-get-remote-path): Use a login shell in
order to determine `tramp-own-remote-path'.
This commit is contained in:
parent
c2db939359
commit
935ee05f07
@ -1,3 +1,8 @@
|
||||
2014-12-10 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp-sh.el (tramp-get-remote-path): Use a login shell in
|
||||
order to determine `tramp-own-remote-path'.
|
||||
|
||||
2014-12-09 Fabián Ezequiel Gallina <fgallina@gnu.org>
|
||||
|
||||
* progmodes/python.el (python-shell-parse-command): Quote
|
||||
|
@ -3847,6 +3847,18 @@ file exists and nonzero exit status otherwise."
|
||||
(setq item (pop alist))
|
||||
(when (string-match (car item) shell)
|
||||
(setq extra-args (cdr item))))
|
||||
;; It is useful to set the prompt in the following command
|
||||
;; because some people have a setting for $PS1 which /bin/sh
|
||||
;; doesn't know about and thus /bin/sh will display a strange
|
||||
;; prompt. For example, if $PS1 has "${CWD}" in the value, then
|
||||
;; ksh will display the current working directory but /bin/sh
|
||||
;; will display a dollar sign. The following command line sets
|
||||
;; $PS1 to a sane value, and works under Bourne-ish shells as
|
||||
;; well as csh-like shells. We also unset the variable $ENV
|
||||
;; because that is read by some sh implementations (eg, bash
|
||||
;; when called as sh) on startup; this way, we avoid the startup
|
||||
;; file clobbering $PS1. $PROMPT_COMMAND is another way to set
|
||||
;; the prompt in /bin/bash, it must be discarded as well.
|
||||
(tramp-send-command
|
||||
vec (format
|
||||
"exec env ENV='' HISTFILE=/dev/null PROMPT_COMMAND='' PS1=%s PS2='' PS3='' %s %s"
|
||||
@ -3923,20 +3935,6 @@ seconds. If not, it produces an error message with the given ERROR-ARGS."
|
||||
Mainly sets the prompt and the echo correctly. PROC is the shell
|
||||
process to set up. VEC specifies the connection."
|
||||
(let ((tramp-end-of-output tramp-initial-end-of-output))
|
||||
;; It is useful to set the prompt in the following command because
|
||||
;; some people have a setting for $PS1 which /bin/sh doesn't know
|
||||
;; about and thus /bin/sh will display a strange prompt. For
|
||||
;; example, if $PS1 has "${CWD}" in the value, then ksh will
|
||||
;; display the current working directory but /bin/sh will display
|
||||
;; a dollar sign. The following command line sets $PS1 to a sane
|
||||
;; value, and works under Bourne-ish shells as well as csh-like
|
||||
;; shells. Daniel Pittman reports that the unusual positioning of
|
||||
;; the single quotes makes it work under `rc', too. We also unset
|
||||
;; the variable $ENV because that is read by some sh
|
||||
;; implementations (eg, bash when called as sh) on startup; this
|
||||
;; way, we avoid the startup file clobbering $PS1. $PROMPT_COMMAND
|
||||
;; is another way to set the prompt in /bin/bash, it must be
|
||||
;; discarded as well.
|
||||
(tramp-open-shell
|
||||
vec
|
||||
(or (tramp-get-connection-property vec "remote-shell" nil)
|
||||
@ -5025,13 +5023,25 @@ Return ATTR."
|
||||
"/bin:/usr/bin")
|
||||
"/bin:/usr/bin"))))
|
||||
(own-remote-path
|
||||
(when elt2
|
||||
(condition-case nil
|
||||
(tramp-send-command-and-read vec "echo \\\"$PATH\\\"")
|
||||
(error
|
||||
(tramp-message
|
||||
vec 3 "$PATH not set, ignoring `tramp-own-remote-path'.")
|
||||
nil)))))
|
||||
;; We cannot apply `tramp-send-command-and-read' because
|
||||
;; the login shell could return more than just the $PATH
|
||||
;; string. So we emulate that function.
|
||||
(when elt2
|
||||
(tramp-send-command
|
||||
vec
|
||||
(format
|
||||
"%s -l %s 'echo \\\"$PATH\\\"'"
|
||||
(tramp-get-method-parameter
|
||||
(tramp-file-name-method vec) 'tramp-remote-shell)
|
||||
(mapconcat
|
||||
'identity
|
||||
(tramp-get-method-parameter
|
||||
(tramp-file-name-method vec) 'tramp-remote-shell-args)
|
||||
" ")))
|
||||
(with-current-buffer (tramp-get-connection-buffer vec)
|
||||
(goto-char (point-max))
|
||||
(forward-line -1)
|
||||
(read (current-buffer))))))
|
||||
|
||||
;; Replace place holder `tramp-default-remote-path'.
|
||||
(when elt1
|
||||
|
Loading…
Reference in New Issue
Block a user