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

From: Juri Linkov <[email-masked]>
Date: Fri, 23 Apr 2021 00:51:32 +0300

Hi Michael,

> Do you ask me?

Yes.

> I had hoped we somehow find a better solution for the whole complex (of
> searching and replacing file names in Dired/WDired).  I don't object to
> give such a hint, but I don't find the approach very... aesthetic.

I intended to continue searching for a better solution,
but when I tried to perform query-replace in Wdired,
it fails with the error:

Debugger entered--Lisp error: (error "Match data clobbered by buffer modification hooks")
  replace-match("to" nil t)
  replace-match-maybe-edit("to" nil t nil (883 890 #<buffer test>) nil)
  perform-replace(#("from" 0 7 (isearch-case-fold-search t isearch-regexp-function nil)) "to" t nil nil nil nil nil nil nil nil)
  query-replace(#("from" 0 7 (isearch-case-fold-search t isearch-regexp-function nil)) "to" nil nil nil nil nil)
  funcall-interactively(query-replace #("from" 0 7 (isearch-case-fold-search t isearch-regexp-function nil)) "to" nil nil nil nil nil)
  call-interactively(query-replace nil nil)
  command-execute(query-replace)

This is something new, maybe caused by some recent changes.
But I can't find anything suspicious in the commit history of replace.el.

Do you see the same error?