]> git.eshelyaron.com Git - emacs.git/commitdiff
Tramp: Support unsetting HISTFILE.
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 2 Feb 2015 11:38:36 +0000 (12:38 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 2 Feb 2015 11:38:36 +0000 (12:38 +0100)
Fixes: debbugs:19731
* lisp/net/tramp-sh.el (tramp-histfile-override): Add another choice 'unset.
(tramp-open-shell, tramp-maybe-open-connection): Support it.

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

index 846da3b0dee64b753f32cb5b973d43186da85ad7..fe0a3dba1a074e6f40fc6c69964fee7016a0273e 100644 (file)
@@ -1,3 +1,9 @@
+2015-02-02  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp-sh.el (tramp-histfile-override): Add another choice 'unset.
+       (tramp-open-shell, tramp-maybe-open-connection): Support it.
+       (Bug#19731)
+
 2015-02-02  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 
        * emacs-lisp/package.el (package-delete): Remove package from
index 80a256c8d3bae1c4829b778ac976b8ea9cfa1962..9a5be77e66dd9ab4a7890d7be7bc94ef1f07e701 100644 (file)
@@ -71,12 +71,15 @@ By default, the HISTFILE is set to the \"/dev/null\" value, which
 is special on Unix systems and indicates the shell history should
 not be logged (this avoids clutter due to Tramp commands).
 
+The symbol `unset' removes 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\"."
   :group 'tramp
   :version "25.1"
   :type '(choice (const :tag "Do not override HISTFILE" nil)
+                 (const :tag "Unset HISTFILE" 'unset)
                  (const :tag "Empty the history (/dev/null)" "/dev/null")
                  (string :tag "Redirect to a file")))
 
@@ -3902,9 +3905,13 @@ file exists and nonzero exit status otherwise."
       ;; the prompt in /bin/bash, it must be discarded as well.
       (tramp-send-command
        vec (format
-           "exec env ENV=''%s PROMPT_COMMAND='' PS1=%s PS2='' PS3='' %s %s"
+           "exec env ENV='' %s PROMPT_COMMAND='' PS1=%s PS2='' PS3='' %s %s"
             (if tramp-histfile-override
-                (concat " HISTFILE=" tramp-histfile-override)
+                (concat
+                "HISTFILE="
+                (if (eq tramp-histfile-override 'unset)
+                    ""
+                  (tramp-shell-quote-argument tramp-histfile-override))))
               "")
            (tramp-shell-quote-argument tramp-end-of-output)
            shell (or extra-args ""))
@@ -4628,7 +4635,9 @@ connection if a previous connection has died for some reason."
              (setenv "TERM" tramp-terminal-type)
              (setenv "LC_ALL" "en_US.utf8")
              (when tramp-histfile-override
-                (setenv "HISTFILE" tramp-histfile-override))
+                (setenv "HISTFILE"
+                       (and (not (eq tramp-histfile-override 'unset))
+                            tramp-histfile-override)))
              (setenv "PROMPT_COMMAND")
              (setenv "PS1" tramp-initial-end-of-output)
              (let* ((target-alist (tramp-compute-multi-hops vec))