You might want to check with Kyle onthis. I know there was a zero-length
extent bug.
andy
At 11:23 PM 4/3/01 -0700, Michael Toomim wrote:
;;; Note: I posted the following message a couple of days ago, but had
an
;;; invalid return address and so haven't recieved a reply. My apologies
;;; go out to anyone who had mailed me an answer in vain!
I have noticed xemacs' behaviour to be inconsistent with the
documentation, when inserting text onto certain zero-length extents.
According to the info xemacs lisp reference and comments in extents.c,
insertion at a zero-length extent with the properties start-open and
end-closed (like the extent (5, 5]) should go before the extent:
----
extents.c:
"Insertion at the position of a zero-length extent ... goes before the
extent if it is open-closed."
Info - extent endpoints:
"Insertion at the position of a zero-length extent ... goes before the
extent if it has the `start-open' property "
----
Thus, for the above extent, if one inserts the text "###" at position 5 in
the buffer, the documentation implies that the extent would change to
(8, 8]. This doesn't happen. With xemacs version 21.1, patches 12 and 9,
the extent instead expands to include the inserted text (like the extent
[5, 5] does) -- causing the extent to change to (5, 8].
The following e-lisp code, according to the documentation, should insert
"1234###56789" into the buffer, un-colored, with a zero-length extent
before the 5. Instead, it creates an extent covering the "###", making
those characters green.
(save-excursion
(goto-char 1)
(insert "123456789\n")
(let ((ext (make-extent 5 5)))
(set-extent-properties ext '(start-open t
end-closed t
face green))
(goto-char 5)
(insert "###")
(message "The extent is now %S" ext)))
The more recent stable versions of xemacs don't seem to mention any fixes
of this nature. Can anyone verify this on a new release? Is this a true
xemacs bug (or a documentation bug?)?
Thank you,
Michael Toomim