Subject: Re: bug#64724: 30.0.50; Inconsistency between manual, comments in the code, and implementation of point adjustment

From: Ihor Radchenko <[email-masked]>
Date: Fri, 21 Jul 2023 09:11:49 +0000

Stefan Monnier <[email-masked]> writes:

>> 3. I've read that section of the manual and did not find anything about
>>    point ending up not inside, but at the boundary of invisible text.
>
> The boundary is usually considered as "inside" for this specific case.

I did not expect this. It should be clarified, if true. Because the same
paragraph says that point will be moved to the boundary. Combined with
motion to _another_ boundary, I see not how I can understand what is
happening from the info node.

>> 4. I reached to sources and tried to track down the cause, eventually
>>    arriving to `set_point_both'.
>
> Hmm... I'd be very surprised if `set_point_both` is the cause:
> `inhibit-point-motion-hooks` should be non-nil, so that code will simply
> be skipped.
>
> If `inhibit-point-motion-hooks` is nil, please send me the recipe so
> I can try and change the caller that set this var.

You are right.
I now tried

   =word=<point>

M-: (progn (backward-word) (message "%s" (point)))

The message displays point at "w". Yet, when I follow this up with
M-: (point), the output is at "=".

The actual cause if probably `adjust_point_for_property'. Although I do
not fully understand how it works.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>