[Top][All Lists]
[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.
- Re: Point stuck with adjacent overlays and invisibility spec,
Chong Yidong <=