]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix resolving symlinks in Eshell history file names
authorEli Zaretskii <eliz@gnu.org>
Sun, 9 Dec 2018 07:45:40 +0000 (09:45 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sun, 9 Dec 2018 07:45:40 +0000 (09:45 +0200)
* lisp/eshell/em-dirs.el (eshell-write-last-dir-ring):
* lisp/eshell/em-hist.el (eshell-write-history): Don't call
file-truename with argument of nil.  (Bug#33477)

* test/lisp/eshell/eshell-tests.el (with-temp-eshell): Remove
HISTFILE from the environment, to make sure the Eshell history
file is nil.

lisp/eshell/em-dirs.el
lisp/eshell/em-hist.el
test/lisp/eshell/eshell-tests.el

index c16a5ac6e071f05576b685aa01f6aefc0f2db710..853382888c90249ce35af5c4847d4ab5e682a215 100644 (file)
@@ -553,7 +553,7 @@ in the minibuffer:
 (defun eshell-write-last-dir-ring ()
   "Write the buffer's `eshell-last-dir-ring' to a history file."
   (let* ((file eshell-last-dir-ring-file-name)
-        (resolved-file (file-truename file)))
+        (resolved-file (if (stringp file) (file-truename file))))
     (cond
      ((or (null file)
          (equal file "")
index f866dfd7276b3f27901c5ae34a95a4ac6424ad1f..1b240c0460f123a7d04c2ab25e6e0234fcc3d5f9 100644 (file)
@@ -467,7 +467,7 @@ Useful within process sentinels.
 
 See also `eshell-read-history'."
   (let* ((file (or filename eshell-history-file-name))
-        (resolved-file (file-truename file)))
+        (resolved-file (if (stringp file) (file-truename file))))
     (cond
      ((or (null file)
          (equal file "")
index b6dbd09a3d6326d157587258b9eefc1ec4af8fc1..cefbeef5677c3ba26d36bd2b4b517ebef7448e4f 100644 (file)
@@ -31,6 +31,9 @@
 (defmacro with-temp-eshell (&rest body)
   "Evaluate BODY in a temporary Eshell buffer."
   `(let* ((eshell-directory-name (make-temp-file "eshell" t))
+          ;; We want no history file, so prevent Eshell from falling
+          ;; back on $HISTFILE.
+          (_ (setenv "HISTFILE"))
           (eshell-history-file-name nil)
           (eshell-buffer (eshell t)))
      (unwind-protect