]> git.eshelyaron.com Git - emacs.git/commitdiff
(line-move-visual): Handle null pixel position gracefully.
authorChong Yidong <cyd@stupidchicken.com>
Sat, 12 Jul 2008 18:33:47 +0000 (18:33 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sat, 12 Jul 2008 18:33:47 +0000 (18:33 +0000)
lisp/simple.el

index 93e2818d265e1696e8f46e1390aba81315956785..56371ac25e1c7d3f0024c7dc8dff4b3a1515adbf 100644 (file)
@@ -3993,21 +3993,20 @@ into account variable-width characters and line continuation.")
 ;; specified number of lines.
 (defun line-move-visual (arg &optional noerror)
   (unless (and (floatp temporary-goal-column)
-               (or (memq last-command '(next-line previous-line))
-                   ;; In case we're called from some other command.
-                   (eq last-command this-command)))
-    (setq temporary-goal-column
-          (/ (car (nth 2 (posn-at-point))) 1.0 (frame-char-width))))
-  (let ((moved (vertical-motion
-               (cons (or goal-column
-                         (truncate temporary-goal-column))
-                     arg))))
-    (or (= arg moved)
-       (unless noerror
-         (signal (if (< arg 0)
-                     'beginning-of-buffer
-                   'end-of-buffer)
-                 nil)))))
+              (or (memq last-command '(next-line previous-line))
+                  ;; In case we're called from some other command.
+                  (eq last-command this-command)))
+    (let ((x (car (nth 2 (posn-at-point)))))
+      (when x
+       (setq temporary-goal-column (/ (float x) (frame-char-width))))))
+  (or (= (vertical-motion
+         (cons (or goal-column (truncate temporary-goal-column)) arg))
+        arg)
+      (unless noerror
+       (signal (if (< arg 0)
+                   'beginning-of-buffer
+                 'end-of-buffer)
+               nil))))
 
 ;; This is the guts of next-line and previous-line.
 ;; Arg says how many lines to move.