--- Begin Message ---
Subject: |
24.4.51; Faulty interaction between overlays with display-related properties in TTY |
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
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY |
Date: |
Fri, 28 Nov 2014 02:02:54 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 |
On 11/27/2014 06:41 PM, Eli Zaretskii wrote:
For the record, this has nothing to do with TTY vs GUI frames. You
can have the same problem on a GUI frame if you use a bogus symbol for
the fringe bitmap, like 'foobar instead of 'question-mark.
Makes sense.
Evidently, the Founding Fathers never meant for us to use display
properties on after-strings that specify display on the fringe. Emacs
22 and 23 infloop if you try your recipe on a TTY there. Emacs 24.1
is the first release that doesn't, and it already has this bug.
The given example uses before-string, but I guess you mean both.
That's odd, though, because when used with overlays, before- and
after-strings are the most flexible for this and similar use cases.
Fixed in 6b765b8 on the emacs-24 branch.
Works fine. Thanks!
--- End Message ---