]> git.eshelyaron.com Git - emacs.git/commitdiff
Further work on suppressing shell history in Tramp
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 3 Feb 2015 08:24:57 +0000 (09:24 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Tue, 3 Feb 2015 08:24:57 +0000 (09:24 +0100)
Fixes: debbugs:19731
* net/tramp-sh.el (tramp-histfile-override): Fix docstring.
(tramp-open-shell, tramp-maybe-open-connection): Set also
HISTFILESIZE and HISTSIZE when needed.

lisp/ChangeLog
lisp/net/tramp-sh.el

index 77361bc3a01cfc0ed967beb708851152cd201904..80ee86ac95896e11b69500d7f149977060a9188b 100644 (file)
@@ -1,3 +1,9 @@
+2015-02-03  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp-sh.el (tramp-histfile-override): Fix docstring.
+       (tramp-open-shell, tramp-maybe-open-connection): Set also
+       HISTFILESIZE and HISTSIZE when needed.  (Bug#19731)
+
 2015-02-02  Artur Malabarba  <bruce.connor.am@gmail.com>
 
        * emacs-lisp/package.el (package--find-non-dependencies): New
index 8e519b13e5f290baf0a04ec1d17c27857c9b84f9..9c8a222285c4279d40be42c17c73f1f13aa2c328 100644 (file)
@@ -71,10 +71,11 @@ When setting to a string, it redirects the shell history to that
 file.  Be careful when setting to \"/dev/null\"; this might
 result in undesired results when using \"bash\" as shell.
 
-The value t, the default value, unsets any setting of HISTFILE.
-If you set this variable to nil, however, the *override* is
-disabled, so the history will go to the default storage
-location, e.g. \"$HOME/.sh_history\"."
+The value t, the default value, unsets any setting of HISTFILE,
+and sets both HISTFILESIZE and HISTSIZE to 0.  If you set this
+variable to nil, however, the *override* is disabled, so the
+history will go to the default storage location,
+e.g. \"$HOME/.sh_history\"."
   :group 'tramp
   :version "25.1"
   :type '(choice (const :tag "Do not override HISTFILE" nil)
@@ -3901,15 +3902,16 @@ file exists and nonzero exit status otherwise."
       ;; 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.
+      ;; $HISTFILE is set according to `tramp-histfile-override'.
       (tramp-send-command
        vec (format
            "exec env ENV='' %s PROMPT_COMMAND='' PS1=%s PS2='' PS3='' %s %s"
-            (if tramp-histfile-override
-                (concat
-                "HISTFILE="
-                (if (stringp tramp-histfile-override)
-                    (tramp-shell-quote-argument tramp-histfile-override) ""))
-              "")
+           (if (stringp tramp-histfile-override)
+               (format "HISTFILE=%s"
+                       (tramp-shell-quote-argument tramp-histfile-override))
+             (if tramp-histfile-override
+                 "HISTFILE='' HISTFILESIZE=0 HISTSIZE=0"
+               ""))
            (tramp-shell-quote-argument tramp-end-of-output)
            shell (or extra-args ""))
        t))
@@ -4631,10 +4633,13 @@ connection if a previous connection has died for some reason."
                (delete-process p))
              (setenv "TERM" tramp-terminal-type)
              (setenv "LC_ALL" "en_US.utf8")
-             (when tramp-histfile-override
-                (setenv "HISTFILE"
-                       (and (stringp tramp-histfile-override)
-                            tramp-histfile-override)))
+             (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)
              (let* ((target-alist (tramp-compute-multi-hops vec))