Subject: Re: bug#47894: 28.0.50; isearch does not work if enable-recursive-minibuffers is on and some input method is set.

From: Gregory Heytings <[email-masked]>
Date: Wed, 21 Apr 2021 07:49:28 +0000

>> Okay, thanks for the clarification.  IIUC the right way to determine 
>> what the "current buffer" is (from a user's point of view: in which 
>> buffer will "a" be added if I press "a") is what I do: (window-buffer 
>> (selected-window)) and not what I did: (current-buffer)?
>
> For users (eq (current-buffer) (window-buffer)) _should_ be invariant. 
> When and if an application temporarily violates that invariant, it 
> should reestablish it before the user can see it.  So if an application 
> calls `display-buffer' in a state where the invariant does not hold, it 
> should handle that case including the complication that `display-buffer' 
> might have selected another window.  And it goes without saying that a 
> display buffer action should never violate that invariant.
>

I see.  So in this case the bug was elsewhere as I thought, it's 
display-buffer-select which was wrong (as you said it should have used 
pop-to-buffer) and not the code I added in isearch-post-command-hook. 
Anyway using (window-buffer (selected-window)) should not harm, and is an 
extra safety against display buffer actions doing something weird.