Function: eshell-read-last-dir-ring
eshell-read-last-dir-ring is a byte-compiled function defined in
em-dirs.el.gz.
Signature
(eshell-read-last-dir-ring)
Documentation
Set the buffer's eshell-last-dir-ring from a history file.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/em-dirs.el.gz
(defun eshell-read-last-dir-ring ()
"Set the buffer's `eshell-last-dir-ring' from a history file."
(let ((file eshell-last-dir-ring-file-name))
(cond
((or (null file)
(equal file "")
(not (file-readable-p file)))
nil)
(t
(let* ((count 0)
(size eshell-last-dir-ring-size)
(ring (make-ring size)))
(with-temp-buffer
(insert-file-contents file)
;; Save restriction in case file is already visited...
;; Watch for those date stamps in history files!
(goto-char (point-max))
(while (and (< count size)
(re-search-backward "^\\([^\n].*\\)$" nil t))
(ring-insert-at-beginning ring (match-string 1))
(setq count (1+ count)))
;; never allow the top element to equal the current
;; directory
(while (and (not (ring-empty-p ring))
(equal (ring-ref ring 0) (eshell/pwd)))
(ring-remove ring 0)))
(setq eshell-last-dir-ring ring))))))