Subject: bug#71927: 29.4; ibuffer-do-isearch and ibuffer-do-isearch-regexp not prompting for input

From: Juri Linkov <[email-masked]>
Date: Thu, 04 Jul 2024 19:04:42 +0300

>>> FWIW, AFAICT everything is working correctly, it's just that the
>>> "Operation finished" message hides the prompt.  ibuffer-do-isearch
>>> should tell define-ibuffer-op not to display that message, somehow.
>>
>> I don't see how this could be considered "correct": the "Operation
>> finished" message is supposed to be shown only after the Isearch is
>> finished in all the marked buffer, not before.  It looks like we need
>> a function that will not return until all the buffers where searched,
>> because that's what define-ibuffer-op expects.  Don't you agree?

It intentionally uses 'no-recursive-edit' set to t, so ibuffer-do-isearch
correctly exits immediately while leaving isearch-mode enabled.

> The attached patch appears to DTRT, but I only tested it briefly.
> ...
>  (define-ibuffer-op ibuffer-do-isearch ()
>    "Perform a `isearch-forward' in marked buffers."
>    (:interactive ()
> -   :opstring "searched in"
> +   :no-opstring t

Thanks for the patch.  I confirm this is the right thing to do.
Maybe instead of :no-opstring would be better to use some special value
like :opstring 'no?  But I'm not sure if this is better than :no-opstring.