all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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.