Subject: bug#36803: 27.0.50; Update mode-line of every window when compilation ends

From: Stefan Monnier <[email-masked]>
Date: Fri, 26 Jul 2019 14:53:43 -0400

>> The "process status" I'm referring to above is another kind of "process
>> status" in the mode-line: that of `mode-line-process` which is usually
>> buffer-local and only reflects the status of the process running in that
>> same buffer.
>
> But the recipe uses "C-x 2" several times, so all the windows display
> the same buffer.  And yet one of them has its mode line not updated
> after the process exist.

Right: there are 2 windows displaying the original buffer, plus a third
one displaying the compilation buffer.  The C code for process sentinels
makes sure that the mode-line of the window showing the compilation
buffer get updated (for the benefit of mode-line-process, presumably),
but none of the others.
As it so happens, one of the others also gets updated because it's the
currently selected_window.

> Then we should update all mode lines when the status changes, and we
> should not require any Lisp to force that update.

I don't see why we should do that every time a process sentinel is run,
while it's only needed for the sentinel of the compilation processes.

Especially since it only saves us one of the (force-mode-line-update t)
in my patch (the one that's in the process sentinel) but not the other
(the one that's in the code that launches the process).

        Stefan