all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* before-string property has no effect if display property is empty string
@ 2007-09-18 21:57 Joe Wells
  2007-09-19 15:48 ` Richard Stallman
  0 siblings, 1 reply; 6+ messages in thread
From: Joe Wells @ 2007-09-18 21:57 UTC (permalink / raw)
  To: bug-gnu-emacs

The documentation leads me to believe that the before-string and
display properties of an overlay should be orthogonal.  However, the
before-string is not displayed if the display property is the empty
string.

Reproduce by evaluating this code:

  (let ((buf (get-buffer-create "foo")))
    (with-current-buffer buf
      (display-buffer buf)
      (erase-buffer)
      (dolist (o (overlays-in (point-min) (point-max)))
        (delete-overlay o))
      (insert "ABC")
      (let ((o (make-overlay 2 3))
            (s (make-string 3 ?X)))
        (overlay-put o 'display "")
        (overlay-put o 'before-string s))))

You will see the “foo” window pop up and in the window you will see
“AC”.  I expected that instead “AXXXC” would be shown.

This seems like a bug.

Thanks for your time in considering this bug report.

Joe

======================================================================
In GNU Emacs 22.1.1 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
 of 2007-06-27 on artemis
Windowing system distributor `The X.Org Foundation', version 11.0.70000000
configured using `configure  '--prefix=/home/jbw/local2' '--enable-debug' '--disable-nls' '--with-x-toolkit=gtk' 'CFLAGS=-O0 -g3 -ggdb''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: jbw
  value of $LANG: nil
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  TeX-source-specials-mode: t
  auto-fill-function: do-auto-fill
  shell-dirtrack-mode: t
  outline-minor-mode: t
  desktop-save-mode: t
  url-handler-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-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
  temp-buffer-resize-mode: t
  size-indication-mode: t
  line-number-mode: t
  transient-mark-mode: t




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: before-string property has no effect if display property is empty string
  2007-09-18 21:57 before-string property has no effect if display property is empty string Joe Wells
@ 2007-09-19 15:48 ` Richard Stallman
  2007-09-19 16:07   ` Joe Wells
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Stallman @ 2007-09-19 15:48 UTC (permalink / raw)
  To: Joe Wells; +Cc: emacs-devel

    The documentation leads me to believe that the before-string and
    display properties of an overlay should be orthogonal.  However, the
    before-string is not displayed if the display property is the empty
    string.

I think the thing to do is document this.

Does the same happen for the after-string?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: before-string property has no effect if display property is empty string
  2007-09-19 15:48 ` Richard Stallman
@ 2007-09-19 16:07   ` Joe Wells
  2007-09-20 16:34     ` Richard Stallman
  0 siblings, 1 reply; 6+ messages in thread
From: Joe Wells @ 2007-09-19 16:07 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     The documentation leads me to believe that the before-string and
>     display properties of an overlay should be orthogonal.  However, the
>     before-string is not displayed if the display property is the empty
>     string.
>
> I think the thing to do is document this.

This is not clear.  For example, linum.el makes empty overlays with
before-string properties and no display property at all.  And this
works.  So why shouldn't it work when there is a display property that
is the empty string?

> Does the same happen for the after-string?

It works fine with after-string.  The following expression displays
“AXXXC” (correctly):

  (let ((buf (get-buffer-create "foo")))
    (with-current-buffer buf
      (display-buffer buf)
      (erase-buffer)
      (dolist (o (overlays-in (point-min) (point-max)))
        (delete-overlay o))
      (insert "ABC")
      (let ((o (make-overlay 2 3))
            (s (make-string 3 ?X)))
        (overlay-put o 'display "")
        (overlay-put o 'after-string s))))

Given that it works with after-string, this is evidence for
interpreting the behavior with before-string as a bug.

-- 
Joe

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: before-string property has no effect if display property is empty string
  2007-09-19 16:07   ` Joe Wells
@ 2007-09-20 16:34     ` Richard Stallman
  2007-09-20 17:35       ` Joe Wells
  0 siblings, 1 reply; 6+ messages in thread
From: Richard Stallman @ 2007-09-20 16:34 UTC (permalink / raw)
  To: Joe Wells; +Cc: emacs-devel

    >     The documentation leads me to believe that the before-string and
    >     display properties of an overlay should be orthogonal.  However, the
    >     before-string is not displayed if the display property is the empty
    >     string.
    >
    > I think the thing to do is document this.

    This is not clear.  For example, linum.el makes empty overlays with
    before-string properties and no display property at all.  And this
    works.  So why shouldn't it work when there is a display property that
    is the empty string?

Logically it ought to work, but do we have anyone who can debug it and
fix it?  Would you like to debug it?

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: before-string property has no effect if display property is empty string
  2007-09-20 16:34     ` Richard Stallman
@ 2007-09-20 17:35       ` Joe Wells
  2007-09-23  9:07         ` Richard Stallman
  0 siblings, 1 reply; 6+ messages in thread
From: Joe Wells @ 2007-09-20 17:35 UTC (permalink / raw)
  To: rms; +Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     >     The documentation leads me to believe that the
>     >     before-string and display properties of an overlay should
>     >     be orthogonal.  However, the before-string is not
>     >     displayed if the display property is the empty string.
>     >
>     > I think the thing to do is document this.
>
>     This is not clear.  For example, linum.el makes empty overlays
>     with before-string properties and no display property at all.
>     And this works.  So why shouldn't it work when there is a
>     display property that is the empty string?
>
> Logically it ought to work, but do we have anyone who can debug it and
> fix it?  Would you like to debug it?

I am too busy with my job to debug it.

I don't object to documenting it as a bug (hopefully to be fixed
someday).  I think it is not the right choice to document it as the
correct behavior.

-- 
Joe

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: before-string property has no effect if display property is empty string
  2007-09-20 17:35       ` Joe Wells
@ 2007-09-23  9:07         ` Richard Stallman
  0 siblings, 0 replies; 6+ messages in thread
From: Richard Stallman @ 2007-09-23  9:07 UTC (permalink / raw)
  To: Joe Wells; +Cc: emacs-devel

I don't believe in "documenting bugs".  Bugs should be fixed,
not treated as permanent.

Would someone please debug this?


    The documentation leads me to believe that the before-string and
    display properties of an overlay should be orthogonal.  However, the
    before-string is not displayed if the display property is the empty
    string.

    Reproduce by evaluating this code:

      (let ((buf (get-buffer-create "foo")))
	(with-current-buffer buf
	  (display-buffer buf)
	  (erase-buffer)
	  (dolist (o (overlays-in (point-min) (point-max)))
	    (delete-overlay o))
	  (insert "ABC")
	  (let ((o (make-overlay 2 3))
		(s (make-string 3 ?X)))
	    (overlay-put o 'display "")
	    (overlay-put o 'before-string s))))

    You will see the foo window pop up and in the window you     will see
    AC.  I expected that instead AXXXC would be shown.

    > Does the same happen for the after-string?

    It works fine with after-string.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-09-23  9:07 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-18 21:57 before-string property has no effect if display property is empty string Joe Wells
2007-09-19 15:48 ` Richard Stallman
2007-09-19 16:07   ` Joe Wells
2007-09-20 16:34     ` Richard Stallman
2007-09-20 17:35       ` Joe Wells
2007-09-23  9:07         ` Richard Stallman

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.