]> code.delx.au - gnu-emacs/commitdiff
* lisp/isearch.el (isearch-lazy-highlight-new-loop):
authorJuri Linkov <juri@jurta.org>
Sat, 19 Nov 2011 21:03:12 +0000 (23:03 +0200)
committerJuri Linkov <juri@jurta.org>
Sat, 19 Nov 2011 21:03:12 +0000 (23:03 +0200)
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
lisp/ChangeLog
lisp/info.el
lisp/isearch.el
lisp/misearch.el

index fcfdb066d5cca4845b3e3cce57b097cf5f4b9232..c66d9c6112c6d42a81ec38be836ca9e0feda4203 100644 (file)
@@ -1,3 +1,18 @@
+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):
index 12639478d8e3d4346fa42b35e61dde6a0d789c47..338f6cb5e654b8eb7f2212940dba597d4daf3592 100644 (file)
@@ -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)
index 07ae56934b5c5572bba1bd1db8e38a78c5b43e13..39ed7adc9c48608feb286cd00195d9fbdd22a03c 100644 (file)
@@ -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.
index c533562f0730a6e7021200bb67157d2077ccdac1..de1a32ff7d53c7c397677c385b4cd8fdcfa10ebb 100644 (file)
@@ -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.