Subject: Re: bug#14013: 24.3.50; dired-isearch-filenames-regexp is matching text outside filenames

From: Michael Heerdegen <[email-masked]>
Date: Wed, 16 Feb 2022 01:56:56 +0100

Juri Linkov <[email-masked]> writes:

> >>  (defun wdired-change-to-wdired-mode ()
> >> @@ -238,8 +239,9 @@ wdired-change-to-wdired-mode
> >>    (setq-local wdired--old-point (point))
> >>    (wdired--set-permission-bounds)
> >>    (setq-local query-replace-skip-read-only t)
> >> -  (add-function :after-while (local 'isearch-filter-predicate)
> >> -                #'wdired-isearch-filter-read-only)
> >> +  (add-function :around (local 'isearch-search-fun-function)
> >> +                #'dired-isearch-search-filenames)
> >> +  (setq-local replace-re-search-function #'dired-isearch-search-filenames)
> >
> > And: Is it intended that this is unconditional (I would expect a
> > `dired-isearch-filenames-mode' test)?
>
> Currently it is unconditional when it's using isearch-filter-predicate.
> So maybe it should be kept this way since it's what was used for many years?
> Or is there a reason to change the current behavior?

Ok, then better let's keep it.

A different thing: I found that

| + (setq-local replace-re-search-function #'dired-isearch-search-filenames)

is not correct - of course, `dired-isearch-search-filenames' is a higher
order function (used for the around advice), not something suitable for
searching.  With the patch installed query-replace in wdired errors.

What's the correct value - the current binding of
`isearch-search-fun-function'?

Thanks,

Michael.