>> Also noticed that doing the first replacement always raises an error: >> >> Debugger entered--Lisp error: (error "Match data clobbered by buffer >> modification hooks") >> replace-match("!" nil nil) >> replace-match-maybe-edit("!" nil nil nil (672 673 #<buffer char>) nil) >> perform-replace("7" "!" t t nil nil nil nil nil nil nil) >> query-replace-regexp("7" "!" nil nil nil nil nil) >> funcall-interactively(query-replace-regexp "7" "!" nil nil nil nil nil) >> command-execute(query-replace-regexp) > > Do I interpret the code in replace_match correctly: this error doesn't > even mean the match data has been clobbered - only that modification > hooks called searching functions? I don't know what the referenced > search_regs.num_regs exactly contains. But we already seem to ensure > not to clobber match data.
It fails in emacs-30, but not in emacs-29. So this is a regression.