]> git.eshelyaron.com Git - emacs.git/commitdiff
Bug#35769
authorMichael Albinus <michael.albinus@gmx.de>
Sat, 18 May 2019 16:14:17 +0000 (18:14 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Sat, 18 May 2019 16:14:17 +0000 (18:14 +0200)
* lisp/net/tramp-sh.el: (tramp-maybe-open-connection):
Arrange `process-environment' that it doesn't work for local
processes.  (Bug#35769)

lisp/net/tramp-sh.el

index 2d27baf454a3fac0f7b026828481ec8415af41ce..11b1af8116e2445a332e295ddba4dfc8ee728907 100644 (file)
@@ -4769,8 +4769,8 @@ Does not do anything if a connection is already open, but re-opens the
 connection if a previous connection has died for some reason."
   (let ((p (tramp-get-connection-process vec))
        (process-name (tramp-get-connection-property vec "process-name" nil))
-       (process-environment (copy-sequence process-environment))
-       (pos (with-current-buffer (tramp-get-connection-buffer vec) (point))))
+       (pos (with-current-buffer (tramp-get-connection-buffer vec) (point)))
+       tmp-process-environment)
 
     ;; If Tramp opens the same connection within a short time frame,
     ;; there is a problem.  We shall signal this.
@@ -4835,17 +4835,22 @@ connection if a previous connection has died for some reason."
              ;; Start new process.
              (when (and p (processp p))
                (delete-process p))
-             (setenv "TERM" tramp-terminal-type)
-             (setenv "LC_ALL" (tramp-get-local-locale vec))
-             (if (stringp tramp-histfile-override)
-                 (setenv "HISTFILE" tramp-histfile-override)
-               (if tramp-histfile-override
-                   (progn
-                     (setenv "HISTFILE")
-                     (setenv "HISTFILESIZE" "0")
-                     (setenv "HISTSIZE" "0"))))
-             (setenv "PROMPT_COMMAND")
-             (setenv "PS1" tramp-initial-end-of-output)
+             ;; Use a temporary `process-environment', in order not
+             ;; to penetrate local processes.
+             (let ((process-environment (copy-sequence process-environment)))
+               (setenv "TERM" tramp-terminal-type)
+               (setenv "LC_ALL" (tramp-get-local-locale vec))
+               (if (stringp tramp-histfile-override)
+                   (setenv "HISTFILE" tramp-histfile-override)
+                 (if tramp-histfile-override
+                     (progn
+                       (setenv "HISTFILE")
+                       (setenv "HISTFILESIZE" "0")
+                       (setenv "HISTSIZE" "0"))))
+               (setenv "PROMPT_COMMAND")
+               (setenv "PS1" tramp-initial-end-of-output)
+               (setq tmp-process-environment
+                     (copy-sequence process-environment)))
               (unless (stringp tramp-encoding-shell)
                 (tramp-error vec 'file-error "`tramp-encoding-shell' not set"))
              (let* ((current-host (system-name))
@@ -4862,7 +4867,8 @@ connection if a previous connection has died for some reason."
                     ;; This must be done in order to avoid our file
                     ;; name handler.
                     (p (let ((default-directory
-                               (tramp-compat-temporary-file-directory)))
+                               (tramp-compat-temporary-file-directory))
+                             (process-environment tmp-process-environment))
                          (apply
                           #'start-process
                           (tramp-get-connection-name vec)