1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-03 14:10:47 -08:00

(comint-read-input-ring): Bugfix such that the first

and the last entry of the input ring file are not lost.
This commit is contained in:
Gerd Moellmann 2000-10-18 14:42:38 +00:00
parent 9b5360aa71
commit 3e8abfd398

View file

@ -838,22 +838,21 @@ See also `comint-input-ignoredups' and `comint-write-input-ring'."
;; 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 "^[ \t]*\\([^#\n].*\\)[ \t]*$"
nil t))
(let (start end history)
(while (and (< count comint-input-ring-size)
(re-search-backward comint-input-ring-separator nil t)
(setq end (match-beginning 0))
(re-search-backward comint-input-ring-separator nil t)
(setq start (match-end 0))
(setq history (buffer-substring start end))
(goto-char start))
(if (or (null comint-input-ignoredups)
(ring-empty-p ring)
(not (string-equal (ring-ref ring 0) history)))
(ring-insert-at-beginning ring history)))
(setq count (1+ count)))))
(let (start end history)
(while (and (< count comint-input-ring-size)
(re-search-backward comint-input-ring-separator nil t)
(setq end (match-beginning 0)))
(if (re-search-backward comint-input-ring-separator nil t)
(setq start (match-end 0))
(setq start (point-min)))
(setq history (buffer-substring start end))
(goto-char start)
(if (or (null comint-input-ignoredups)
(ring-empty-p ring)
(not (string-equal (ring-ref ring 0) history)))
(progn
(ring-insert-at-beginning ring history)
(setq count (1+ count)))))))
(kill-buffer history-buf))
(setq comint-input-ring ring
comint-input-ring-index nil)))))