Subject: bug#64596: 30.0.50; On FIXME: in src/buffer.c:1481 (force-mode-line-update)

From: Eli Zaretskii <[email-masked]>
Date: Sun, 16 Jul 2023 22:27:06 +0300

> From: Ihor Radchenko <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, [email-masked]
> Date: Sun, 16 Jul 2023 10:22:38 +0000
> 
> Stefan Monnier <[email-masked]> writes:
> 
> >>   . prevent_redisplay_optimizations_p flag of a buffer
> >>   . must_be_updated_p flag of a window
> >
> > No idea what these mean.
> > The name `must_be_updated_p` makes it sound to me like it's redundant
> > with the `redisplay` flag above.
> 
> I agree about must_be_updated_p. I had exactly same though that it is
> redundant with redisplay flag when reading the code.

Actually, the must_be_updated_p flag is not for xdisp.c, i.e. not for
redisplay_window and its subroutines.  It is for update_window, which
is the last, 3rd, stage of a redisplay cycle, most of the code of
which is in dispnew.c.  That's where the newly computed glyph matrix
of a window is compared to its current matrix, and Emacs decides what,
if anything, should be actually written to the glass.  What happens
with this flag is that redisplay_window and friends _set_ this flag
for windows that dispnew.c _must_ update.  The flag is tested in
dispnew.c, see there for its use and comments.

So it was wrong for me to include that flag in the list which started
this sub-thread.  Sorry about that.