Subject: bug#33446: 26; `isearch-lazy-highlight-update' in MASTER today

From: Juri Linkov <[email-masked]>
Date: Wed, 21 Nov 2018 01:14:12 +0200

> The proximate cause of the error was likely due to
> my calling `isearch-lazy-highlight-update' outside
> searching (i.e., nil `isearch-mode').  But I think
> there might still be a bug in the Isearch code.

isearch-lazy-highlight-update is not intended
to be used in a window other than the window
where isearch-lazy-highlight-new-loop was called.
It has many dependencies on the original window
being selected.

> The `isearch-lazy-highlight-update' code does this:
>
> (save-selected-window
>   (if (and (window-live-p isearch-lazy-highlight-window)
>            (not (memq (selected-window)
>                 isearch-lazy-highlight-window-group)))
>       (select-window isearch-lazy-highlight-window))
>
> That causes the window in the other frame to be selected.

It should select the same window where
isearch-lazy-highlight-new-loop was called.

> The code then does this:
>
>   (setq window-start (window-group-start))
>   (setq window-end (window-group-end))
>
> This causes `window-end' to be nil.  Should `window-group-*' here
> be passed window `isearch-lazy-highlight-window'?

isearch-lazy-highlight-window should not be passed here
because it's guaranteed to be selected by the code above.