From: Richard M. Stallman Date: Thu, 11 Jan 2001 08:08:51 +0000 (+0000) Subject: (isearch-lazy-highlight-update): X-Git-Tag: emacs-pretest-21.0.96~357 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7742ee19243d8b631b144199b84170e22ac9ac60;p=emacs.git (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 --git a/lisp/isearch.el b/lisp/isearch.el index 16c46430c67..997cdc6aac9 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1987,28 +1987,32 @@ search string to change)." (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)