[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19201: 24.4.51; Faulty interaction between overlays with display-rel
From: |
Eli Zaretskii |
Subject: |
bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY |
Date: |
Thu, 27 Nov 2014 18:41:51 +0200 |
> From: Dmitry Gutov <dgutov@yandex.ru>
> 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
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.
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.
Fixed in 6b765b8 on the emacs-24 branch.