GNU bug report logs - #1336
after-string not displayed when overlay has a before-string and image display property

Previous Next

Package: emacs;

Reported by: "Tim Toolan" <toolan <at> ele.uri.edu>

Date: Thu, 13 Nov 2008 13:15:02 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 1336 in the body.
You can then email your comments to 1336 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1336; Package emacs. Full text and rfc822 format available.

Acknowledgement sent to "Tim Toolan" <toolan <at> ele.uri.edu>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: "Tim Toolan" <toolan <at> ele.uri.edu>
To: bug-gnu-emacs <at> gnu.org
Subject: after-string not displayed when overlay has a before-string and image display property
Date: Thu, 13 Nov 2008 08:08:53 -0500
When an overlay has both a before-string and an after-string, and it
has a display property which is an image, the after-string will not be
displayed.

I'm assuming this macro of Joe Wells' in my reproduction code below:

  (defmacro test-in-fresh-buffer-and-window (&rest body)
    `(progn
       (delete-other-windows)
       (kill-buffer (get-buffer-create "xyzzy"))
       (let ((xyzzy-buf (get-buffer-create "xyzzy")))
         (set-buffer xyzzy-buf)
         (display-buffer xyzzy-buf)
         ,@body
         )))

Reproduce this problem with:

  (test-in-fresh-buffer-and-window
   (insert "ABCD \n")
   (let ((o1 (make-overlay 2 3)))
     (overlay-put o1 'before-string "B1")
     (overlay-put o1 'after-string "A1")
     (overlay-put o1 'display '(image :data "#define x_width 8\n#define x_height 8\nstatic unsigned char x_bits[] = {0xff, 0x81, 0xbd, 0xa5, 0xa5, 0xbd, 0x81, 0xff };" :type xbm))))

The above expression should display "ABB1(image)A1CD".
The above expression wrongly displays "ABB1(image)CD".

Note that the problem goes away when any of the following conditions 
are met:
 1) The display property is something other than an image (like a string).
 2) There is no before-string, only an after-string.
 3) There is another overlay that covers the same region and has a
    before-string (if it only has an after-string that will not be
    displayed either).
 4) If there is a higher priority overlay that covers the same region,
    and has a display property set which is not an image.

Note that this problem also exists in the current CVS version of emacs.

Regards,

Tim


In GNU Emacs 22.2.1 (x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2008-06-12 on aquarius
Windowing system distributor `The X.Org Foundation', version 11.0.10300000
configured using `configure  '--prefix=/usr' '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--program-suffix=-emacs-22' '--infodir=/usr/share/info/emacs-22' '--without-carbon' '--with-sound' '--with-x' '--with-toolkit-scroll-bars' '--with-jpeg' '--with-tiff' '--with-gif' '--with-png' '--with-xpm' '--with-x-toolkit=athena' '--without-gtk' '--without-hesiod' '--with-kerberos' '--with-kerberos5' '--libdir=/usr/lib64' '--build=x86_64-pc-linux-gnu' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'CFLAGS=-march=nocona -pipe -O2' 'LDFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: C
  locale-coding-system: nil
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  show-paren-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  unify-8859-on-encoding-mode: t
  utf-translate-cjk-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t






Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#1336; Package emacs. Full text and rfc822 format available.

Acknowledgement sent to "Tim Toolan" <toolan <at> ele.uri.edu>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. Full text and rfc822 format available.

Message #10 received at 1336 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: "Tim Toolan" <toolan <at> ele.uri.edu>
To: 1336 <at> debbugs.gnu.org
Subject: clarification of what conditions produce bug 1336
Date: Thu, 13 Nov 2008 10:08:52 -0500
Hi,

After looking into this bug further, I can clarify exactly what is happening.

When an overlay has a display property which is an image which is  
displayed, and exactly one overlay (it does not have to be the one  
which contains the image) has a before-string property that occurs at  
the start of the overlay with the image, then all after-strings in all  
overlays that end at the end of the image will not appear.

If there are any other number of overlays (including zero) with  
before-string properties that occur at the beginning of the image, the  
bug does not occur.

Hope this new information helps find the problem.

Regards,

Tim





Reply sent to Chong Yidong <cyd <at> stupidchicken.com>:
You have taken responsibility. (Fri, 25 Jun 2010 00:32:01 GMT) Full text and rfc822 format available.

Notification sent to "Tim Toolan" <toolan <at> ele.uri.edu>:
bug acknowledged by developer. (Fri, 25 Jun 2010 00:32:02 GMT) Full text and rfc822 format available.

Message #15 received at 1336-done <at> debbugs.gnu.org (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: "Tim Toolan" <toolan <at> ele.uri.edu>
Cc: 1336-done <at> debbugs.gnu.org
Subject: Re: after-string not displayed when overlay has a before-string and
	image display property
Date: Thu, 24 Jun 2010 20:31:48 -0400
> When an overlay has both a before-string and an after-string, and it
> has a display property which is an image, the after-string will not be
> displayed.

Thanks for the bug report.  I finally tracked the problem down, and have
committed a fix.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 23 Jul 2010 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 14 years and 333 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.