summaryrefslogtreecommitdiff
path: root/lisp/isearch.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2010-12-20 01:18:15 +0000
committerJuri Linkov <juri@jurta.org>2010-12-20 01:18:15 +0000
commit957e5dd1e98253145a6d8bf5dd392c74ac4b8409 (patch)
tree5cc26d4fcf8f142671b4bdd489d93a982ff3cd54 /lisp/isearch.el
parentd3658de7373f55d5f153748aafe82e5806672085 (diff)
downloademacs-957e5dd1e98253145a6d8bf5dd392c74ac4b8409.tar.gz
* lisp/isearch.el (isearch-lazy-highlight-error): New variable.
(isearch-lazy-highlight-new-loop): Compare `isearch-error' and `isearch-lazy-highlight-error'. Set `isearch-lazy-highlight-error' to the current value of `isearch-error' (Bug#7468).
Diffstat (limited to 'lisp/isearch.el')
-rw-r--r--lisp/isearch.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 3b04fa270b0..afc18cae127 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -2579,6 +2579,7 @@ since they have special meaning in a regexp."
(defvar isearch-lazy-highlight-regexp nil)
(defvar isearch-lazy-highlight-space-regexp nil)
(defvar isearch-lazy-highlight-forward nil)
+(defvar isearch-lazy-highlight-error nil)
(defun lazy-highlight-cleanup (&optional force)
"Stop lazy highlighting and remove extra highlighting from current buffer.
@@ -2620,9 +2621,13 @@ by other Emacs features."
(not (= (window-end) ; Window may have been split/joined.
isearch-lazy-highlight-window-end))
(not (eq isearch-forward
- isearch-lazy-highlight-forward))))
+ isearch-lazy-highlight-forward))
+ ;; In case we are recovering from an error.
+ (not (equal isearch-error
+ isearch-lazy-highlight-error))))
;; something important did indeed change
(lazy-highlight-cleanup t) ;kill old loop & remove overlays
+ (setq isearch-lazy-highlight-error isearch-error)
(when (not isearch-error)
(setq isearch-lazy-highlight-start-limit beg
isearch-lazy-highlight-end-limit end)