emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master e55b4074af: Fix last change in minibuffer-lazy-highlight-setup


From: Juri Linkov
Subject: master e55b4074af: Fix last change in minibuffer-lazy-highlight-setup
Date: Wed, 18 May 2022 14:56:25 -0400 (EDT)

branch: master
commit e55b4074af27ff0840a90baea6fc9aecd28fbbc8
Author: Augusto Stoffel <arstoffel@gmail.com>
Commit: Juri Linkov <juri@linkov.net>

    Fix last change in minibuffer-lazy-highlight-setup
    
    * lisp/isearch.el (minibuffer-lazy-highlight-setup): Apply advices
    buffer-locally.
---
 lisp/isearch.el | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/lisp/isearch.el b/lisp/isearch.el
index 3e1dab4d15..31fbdf01bf 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -4410,14 +4410,17 @@ LAX-WHITESPACE: The value of `isearch-lax-whitespace' 
and
     (let ((unwind (make-symbol "minibuffer-lazy-highlight--unwind"))
           (after-change (make-symbol 
"minibuffer-lazy-highlight--after-change"))
           (display-count (make-symbol 
"minibuffer-lazy-highlight--display-count"))
+          (buffer (current-buffer))
           overlay)
       (fset unwind
             (lambda ()
-              (remove-function isearch-filter-predicate filter)
+              (when filter
+                (with-current-buffer buffer
+                  (remove-function (local 'isearch-filter-predicate) filter)))
               (remove-hook 'lazy-count-update-hook display-count)
               (when overlay (delete-overlay overlay))
-              (remove-hook 'after-change-functions after-change)
-              (remove-hook 'minibuffer-exit-hook unwind)
+              (remove-hook 'after-change-functions after-change t)
+              (remove-hook 'minibuffer-exit-hook unwind t)
               (let ((lazy-highlight-cleanup cleanup))
                 (lazy-highlight-cleanup))))
       (fset after-change
@@ -4447,8 +4450,8 @@ LAX-WHITESPACE: The value of `isearch-lax-whitespace' and
           (setq overlay (make-overlay (point-min) (point-min) (current-buffer) 
t))
           (add-hook 'lazy-count-update-hook display-count))
         (when filter
-          (make-local-variable 'isearch-filter-predicate)
-          (add-function :after-while isearch-filter-predicate filter))
+          (with-current-buffer buffer
+            (add-function :after-while (local 'isearch-filter-predicate) 
filter)))
         (funcall after-change nil nil nil)))))
 
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]