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

From: Eli Zaretskii <[email-masked]>
Date: Fri, 13 Sep 2013 11:02:24 +0300

> From: Jambunathan K <[email-masked]>
> Cc: [email-masked]
> Date: Fri, 13 Sep 2013 11:45:57 +0530
> 
> Jambunathan K <[email-masked]> writes:
> 
> > You asked for a wall-of-text.  Here you go.
> 
> >From a philosphical standpoint, the Info manual makes the following
> observation.
> 
> ,----  (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.
> `----
> 
> I think this is relevant to the discussion at hand.

Sorry, I don't see how it is relevant.  The issue at hand is not what
are text properties and what they aren't in general.  The issue is
specifically how point-entered and point-left hooks should be called,
and on what conditions.

Your references to a comment in intervals.c is a methodological
mistake, because (a) it takes an implementation peculiarity as a sign
of something that should be present in the documentation, and (b) it
side-tracks the discussion into the area of "intervals" and what they
are, something that the Lisp level should be oblivious to.

So I suggest to return to the Lisp level, where there are no
intervals, only text properties that are present or absent at certain
buffer positions.

To make my point clear: it makes very little sense to me to invoke the
motion hooks depending on whether some other text properties changed
as well.  Motion hooks should have no relation whatsoever to any other
text property, such as face or whatever.

So, to me, the code definitely has some bug, the question is which one
and how to fix it.  It is not easy to know how to fix it, because the
documentation is ambiguous and can be interpreted in more than one way
(of which you picked up one).  We should agree on the interpretation
before we decide how to fix the code and the doc.