Subject: Re: bug#63825: 29.0.90; The header line should be hidden when empty

From: Eli Zaretskii <[email-masked]>
Date: Thu, 01 Jun 2023 19:14:29 +0300

> From: Spencer Baugh <[email-masked]>
> Date: Thu, 01 Jun 2023 09:37:38 -0400
> 
> It would be nice if the header line was hidden when it was empty, not
> just when header-line-format was nil.  That reduces a bit of visual
> noise and gives one more line of text in some buffers.

We could maybe do this optionally (although I don't yet see why we
should, see below), but we cannot do this unconditionally: it's an
incompatible change in eons-long behavior.

> A concrete use case is with which-func-mode:
> 
> 1. emacs -Q
> 2. (setq-default header-line-format
>      '((which-func-mode ("" which-func-format " "))))
> 3. This nicely adds the current function name to the header in code
> buffers, but in buffers not supported by which-function-mode (text-mode,
> for example) the header line is empty and ugly.

header-line-format supports :eval and :when, so why cannot
which-function-mode use those to yield nil when there's nothing to
show?

IOW, instead of introducing a new and breaking behavior, why not use
the (quite elaborate and flexible) features we already have?

Am I missing something?