Subject: bug#33838: closed (Re: bug#33838: 27.0.50; lazy-highlight fails with a quick key sequence)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 25 Dec 2018 21:56:02 +0000

Your bug report

#33838: 27.0.50; lazy-highlight fails with a quick key sequence

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
33838: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=33838
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#33838: 27.0.50; lazy-highlight fails with a quick key sequence
From: Juri Linkov <[email-masked]>
To: [email-masked]
Date: Tue, 25 Dec 2018 23:54:42 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> A proper fix would be to reset isearch-lazy-highlight-last-string
> on exiting Isearch, so it won't affect the next search:

Pushed to master and closed.

Subject: 27.0.50; lazy-highlight fails with a quick key sequence
From: Juri Linkov <[email-masked]>
To: [email-masked]
Date: Sun, 23 Dec 2018 02:05:19 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Quickly typing `C-s C-s' to repeat the last search in a file with long
wrapped lines sometimes fails to lazy-highlight other matches.

This is because the condition in isearch-lazy-highlight-new-loop relies on
the return value of `(sit-for 0)' and when there is input pending like the
second `C-s' keystroke unprocessed due to the large file size with long
lines, it doesn't start a new lazy-highlight loop.

I noticed this problem only after starting to use lazy-count that fails
to count matches.  Before that, there was no clear indication that
lazy-highlight failed in such cases.

I doubt that relying on its return value was intentional, so I propose
the following fix:

diff --git a/lisp/isearch.el b/lisp/isearch.el
index dd0973d4ea..5876e70305 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -3661,7 +3661,7 @@ isearch-lazy-highlight-new-loop
 search string to change or the window to scroll).  It is also used
 by other Emacs features."
   (when (and (null executing-kbd-macro)
-             (sit-for 0)         ;make sure (window-start) is credible
+             (progn (sit-for 0) t) ;make sure (window-start) is credible
              (or (not (equal isearch-string
                              isearch-lazy-highlight-last-string))
                  (not (memq (selected-window)