* bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY
@ 2014-11-27 3:05 Dmitry Gutov
2014-11-27 16:41 ` Eli Zaretskii
0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Gutov @ 2014-11-27 3:05 UTC (permalink / raw)
To: 19201
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY
2014-11-27 3:05 bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY Dmitry Gutov
@ 2014-11-27 16:41 ` Eli Zaretskii
2014-11-28 0:02 ` Dmitry Gutov
0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2014-11-27 16:41 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 19201
> 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.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY
2014-11-27 16:41 ` Eli Zaretskii
@ 2014-11-28 0:02 ` Dmitry Gutov
2014-11-28 8:18 ` Eli Zaretskii
0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Gutov @ 2014-11-28 0:02 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 19201-done
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!
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY
2014-11-28 0:02 ` Dmitry Gutov
@ 2014-11-28 8:18 ` Eli Zaretskii
0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2014-11-28 8:18 UTC (permalink / raw)
To: Dmitry Gutov; +Cc: 19201
> Date: Fri, 28 Nov 2014 02:02:54 +0200
> From: Dmitry Gutov <dgutov@yandex.ru>
> CC: 19201-done@debbugs.gnu.org
>
> On 11/27/2014 06:41 PM, Eli Zaretskii wrote:
>
> > 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.
When looked upon from a user POV, I agree. But from the
implementation POV, I'm telling you: it's a nightmare. The state
machine in handle_stop alone is bad enough. That stuff is in sore
need of refactoring, but I'm too coward^H^H^H^H^H^Hbusy to do that
myself.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-11-28 8:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-27 3:05 bug#19201: 24.4.51; Faulty interaction between overlays with display-related properties in TTY Dmitry Gutov
2014-11-27 16:41 ` Eli Zaretskii
2014-11-28 0:02 ` Dmitry Gutov
2014-11-28 8:18 ` Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.