emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Point stuck with adjacent overlays and invisibility spec


From: Chong Yidong
Subject: Re: Point stuck with adjacent overlays and invisibility spec
Date: Wed, 01 Mar 2006 00:05:37 -0500

(This is based on Ralf Angeli's bug report of Feb 21)

The problem seems to be that adjust_point_for_property fails when we
have invisible text with ellipsis immediately after a 'display string.
I modified Ralf's test case slightly:

  (progn
    (pop-to-buffer (get-buffer-create "*foo*"))
    (erase-buffer)
    (insert "1234567")
    (goto-char (point-min))
    (add-to-invisibility-spec '(outline . t))
    (let ((ov1 (make-overlay 4 5))
          (ov2 (make-overlay 5 6)))
      (overlay-put ov1 'display "xxx"))
      (overlay-put ov2 'invisible 'outline))

This creates a buffer with the contents 1234567, where 4 is overlaid
with the display string "xxx" and 5 is invisible with an ellispis:

123xxx...67

With point on 1, do C-f.  When point reaches 4, I get a Lisp error:

  Debugger entered--Lisp error: (args-out-of-range 5 5)

with no backtrace.  The buffer's redisplay then becomes screwed up.

Everything works as expected if we use '(outline . nil) for the
invisiblity spec, i.e. with no ellipsis.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]