summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2013-02-21 19:45:12 +0200
committerJuri Linkov <juri@jurta.org>2013-02-21 19:45:12 +0200
commit54d9de11684938dfc813a00af46c02e0e7b83f15 (patch)
treeb47f6a1f1083302e2a556eec82adb12295a8fe10
parent62cfd799f17a31188b3cdb9ffbe1421b4e6cba5d (diff)
downloademacs-54d9de11684938dfc813a00af46c02e0e7b83f15.tar.gz
* lisp/isearch.el (isearch-lazy-highlight-new-loop):
Set `isearch-lazy-highlight-start' and `isearch-lazy-highlight-end' to `isearch-other-end' if it is not nil. * lisp/replace.el (replace-highlight): Let-bind `isearch-other-end' to `match-beg'. * lisp/textmodes/ispell.el (ispell-highlight-spelling-error-overlay): Let-bind `isearch-other-end' to `start', `isearch-forward' to t and `isearch-error' to nil. Fixes: debbugs:13402
-rw-r--r--lisp/ChangeLog13
-rw-r--r--lisp/isearch.el14
-rw-r--r--lisp/replace.el1
-rw-r--r--lisp/textmodes/ispell.el5
4 files changed, 30 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index a3cd719895c..7a9cdcc20e0 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,16 @@
+2013-02-21 Juri Linkov <juri@jurta.org>
+
+ * isearch.el (isearch-lazy-highlight-new-loop):
+ Set `isearch-lazy-highlight-start' and `isearch-lazy-highlight-end'
+ to `isearch-other-end' if it is not nil. (Bug#13402)
+
+ * replace.el (replace-highlight): Let-bind `isearch-other-end'
+ to `match-beg'.
+
+ * textmodes/ispell.el (ispell-highlight-spelling-error-overlay):
+ Let-bind `isearch-other-end' to `start', `isearch-forward' to t
+ and `isearch-error' to nil.
+
2013-02-20 Fabián Ezequiel Gallina <fgallina@cuca>
* progmodes/python.el (python-info-current-defun): Enhance
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 972fb0058d3..ad5331f5bf2 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -2936,8 +2936,15 @@ by other Emacs features."
(setq isearch-lazy-highlight-window (selected-window)
isearch-lazy-highlight-window-start (window-start)
isearch-lazy-highlight-window-end (window-end)
- isearch-lazy-highlight-start (point)
- isearch-lazy-highlight-end (point)
+ ;; Start lazy-highlighting at the beginning of the found
+ ;; match (`isearch-other-end'). If no match, use point.
+ ;; One of the next two variables (depending on search direction)
+ ;; is used to define the starting position of lazy-highlighting
+ ;; and also to remember the current position of point between
+ ;; calls of `isearch-lazy-highlight-update', and another variable
+ ;; is used to define where the wrapped search must stop.
+ isearch-lazy-highlight-start (or isearch-other-end (point))
+ isearch-lazy-highlight-end (or isearch-other-end (point))
isearch-lazy-highlight-wrapped nil
isearch-lazy-highlight-last-string isearch-string
isearch-lazy-highlight-case-fold-search isearch-case-fold-search
@@ -3035,6 +3042,9 @@ Attempt to do the search exactly the way the pending Isearch would."
(overlay-put ov 'priority 1000)
(overlay-put ov 'face lazy-highlight-face)
(overlay-put ov 'window (selected-window))))
+ ;; Remember the current position of point for
+ ;; the next call of `isearch-lazy-highlight-update'
+ ;; when `lazy-highlight-max-at-a-time' is too small.
(if isearch-lazy-highlight-forward
(setq isearch-lazy-highlight-end (point))
(setq isearch-lazy-highlight-start (point)))))
diff --git a/lisp/replace.el b/lisp/replace.el
index 7757426cf95..3eaa5ccf6bd 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -2198,6 +2198,7 @@ make, or the user didn't cancel the call."
replace-regexp-lax-whitespace)
(isearch-case-fold-search case-fold-search)
(isearch-forward t)
+ (isearch-other-end match-beg)
(isearch-error nil))
(isearch-lazy-highlight-new-loop range-beg range-end))))
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 7bdb587c560..1d28de72996 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2497,7 +2497,10 @@ The variable `ispell-highlight-face' selects the face to use for highlighting."
(regexp-quote (buffer-substring-no-properties start end))
"\\b"))
(isearch-regexp t)
- (isearch-case-fold-search nil))
+ (isearch-case-fold-search nil)
+ (isearch-forward t)
+ (isearch-other-end start)
+ (isearch-error nil))
(isearch-lazy-highlight-new-loop
(if (boundp 'reg-start) reg-start)
(if (boundp 'reg-end) reg-end)))