unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: dmitry.kurochkin@gmail.com, 9034@debbugs.gnu.org
Subject: bug#9034: point adjustment (with invisible text) moves to the next line
Date: Wed, 25 Aug 2021 19:43:34 +0300	[thread overview]
Message-ID: <834kbdv5jd.fsf@gnu.org> (raw)
In-Reply-To: <87tujd32pc.fsf@gnus.org> (message from Lars Ingebrigtsen on Wed,  25 Aug 2021 18:32:15 +0200)

> From: Lars Ingebrigtsen <larsi@gnus.org>
> Date: Wed, 25 Aug 2021 18:32:15 +0200
> Cc: 9034@debbugs.gnu.org
> 
> Also as previously noted, if Vglobal_disable_point_adjustment is on,
> then this doesn't happen, so the problem almost has to be here:
> 
> command_loop_1
> ...
>       if (current_buffer == prev_buffer
> 	  && XBUFFER (XWINDOW (selected_window)->contents) == current_buffer
> 	  && last_point_position != PT
> 	  && NILP (Vdisable_point_adjustment)
> 	  && NILP (Vglobal_disable_point_adjustment))
> 	{
> 	  if (last_point_position > BEGV
> 	      && last_point_position < ZV
> 	      && (composition_adjust_point (last_point_position,
> 					    last_point_position)
> 		  != last_point_position))
> 	    /* The last point was temporarily set within a grapheme
> 	       cluster to prevent automatic composition.  To recover
> 	       the automatic composition, we must update the
> 	       display.  */
> 	    windows_or_buffers_changed = 21;
> 	  if (!already_adjusted)
> 	    adjust_point_for_property (last_point_position,
> 				       MODIFF != prev_modiff);
> 	}
> 
> I haven't tried to debug any further -- is it obvious to anybody what's
> failing here, by any chance?  :-)

This code is chock-full of questionable heuristics, and in particular
tries to guess in which direction to move point out of the invisible
text.  The results are sometimes surprising.  The upside is that it
"mostly works".  But if someone can come up with a better heuristics,
I'm all ears.





  reply	other threads:[~2021-08-25 16:43 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-09 13:04 bug#9034: point adjustment after `end-of-visual-line' moves to the next line Dmitry Kurochkin
2011-07-11  4:16 ` Stefan Monnier
2011-07-11  8:27   ` Dmitry Kurochkin
2021-08-25 16:32 ` bug#9034: point adjustment (with invisible text) " Lars Ingebrigtsen
2021-08-25 16:43   ` Eli Zaretskii [this message]
2021-08-26 13:48     ` Lars Ingebrigtsen
2021-08-26 15:46       ` Eli Zaretskii
2021-08-26 16:33         ` Lars Ingebrigtsen
2021-08-26 16:48           ` Eli Zaretskii
2021-08-26 17:05             ` Lars Ingebrigtsen
2021-08-26 17:13               ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=834kbdv5jd.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=9034@debbugs.gnu.org \
    --cc=dmitry.kurochkin@gmail.com \
    --cc=larsi@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).