]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix vertical cursor motion when columns are of unequal size
authorEli Zaretskii <eliz@gnu.org>
Wed, 10 May 2017 16:58:06 +0000 (19:58 +0300)
committerEli Zaretskii <eliz@gnu.org>
Wed, 10 May 2017 16:58:06 +0000 (19:58 +0300)
* lisp/simple.el (line-move-finish): In line-move-visual mode, use
vertical-motion to move to the goal column, as the goal column
should in that case be interpreted in units of frame's canonical
character width.  (Bug#26852)

lisp/simple.el

index edc822eb51e2fe449e2d72c8f20a929815f252d2..dfa30372dda09f6c8e7db0c96a60104d856534cd 100644 (file)
@@ -6399,7 +6399,12 @@ If NOERROR, don't signal an error if we can't move that many lines."
               (point))))
 
        ;; Move to the desired column.
-       (line-move-to-column (truncate column))
+        (if line-move-visual
+            ;; Under line-move-visual, goal-column should be
+            ;; interpreted in units of the frame's canonical character
+            ;; width, which is exactly what vertical-motion does.
+            (vertical-motion (cons column 0))
+          (line-move-to-column (truncate column)))
 
        ;; Corner case: suppose we start out in a field boundary in
        ;; the middle of a continued line.  When we get to