From: Eli Zaretskii Date: Sun, 9 Dec 2018 07:45:40 +0000 (+0200) Subject: Fix resolving symlinks in Eshell history file names X-Git-Tag: emacs-27.0.90~4017 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c2fdd50c3cb0b03d2414370c58c1aa2a6ec3311d;p=emacs.git Fix resolving symlinks in Eshell history file names * 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. --- diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el index c16a5ac6e07..853382888c9 100644 --- a/lisp/eshell/em-dirs.el +++ b/lisp/eshell/em-dirs.el @@ -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 "") diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index f866dfd7276..1b240c0460f 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -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 "") diff --git a/test/lisp/eshell/eshell-tests.el b/test/lisp/eshell/eshell-tests.el index b6dbd09a3d6..cefbeef5677 100644 --- a/test/lisp/eshell/eshell-tests.el +++ b/test/lisp/eshell/eshell-tests.el @@ -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