Subject: bug#49963: 28.0.50; isearch failing in Dired after rectangle-mark-mode and query-replace

From: Stefan Monnier <[email-masked]>
Date: Tue, 10 Aug 2021 16:37:22 -0400

Eli Zaretskii [2021-08-10 19:42:17] wrote:
>> From: Stefan Monnier <[email-masked]>
>> Cc: Eli Zaretskii <[email-masked]>,  [email-masked],  [email-masked],
>>   [email-masked]
>> Date: Tue, 10 Aug 2021 11:56:58 -0400
>> 
>> Lars Ingebrigtsen [2021-08-10 17:44:50] wrote:
>> > Eli Zaretskii <[email-masked]> writes:
>> >> I meant can we please not use add-function and friends.  Please?
>> > There isn't much difference between using add-function and add-hook most
>> > of the time (although here we trip over a `let' binding not doing what
>> > the author thought it did).
>> 
>> FWIW, `add-hook` has the exact same problem with `let` (and we already
>> tripped against this exact same situation with `add-hook` and `let`).
>
> This is a misunderstanding of what bothers me.  The problem is
> discoverability: add-function is not easily discoverable, if it is
> used on an internal function.

I'm sorry, I don't understand.  AFAIK it's used on variables (in the
present case it's used on the variable `isearch-filter-predicate`)
holding functions, not on internal functions.

> IOW, the documentation of C-s doesn't tell you that its operation
> could be affected by that "hook".

You mean the doc of `C-s` should state that it's affected by
`isearch-filter-predicate`?

Fine by me, but I don't know what this has to do with `add-function`
(`isearch-filter-predicate` existed before `add-function` was invented).

> By contrast, if we use some other mechanism, like call a function via
> a variable or call a hook,

Hmm... again I don't understand: we do "call a function via a variable",
the variable being `isearch-filter-predicate`.

        Stefan