]> git.eshelyaron.com Git - emacs.git/commitdiff
Respect buffer-local values in comint-read-input-ring
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 1 Oct 2019 19:22:21 +0000 (21:22 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 1 Oct 2019 19:22:28 +0000 (21:22 +0200)
* lisp/comint.el (comint-read-input-ring): Use the buffer-local
values (bug#6432).

lisp/comint.el

index 049e9e71a79979112b3993b6a7e67cba5a264652..4bb4367035488a1aa5e87c589d71aeeb457963d2 100644 (file)
@@ -971,7 +971,11 @@ See also `comint-input-ignoredups' and `comint-write-input-ring'."
                ;; to huge numbers.  Don't allocate a huge ring right
                ;; away; there might not be that much history.
                (ring-size (min 1500 comint-input-ring-size))
-               (ring (make-ring ring-size)))
+               (ring (make-ring ring-size))
+                ;; Use possibly buffer-local values of these variables.
+                (ring-separator comint-input-ring-separator)
+                (history-ignore comint-input-history-ignore)
+                (ignoredups comint-input-ignoredups))
           (with-temp-buffer
              (insert-file-contents file)
              ;; Save restriction in case file is already visited...
@@ -979,19 +983,16 @@ See also `comint-input-ignoredups' and `comint-write-input-ring'."
              (goto-char (point-max))
              (let (start end history)
                (while (and (< count comint-input-ring-size)
-                           (re-search-backward comint-input-ring-separator
-                                               nil t)
+                           (re-search-backward ring-separator nil t)
                            (setq end (match-beginning 0)))
                  (setq start
-                       (if (re-search-backward comint-input-ring-separator
-                                               nil t)
+                       (if (re-search-backward ring-separator nil t)
                            (match-end 0)
                          (point-min)))
                  (setq history (buffer-substring start end))
                  (goto-char start)
-                 (when (and (not (string-match comint-input-history-ignore
-                                              history))
-                           (or (null comint-input-ignoredups)
+                 (when (and (not (string-match history-ignore history))
+                           (or (null ignoredups)
                                (ring-empty-p ring)
                                (not (string-equal (ring-ref ring 0)
                                                   history))))