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

From: Ihor Radchenko <[email-masked]>
Date: Thu, 20 Jul 2023 09:51:52 +0000

Eli Zaretskii <[email-masked]> writes:

>> May you (1) document this behaviour in the manual; (2) clarify what's up
>> with intanglible.
>
> I think you confuse two different point-adjustment behaviors.  What
> the ELisp manual describes is the one implemented in
> adjust_point_for_property and the code which calls it from
> command_loop_1.  set_point_both does a different job for different
> situations, AFAIU.

> If you ignore set_point_both, what exactly is wrong about that short
> section in the manual?

Let me describe the full sequence how I arrived to that manual page:

1. We had a situation where `backward-word' moved further than expected:

   <invisible>=</invisible>word<point>
   M-b
   <point>=word
   
   This was despite "=" not considered to be a word constituent in
   syntax table.

2. I noticed that this behavior is related to point movement and
   invisible text and searched manual index for "point", "invisible".
   The only match was "22.6 Adjusting Point After Commands"
   I assumed that it is describing all the cases related to interaction
   between point and invisible text.

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.

4. I reached to sources and tried to track down the cause, eventually
   arriving to `set_point_both'.

So, there is no problem with this section of the manual. The problem is
that manual does not describe the behavior with invisible text
boundaries I was trying to figure out. (Or does not properly mark the
relevant section with index keywords).

-- 
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>