Subject: Re: bug#16148: Cursor stuck on line ending w/ visual-order-cursor movement - move-point-visually fails.
From: Eli Zaretskii <[email-masked]>
To: David Reitter <[email-masked]>
Cc: [email-masked]
Date: Sat, 14 Dec 2013 21:37:35 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: David Reitter <[email-masked]>
> Date: Sat, 14 Dec 2013 12:53:51 -0500
> 
> With a certain combination of settings, cursor movement to the left fails at the (right) end of lines:
> 
> Emacs -Q -nw
> 
> [Enter and evaluate the following:]
> 
> 	(whitespace-newline-mode 1)
> 	(global-hl-line-mode 1)
> 	(setq visual-order-cursor-movement t)
> 
> [Then press left-arrow repeatedly.  Cursor will get "stuck" on a line ending.]

Fixed.

> - `hl-line-mode' alone does not suffice - it has to the be `global-hl-line-mode'.

That's because move-point-visually uses 2 separate strategies, and the
problem was only in one of them.  You need to work very hard for
move-point-visually to fall back on the second strategy, but the
combination of the above 2 mode, each one of which is a redisplay
optimizations killer, succeeded in doing just that.

> Second, simpler recipe:
> 
> Emacs -Q -nw
> 
> [Enter and evaluate the following:]
> 
> 	(whitespace-newline-mode 1)
> 
> Place cursor at end of line, then M-: (move-point-visually -1)  RET.
> Nothing happens.

This is the same problem (M-: also forces move-point-visually to use
the 2nd strategy), so it is also fixed.

Thanks.