diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/isearch.el | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lisp/isearch.el b/lisp/isearch.el index c8bd62875f4..d1b9f2c4397 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -3529,11 +3529,14 @@ Optional third argument, if t, means if fail just return nil (no error). ;; 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-filter-predicate (match-beginning 0) (match-end 0))) - (setq retry nil))) + (setq retry nil) + ;; Advance point on empty matches before retrying + (when (= (match-beginning 0) (match-end 0)) + (if (if isearch-forward (eobp) (bobp)) + (setq retry nil isearch-success nil) + (forward-char (if isearch-forward 1 -1)))))) (setq isearch-just-started nil) (when isearch-success (setq isearch-other-end @@ -4044,7 +4047,6 @@ Attempt to do the search exactly the way the pending Isearch would." ;; Clear RETRY unless the search predicate says ;; to skip this search hit. (if (or (not success) - (= (point) bound) ; like (bobp) (eobp) in `isearch-search'. (= (match-beginning 0) (match-end 0)) (funcall isearch-filter-predicate (match-beginning 0) (match-end 0))) |