changeset 96623:40cc43cf4ef1

(line-move-visual): Handle null pixel position gracefully.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 12 Jul 2008 18:33:47 +0000
parents 535c63e99ba4
children f7f0696bac9b
files lisp/simple.el
diffstat 1 files changed, 14 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/simple.el	Sat Jul 12 18:33:32 2008 +0000
+++ b/lisp/simple.el	Sat Jul 12 18:33:47 2008 +0000
@@ -3993,21 +3993,20 @@
 ;; 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.