Subject: Re: bug#78916: 31.0.50; C-g fails to exit loop

From: Pip Cet <[email-masked]>
Date: Fri, 04 Jul 2025 18:16:29 +0000

"Stefan Monnier" <[email-masked]> writes:

>> (However, there are other good reason not to apply this patch, and
>> simply fix read-key to optionally allow quitting instead.
>
> That wouldn't fix the `C-]` case.

I'm not sure it's that important.  It's not documented in
query-replace-help, and I'm not really sure whether it should behave
like C-g or ESC (or should ESC be fixed, too?) or any unbound key (like
"r").

But, sure, if we want to change the behavior of C-], that requires a
change beyond making C-g quit in our read-key call, because C-] is
ordinary input (and the binding in the map is relevant), unlike C-g.

The C-g case is documented (because C-g is documented for all of Emacs,
and exceptions are noted) and will behave inconsistently (interrupting a
timer in read-key will cause read-key to signal quit; if there's no
timer, we look up the key and perform a (keyboard-quit)) in the current
proposal.  That may or may not be acceptable; adding the may-quit option
to read-key would fix the problem for most callers, including this one,
so it's a better solution.

Pip