Use buffer-local value of 'comint-input-ring-size'
When 'comint-read-input-ring' was reading history to the ring, the global value of 'comint-input-ring-size' was used regardless of the local value, due to the use of a temporary buffer. This change fixes the problem. * lisp/comint.el (comint-read-input-ring): Use buffer-local value of the ring size. (Bug#72138)
This commit is contained in:
parent
9e9121ed63
commit
c1436ac64d
1 changed files with 3 additions and 2 deletions
|
@ -1056,6 +1056,7 @@ See also `comint-input-ignoredups' and `comint-write-input-ring'."
|
|||
(ring-size (min 1500 comint-input-ring-size))
|
||||
(ring (make-ring ring-size))
|
||||
;; Use possibly buffer-local values of these variables.
|
||||
(ring-max-size comint-input-ring-size)
|
||||
(ring-separator comint-input-ring-separator)
|
||||
(ring-file-prefix comint-input-ring-file-prefix)
|
||||
(history-ignore comint-input-history-ignore)
|
||||
|
@ -1066,7 +1067,7 @@ See also `comint-input-ignoredups' and `comint-write-input-ring'."
|
|||
;; Watch for those date stamps in history files!
|
||||
(goto-char (point-max))
|
||||
(let (start end history)
|
||||
(while (and (< count comint-input-ring-size)
|
||||
(while (and (< count ring-max-size)
|
||||
(re-search-backward ring-separator nil t)
|
||||
(setq end (match-beginning 0)))
|
||||
(goto-char (if (re-search-backward ring-separator nil t)
|
||||
|
@ -1084,7 +1085,7 @@ See also `comint-input-ignoredups' and `comint-write-input-ring'."
|
|||
(not (string-equal (ring-ref ring 0)
|
||||
history))))
|
||||
(when (= count ring-size)
|
||||
(ring-extend ring (min (- comint-input-ring-size ring-size)
|
||||
(ring-extend ring (min (- ring-max-size ring-size)
|
||||
ring-size))
|
||||
(setq ring-size (ring-size ring)))
|
||||
(ring-insert-at-beginning ring history)
|
||||
|
|
Loading…
Add table
Reference in a new issue