Subject: Re: bug#31586: 27.0.50; `frame-title-format' doesn't save match data

From: Stefan Monnier <[email-masked]>
Date: Sat, 26 May 2018 16:58:56 -0400

> perform-replace: Args out of range: #<buffer *scratch*>, 0, 1
>
> Backtrace:
>
> Debugger entered--Lisp error: (args-out-of-range #<buffer *scratch*> 0 1)
>   buffer-substring-no-properties(0 1)
>   perform-replace("a" "b" t nil nil nil nil nil nil nil nil)
>   query-replace("a" "b" nil nil nil nil nil)
>   funcall-interactively(query-replace "a" "b" nil nil nil nil nil)
>   call-interactively(query-replace nil nil)
>   command-execute(query-replace)

FWIW, I think this qualifies as a bug in query-replace: Elisp code
should never presume that the match-data is preserved across something
like sit-for, read-char, or any other function which can run process
filters, redisplay, timers, or contains a yield-point.

        Stefan