Subject: bug#22761: Surprising interaction between font-lock, invisible text, and point (self-insert-command and insert behave differently)

From: Eli Zaretskii <[email-masked]>
Date: Mon, 22 Feb 2016 17:53:55 +0200

> From: Clément Pit--Claudel <[email-masked]>
> Date: Sun, 21 Feb 2016 19:19:17 -0500
> 
> The problem happens when editing ‘a_foo_b’ to replace ‘foo’ by ‘bar’ (to get ‘a_bar_b’). Removing ‘foo’ leaves ‘__’ in the buffer, which font-lock recognizes: the whole string gets displayed as ‘ab’. Even then, the point is still between the two underscores (it hasn't moved after font-lock added the invisible property to the underscores). Pressing ‘b’ to start inserting ‘bar’ works fine (I end up with ‘a_b_c’), except for one thing: the point gets moved after the second underscore. Thus, pressing ‘ar’ to complete ‘bar’ ends up inserting ‘a_b_arb’.

Did you try binding global-disable-point-adjustment to a non-nil
value?