Mercurial > emacs
changeset 99640:034bef9118e6
(isearch-filter-predicate): Rename from
`isearch-success-function'. Rename default value from
`isearch-success-function-default' to
`isearch-filter-invisible'. Doc fix.
(isearch-filter-invisible): Rename from
`isearch-success-function-default'. Doc fix.
(isearch-search, isearch-lazy-highlight-search): Rename
`isearch-success-function' to `isearch-filter-predicate'.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Mon, 17 Nov 2008 00:42:46 +0000 |
parents | 0877892a118b |
children | 833f28e62d37 |
files | lisp/isearch.el |
diffstat | 1 files changed, 18 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/isearch.el Sun Nov 16 23:47:04 2008 +0000 +++ b/lisp/isearch.el Mon Nov 17 00:42:46 2008 +0000 @@ -176,11 +176,12 @@ "Function to save a function restoring the mode-specific isearch state to the search status stack.") -(defvar isearch-success-function 'isearch-success-function-default - "Function to report whether the new search match is considered successful. -The function has two arguments: the positions of start and end of text -matched by the search. If this function returns nil, continue -searching without stopping at this match.") +(defvar isearch-filter-predicate 'isearch-filter-invisible + "Predicate that filters the search hits that would normally be available. +Search hits that dissatisfy the predicate are skipped. The function +has two arguments: the positions of start and end of text matched by +the search. If this function returns nil, continue searching without +stopping at this match.") ;; Search ring. @@ -2257,7 +2258,7 @@ (isearch-no-upper-case-p isearch-string isearch-regexp))) (condition-case lossage (let ((inhibit-point-motion-hooks - (and (eq isearch-success-function 'isearch-success-function-default) + (and (eq isearch-filter-predicate 'isearch-filter-invisible) search-invisible)) (inhibit-quit nil) (case-fold-search isearch-case-fold-search) @@ -2267,12 +2268,12 @@ (while retry (setq isearch-success (isearch-search-string isearch-string nil t)) - ;; Clear RETRY unless we matched some invisible text - ;; and we aren't supposed to do that. + ;; Clear RETRY unless the search predicate says + ;; to skip this search hit. (if (or (not isearch-success) (bobp) (eobp) (= (match-beginning 0) (match-end 0)) - (funcall isearch-success-function + (funcall isearch-filter-predicate (match-beginning 0) (match-end 0))) (setq retry nil))) (setq isearch-just-started nil) @@ -2451,10 +2452,10 @@ nil) (setq isearch-hidden t))))))) -(defun isearch-success-function-default (beg end) - "Default function to report if the new search match is successful. -Returns t if search can match hidden text, or otherwise checks if some -text from BEG to END is visible." +(defun isearch-filter-invisible (beg end) + "Default predicate to filter out invisible text. +It filters search hits to those that are visible (at least partially), +unless invisible text too can be searched." (or (eq search-invisible t) (not (isearch-range-invisible beg end)))) @@ -2640,12 +2641,14 @@ (if isearch-lazy-highlight-wrapped isearch-lazy-highlight-end (window-start)))))) - ;; Use a loop like in `isearch-search' + ;; Use a loop like in `isearch-search'. (while retry (setq success (isearch-search-string isearch-lazy-highlight-last-string bound t)) + ;; Clear RETRY unless the search predicate says + ;; to skip this search hit. (if (or (not success) - (funcall isearch-success-function + (funcall isearch-filter-predicate (match-beginning 0) (match-end 0))) (setq retry nil))) success)