Subject: bug#15312: Info (point-entered, point-left): Doc incomplete, hence incorrect

From: Stefan Monnier <[email-masked]>
Date: Fri, 13 Sep 2013 09:12:49 -0400

> ,----  (info "(elisp) Not Intervals")
> | "What are the properties of this character?"  So we have decided these
> | are the only questions that make sense; we have not implemented asking
> | questions about where intervals start or end.
> `----

We should indeed amend the above: while text-properties indeed only
apply to individual characters, and are not intervals (contrary to
overlays), there are several places where we consider runs of
consecutive characters that share the same property value (and more
specifically, we use `eq' as the equality predicate in those cases).

This is the case for example for `mouse-face' since we don't just want
to highlight the character under the mouse.

It's also the case for point-entered/left, otherwise "entering/leaving"
is kind of meaningless (remember that point is never in/on a character,
but always between 2 characters).

It can be important to know how the boundaries of such regions is
determined (i.e. by checking `eq'uality of property value of consecutive
characters), since it is sometimes necessary to copy such a value in
order to explicitly split such an "interval" (e.g. if two consecutive
words need to use `mouse-face' with the same face, but where the two
words should not be highlighted together).

Other than the above 3 properties, I also know of `display',
`font-lock-multiline', and `jit-lock-defer-multiline' behaving in
this way.  Any other?

I think rather than "intervals", we could call those "runs".

        Stefan