Mercurial > emacs
changeset 35225:eee3a978c12e
(isearch-lazy-highlight-update):
Don't look for more potential matches once maximum is exceeded.
Use overlays-in to check correctly for overlap with current match.
Ignore empty matches.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 11 Jan 2001 08:08:51 +0000 |
parents | 87ccb00542e1 |
children | e1ba079c4709 |
files | lisp/isearch.el |
diffstat | 1 files changed, 20 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/isearch.el Thu Jan 11 08:08:26 2001 +0000 +++ b/lisp/isearch.el Thu Jan 11 08:08:51 2001 +0000 @@ -1987,28 +1987,32 @@ (isearch-lazy-highlight-remove-overlays (window-start) (window-end nil t)) - (when (or (null isearch-lazy-highlight-max) - (< (length isearch-lazy-highlight-overlays) - isearch-lazy-highlight-max)) - (save-excursion - (save-match-data - (let (found) - (goto-char isearch-lazy-highlight-start) - (while (let ((case-fold-search isearch-case-fold-search)) - (funcall (cond (isearch-word 'word-search-forward) - (isearch-regexp 're-search-forward) - (t 'search-forward)) - isearch-string - isearch-lazy-highlight-end - t)) - ;; Found the next match. + (save-excursion + (save-match-data + (let (found) + (goto-char isearch-lazy-highlight-start) + (while (and (or (null isearch-lazy-highlight-max) + (< (length isearch-lazy-highlight-overlays) + isearch-lazy-highlight-max)) + (< (point) isearch-lazy-highlight-end) + (let ((case-fold-search isearch-case-fold-search)) + (funcall (cond (isearch-word 'word-search-forward) + (isearch-regexp 're-search-forward) + (t 'search-forward)) + isearch-string + isearch-lazy-highlight-end + t))) + ;; Found the next match. + ;; If it is empty, ignore it and move on. + (if (= (match-beginning 0) (match-end 0)) + (forward-char 1) (let ((ov (make-overlay (match-beginning 0) (match-end 0)))) ;; If OV overlaps the current isearch overlay, suppress ;; its face property; otherwise, we sometimes get odd ;; looking face combinations. (unless (memq isearch-overlay - (overlays-at (match-beginning 0))) + (overlays-in (match-beginning 0) (match-end 0))) (overlay-put ov 'face isearch-lazy-highlight-face)) (overlay-put ov 'priority 0)