Subject: Re: bug#21468: 24.5; When next-line (visual) crosses overlay with before-string="\n" point goes to column 0
From: Noam Postavsky <[email-masked]>
To: Eli Zaretskii <[email-masked]>
Cc: [email-masked]
Date: Sun, 13 Sep 2015 13:20:04 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

On Sun, Sep 13, 2015 at 6:30 AM, Eli Zaretskii <[email-masked]> wrote:
> Fixed in commit 6514b30 on master.

Thanks, it works.

> why can't Magit simply change the buffer text to be what it wants to
> display? why does it need to use an overlay string?

In this particular case, the overlays are delimiting a "magit region"
(consisting of whole logical lines touched by Emacs' region), having
them as actual text in the buffer would interfere with point movement
even more.

Or at least, that's what I saw when I tried just now to do something
similar with text properties:

(with-current-buffer (get-buffer-create "*text property test*")
  (erase-buffer)
  (insert-file "next-line-fail.el")
  (let ((pos 65))
    (goto-char pos)
    (insert (propertize (concat (propertize "\s" 'display '(space :height (1)))
                        (propertize "\n" 'line-height t))
                        'face 'highlight))
    (pop-to-buffer (current-buffer))))