Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
935ee05f
Commit
935ee05f
authored
Dec 10, 2014
by
Michael Albinus
Browse files
* net/tramp-sh.el (tramp-get-remote-path): Use a login shell in
order to determine `tramp-own-remote-path'.
parent
c2db9393
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
21 deletions
+36
-21
lisp/ChangeLog
lisp/ChangeLog
+5
-0
lisp/net/tramp-sh.el
lisp/net/tramp-sh.el
+31
-21
No files found.
lisp/ChangeLog
View file @
935ee05f
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
...
...
lisp/net/tramp-sh.el
View file @
935ee05f
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment