Subject: bug#78737: sit-for behavior changes when byte-compiled

From: Eli Zaretskii <[email-masked]>
Date: Fri, 13 Jun 2025 20:33:59 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: Daniel Colascione <[email-masked]>,  [email-masked],
>   [email-masked]
> Date: Fri, 13 Jun 2025 11:09:33 -0400
> 
> > Specifically, what I'm interested in is how come
> >
> >  (while t
> >    (read-event))
> >
> > cannot be interrupted by C-g, but you seem to be saying that
> >
> >  (while t
> >    (let (evt (read-event))
> >      (do-something-with evt)))
> >
> > _can_ be interrupted?
> 
> Usually the `(do-something-with evt)` part will offer some way to end
> the loop.

How?  If read-event returns the character 7, then the information
about the fact that C-g was typed is lost by the time we get to the
do-something-with part, no?