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

From: Eli Zaretskii <[email-masked]>
Date: Fri, 21 Jul 2023 13:51:04 +0300

> From: Ihor Radchenko <[email-masked]>
> Cc: [email-masked], [email-masked]
> Date: Fri, 21 Jul 2023 07:50:55 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> 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.
> >
> > Which aspects of the behavior you describe are not mentioned in the
> > manual.  It does refer to invisible text.
> 
> It talks about "in the middle of a sequence .. that ... is invisible"
> 
>     Emacs cannot display the cursor when point is in the middle of a
>     sequence of text that has the ‘display’ or ‘composition’ property, or is
>     invisible.  Therefore, after a command finishes and returns to the
>     command loop, if point is within such a sequence, the command loop
>     normally moves point to the edge of the sequence, making this sequence
>     effectively intangible.
> 
> The situation I encountered is when point ends up not in the middle, but
> already on the edge. So, Emacs moving point to _other_ edge was
> surprising.

That's because where to move point in these situations depends on
where it was before.  We could describe these details of the
heuristics we use, but I very much doubt it will be useful in
practice.  And the heuristics could change in the future, which makes
this a maintenance problem.

So I tend to think this bug should be closed with no further action.
The main purpose of that node is to explain how to disable this point
adjustment, not describe in detail what it does and how.