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

From: Eli Zaretskii <[email-masked]>
Date: Fri, 26 Jul 2019 11:13:12 +0300

> Date: Thu, 25 Jul 2019 17:59:00 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > If my bisection is correct, then this regression dates back from
> > 
> >     645c8597e7f9fbc90ffe227d2be8ce383b0777ae
> >     * src/process.c (status_notify): Avoid global redisplay (bug#11822)
> >     http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=645c8597e7f9fbc90ffe227d2be8ce383b0777ae
> 
> Makes sense, I will look into why this change was made.

Stefan, I'm looking and looking, and don't understand why that change
made sense.  The process-status indication in the mode line is shown
in all windows, so status_notify is exactly the place where we should
trigger update of all mode lines.  Otherwise, we will have to sprinkle
force-mode-line-update calls all over the place (and it still won't
work well in the cases where the default sentinel is used, and this no
Lisp is involved).

So I think we should restore the old code, i.e. revert this part of
the above-mentioned commit:

  --- a/src/process.c
  +++ b/src/process.c
  @@ -6694,10 +6694,12 @@ status_notify (struct Lisp_Process *deleting_process,
	    p->update_tick = p->tick;
	    /* Now output the message suitably.  */
	    exec_sentinel (proc, msg);
  +         if (BUFFERP (p->buffer))
  +           /* In case it uses %s in mode-line-format.  */
  +           bset_update_mode_line (XBUFFER (p->buffer));
	  }
       } /* end for */

  -  update_mode_lines = 24;  /* In case buffers use %s in mode-line-format.  */
     return got_some_output;
   }

Am I missing something?