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

From: Eli Zaretskii <[email-masked]>
Date: Sat, 05 Jul 2025 12:47:57 +0300

> Date: Sat, 05 Jul 2025 08:17:23 +0000
> From: Pip Cet <[email-masked]>
> Cc: [email-masked], [email-masked], [email-masked]
> 
> "Eli Zaretskii" <[email-masked]> writes:
> 
> >> Date: Fri, 04 Jul 2025 18:16:29 +0000
> >> From: Pip Cet <[email-masked]>
> >> Cc: Eli Zaretskii <[email-masked]>, [email-masked], [email-masked]
> >>
> >> "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").
> 
> > C-] is documented in the manual as part of this catch-all:
> 
> >      Aside from this, any other character exits the ‘query-replace’, and
> >   is then reread as part of a key sequence.  Thus, if you type ‘C-k’, it
> >   exits the ‘query-replace’ and then kills to end of line.  In particular,
> >   ‘C-g’ simply exits the ‘query-replace’.
> 
> That is no longer accurate if we apply Stefan's fix, which will prevent
> C-] from being reread over and over again in Mike's loop.

Which is why I suggested to augment that.

> The last sentence contradicts the rest of it, too: if C-g is reread,
> it doesn't simply exit the 'query-replace'.

When we know what change we will install and how it will affect C-g,
we can make that part more accurate.

> So the documentation in the manual is contradictory and inaccurate, and
> the documentation in query-replace-help is incomplete.

Are you talking about the documentation on the release branch (and the
behavior on that branch), or are you talking about the master branch?
If the latter, then this discussion is precisely how to make the code
behave like the documentation used to say.