# HG changeset patch # User Richard M. Stallman # Date 979200531 0 # Node ID eee3a978c12e94e2e41cbde11953379e8524bd52 # Parent 87ccb00542e10dbde49c3e5122cd87eb7b1db665 (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. diff -r 87ccb00542e1 -r eee3a978c12e lisp/isearch.el --- 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)