Subject: bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY

From: Dmitry Gutov <[email-masked]>
Date: Thu, 27 Nov 2014 05:05:16 +0200

Calling the command defined below results in different behaviors between
a graphical frame and a text terminal.

(defun display-test ()
  (interactive)
  (pop-to-buffer (get-buffer-create "display-test"))
  (insert "aaa\nbbb\nccc\nddd\neee")
  (goto-char 14)
  (let ((ias (make-overlay 4 16))
        (bsf (make-overlay 1 4)))
    (overlay-put ias 'invisible t)
    (overlay-put ias 'after-string "\nxxx\nyyy\nzzz")
    (overlay-put bsf 'before-string
                 (propertize "!"
                             'display
                             (list 'left-fringe
                                   'question-mark
                                   'warning)))))

Evaluate this, then type `M-x display-test'.

In graphical mode, I see what I'd expect:

aaa
xxx
yyy
zzz
eee

(with a fringe indicator on the first line),

whereas when trying this in terminal, I see:

aaa
eee

Originally reported in https://github.com/flycheck/flycheck/issues/526.

In GNU Emacs 24.4.51.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2014-11-16 on axl
Repository revision: c613f4d6c12ad7a8ebbc88dcef48949c6a775996
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04.1 LTS