Subject: Re: bug#57293: 29.0.50; query-replace with Wdired skips symlink target

From: Mike Kupfer <[email-masked]>
Date: Sat, 20 Aug 2022 18:54:45 -0700

Stefan Kangas wrote:

> Michael Heerdegen <[email-masked]> writes:
> 
> > Mike Kupfer <[email-masked]> writes:
> >
> >> I expect query-replace to ask me about both the file foo and the symlink
> >> target foo.  That's what Emacs 28.1 does, and it's quite handy.
> >> Instead, query-replace asks me only about the file foo, ignoring the
> >> symlink target.
> >
> > Thanks for the report, Mike.  See the new option
> > `wdired-search-replace-filenames' to turn off the new behavior.
> >
> > Maybe turning this new behavior on by default was too much (Juri)?
> 
> Shouldn't we get the Emacs 28 behavior whether or not that option is
> enabled though?  IOW, isn't this just a bug?

The docstring says

  Non-nil to search and replace in file names only.

so it does look like the relevant control.  (But I wouldn't be surprised
if I were missing something.)

I have a slight preference for getting the Emacs 28 behavior by default,
but I'm okay either way.  If there had been a NEWS entry about the new
option (hint hint :-)) I wouldn't have filed a bug.

I agree with Michael's point about "\M-sf".  Right now, you get the
filename-only behavior for isearch via a specific functions and
keybindings, but for query-replace, the behavior is controlled by a user
option.  More consistency between isearch and query-replace seems like
it would be a good thing.

I did notice this NEWS entry:

  *** Search and replace in Dired/Wdired supports more regexps.
  For example, the regexp ".*" will match only characters that are part
  of the file name.  Also "^.*$" can be used to match at the beginning
  of the file name and at the end of the file name.

Does that functionality require wdired-search-replace-filenames to be
non-nil?

cheers,
mike