Subject: bug#31276: 27.0.50; "Spurious" empty first line from before-string

From: Stefan Monnier <[email-masked]>
Date: Thu, 26 Apr 2018 16:11:38 -0400

Package: Emacs
Version: 27.0.50

Try the following:

    % src/emacs -Q etc/NEWS --eval '(let ((ol (make-overlay (+ (point) 10) (+ (point) 10)))) (overlay-put ol (quote before-string) "\nhello\n"))'
    C-u 1 C-v

You should see that the "scroll by 1 line" didn't actually scroll: it just
removed the "GNU Emacs " from your sight and left an empty line instead.

Arguably, this is right: `window-start` has to be one of the buffer's
positions, so it has to be either before or after the overlay, and the
overlay's string starts with a line-feed, so if window-start is placed
there, the window will start with an empty line.

But arguably this is also wrong: there is no empty-line at that position
in the buffer's normal rendering.

Whether you consider this as a bug report or a feature request, my point
is that when the window starts with a before/after-string and that
string starts with a line-feed, we should skip that line-feed rather
than waste a perfectly good line.

        Stefan