* net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):

Reduce the amount of set environment variable commands.
This commit is contained in:
Michael Albinus 2014-10-14 13:59:16 +02:00
parent 3f8c645caa
commit 5fa75d8eba
2 changed files with 18 additions and 7 deletions

View file

@ -1,3 +1,9 @@
2014-10-14 Jérémy Compostella <jeremy.compostella@intel.com>
Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Reduce the amount of set environment variable commands.
2014-10-12 Fabián Ezequiel Gallina <fgallina@gnu.org>
Fix import completion. (Bug#18582)

View file

@ -3955,10 +3955,8 @@ process to set up. VEC specifies the connection."
(tramp-message vec 5 "Setting shell prompt")
(tramp-send-command
vec (format "PS1=%s" (tramp-shell-quote-argument tramp-end-of-output)) t)
(tramp-send-command vec "PS2=''" t)
(tramp-send-command vec "PS3=''" t)
(tramp-send-command vec "PROMPT_COMMAND=''" t)
vec (format "PS1=%s PS2='' PS3='' PROMPT_COMMAND=''"
(tramp-shell-quote-argument tramp-end-of-output)) t)
;; Try to set up the coding system correctly.
;; CCC this can't be the right way to do it. Hm.
@ -4078,15 +4076,22 @@ process to set up. VEC specifies the connection."
(let ((env (append (when (tramp-get-remote-locale vec) ; Discard `(nil)'.
`(,(tramp-get-remote-locale vec)))
(copy-sequence tramp-remote-process-environment)))
unset item)
unset vars item)
(while env
(setq item (tramp-compat-split-string (car env) "="))
(setcdr item (mapconcat 'identity (cdr item) "="))
(if (and (stringp (cdr item)) (not (string-equal (cdr item) "")))
(tramp-send-command
vec (format "%s=%s; export %s" (car item) (cdr item) (car item)) t)
(push (format "%s %s" (car item) (cdr item)) vars)
(push (car item) unset))
(setq env (cdr env)))
(when vars
(tramp-send-command
vec
(format "while read var val; do export $var=$val; done <<'%s'\n%s\n%s"
tramp-end-of-heredoc
(mapconcat 'identity vars "\n")
tramp-end-of-heredoc)
t))
(when unset
(tramp-send-command
vec (format "unset %s" (mapconcat 'identity unset " ")) t))))