Subject: Re: bug#17892: 24.3; display error when mode-line-format is set to nil
From: Eli Zaretskii <[email-masked]>
To: Joost Kremers <[email-masked]>
Cc: [email-masked]
Date: Tue, 01 Jul 2014 20:20:28 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Joost Kremers <[email-masked]>
> Date: Tue, 01 Jul 2014 10:17:03 +0200
> 
> - Start Emacs with `emacs -Q -nw'
> - load a (longish) text file (should be more than one screen full of text)
> - (set-window-margins nil 40 40) ; use values suitable for the window
> - (setq-local mode-line-format nil)
> 
> At this point, the text is centered on the screen, except for the last
> line of the file (the one that is displayed where the mode line would
> be). Instead of having a large left margin, it is displayed with a
> margin of 0.

For the record, this bug was there since Emacs 21.

> This only occurs when Emacs is run without GUI, regardless of whether
> it's on a terminal emulator or a Linux console.

No, the bug was present in the GUI display as well, but it was almost
impossible to see it on GUI frames.  That's because GUI frames
allocate their glyph matrices with dimensions larger than what you
normally see, to be able to display the smallest frame's font, if and
when it is used in some face.  So the glyph row where this bug was
present is almost never used for displaying normal text in the extra
line vacated by the mode line whose format is nil.

By contrast, text-mode frames allocate the glyph matrices of precisely
the dimensions they need, so when the mode line is switched off, its
glyph row is always reused for displaying the extra line of text.

It seems like a rainy day today, so I fixed this bug in revision
117336 on the emacs-24 branch.