summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2011-11-19 23:03:12 +0200
committerJuri Linkov <juri@jurta.org>2011-11-19 23:03:12 +0200
commit30c621331d969093bf618ba4fb9a8cc0a14edfe7 (patch)
treed2ae2437b526297d58246e501518b4636730241e
parent645ca9cf3730a94481ff52b47d63f20852b15245 (diff)
downloademacs-30c621331d969093bf618ba4fb9a8cc0a14edfe7.tar.gz
* lisp/isearch.el (isearch-lazy-highlight-new-loop):
Remove condition `(not isearch-error)'. * lisp/misearch.el (multi-isearch-search-fun): Add condition `(not bound)' to ignore lazy-highlighting search. Add the search-failed message "end of multi" when the end of multi-sequence is reached. Uncapitalize the search-failed message "Repeat for next buffer". * lisp/info.el (Info-search): Add the search-failed message "end of the manual" when the end of the manual is reached in Isearch mode. Fixes: debbugs:9918
-rw-r--r--lisp/ChangeLog15
-rw-r--r--lisp/info.el4
-rw-r--r--lisp/isearch.el34
-rw-r--r--lisp/misearch.el6
4 files changed, 39 insertions, 20 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index fcfdb066d5c..c66d9c6112c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,20 @@
2011-11-19 Juri Linkov <juri@jurta.org>
+ * isearch.el (isearch-lazy-highlight-new-loop):
+ Remove condition `(not isearch-error)'. (Bug#9918)
+
+ * misearch.el (multi-isearch-search-fun): Add condition
+ `(not bound)' to ignore lazy-highlighting search.
+ Add the search-failed message "end of multi" when the end of
+ multi-sequence is reached. Uncapitalize the search-failed
+ message "Repeat for next buffer".
+
+ * info.el (Info-search): Add the search-failed message
+ "end of the manual" when the end of the manual is reached
+ in Isearch mode.
+
+2011-11-19 Juri Linkov <juri@jurta.org>
+
* info.el (Info-find-node-2, Info-select-node, Info-history-find-node):
Use non-destructive `remove' instead of `delete' because
`Info-history-list' stored to `Info-isearch-initial-history-list' in
diff --git a/lisp/info.el b/lisp/info.el
index 12639478d8e..338f6cb5e65 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -1846,7 +1846,9 @@ If DIRECTION is `backward', search in the reverse direction."
(setq list nil)))
(if found
(message "")
- (signal 'search-failed (list regexp))))
+ (signal 'search-failed (if isearch-mode
+ (list regexp "end of the manual")
+ (list regexp)))))
(if (not found)
(progn (Info-read-subfile osubfile)
(goto-char opoint)
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 07ae56934b5..39ed7adc9c4 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -2673,25 +2673,27 @@ by other Emacs features."
;; something important did indeed change
(lazy-highlight-cleanup t) ;kill old loop & remove overlays
(setq isearch-lazy-highlight-error isearch-error)
- (when (not isearch-error)
- (setq isearch-lazy-highlight-start-limit beg
- isearch-lazy-highlight-end-limit end)
- (setq isearch-lazy-highlight-window (selected-window)
- isearch-lazy-highlight-window-start (window-start)
- isearch-lazy-highlight-window-end (window-end)
- isearch-lazy-highlight-start (point)
- isearch-lazy-highlight-end (point)
- isearch-lazy-highlight-wrapped nil
- isearch-lazy-highlight-last-string isearch-string
- isearch-lazy-highlight-case-fold-search isearch-case-fold-search
- isearch-lazy-highlight-regexp isearch-regexp
- isearch-lazy-highlight-space-regexp search-whitespace-regexp
- isearch-lazy-highlight-word isearch-word
- isearch-lazy-highlight-forward isearch-forward)
+ ;; It used to check for `(not isearch-error)' here, but actually
+ ;; lazy-highlighting might find matches to highlight even when
+ ;; `isearch-error' is non-nil. (Bug#9918)
+ (setq isearch-lazy-highlight-start-limit beg
+ isearch-lazy-highlight-end-limit end)
+ (setq isearch-lazy-highlight-window (selected-window)
+ isearch-lazy-highlight-window-start (window-start)
+ isearch-lazy-highlight-window-end (window-end)
+ isearch-lazy-highlight-start (point)
+ isearch-lazy-highlight-end (point)
+ isearch-lazy-highlight-wrapped nil
+ isearch-lazy-highlight-last-string isearch-string
+ isearch-lazy-highlight-case-fold-search isearch-case-fold-search
+ isearch-lazy-highlight-regexp isearch-regexp
+ isearch-lazy-highlight-space-regexp search-whitespace-regexp
+ isearch-lazy-highlight-word isearch-word
+ isearch-lazy-highlight-forward isearch-forward)
(unless (equal isearch-string "")
(setq isearch-lazy-highlight-timer
(run-with-idle-timer lazy-highlight-initial-delay nil
- 'isearch-lazy-highlight-update))))))
+ 'isearch-lazy-highlight-update)))))
(defun isearch-lazy-highlight-search ()
"Search ahead for the next or previous match, for lazy highlighting.
diff --git a/lisp/misearch.el b/lisp/misearch.el
index c533562f073..de1a32ff7d5 100644
--- a/lisp/misearch.el
+++ b/lisp/misearch.el
@@ -142,7 +142,7 @@ Intended to be added to `isearch-mode-hook'."
;; 1. First try searching in the initial buffer
(let ((res (funcall search-fun string bound noerror)))
;; Reset wrapping for all-buffers pause after successful search
- (if (and res (eq multi-isearch-pause t))
+ (if (and res (not bound) (eq multi-isearch-pause t))
(setq multi-isearch-current-buffer nil))
res)
;; 2. If the above search fails, start visiting next/prev buffers
@@ -173,8 +173,8 @@ Intended to be added to `isearch-mode-hook'."
found)
;; Return nil when multi-isearch-next-buffer-current-function fails
;; (`with-current-buffer' raises an error for nil returned from it).
- (error nil))
- (signal 'search-failed (list string "Repeat for next buffer"))))))))
+ (error (signal 'search-failed (list string "end of multi"))))
+ (signal 'search-failed (list string "repeat for next buffer"))))))))
(defun multi-isearch-wrap ()
"Wrap the multiple buffers search when search is failed.