diff lisp/viper/viper.el @ 144:318232e2a3f0 r20-2b6

Import from CVS: tag r20-2b6
author cvs
date Mon, 13 Aug 2007 09:34:14 +0200
parents fe104dbd9147
children 43dd3413c7c7
line wrap: on
line diff
--- a/lisp/viper/viper.el	Mon Aug 13 09:33:20 2007 +0200
+++ b/lisp/viper/viper.el	Mon Aug 13 09:34:14 2007 +0200
@@ -2925,14 +2925,19 @@
   (interactive "P")
   (vip-leave-region-active)
   (let ((val (vip-p-val arg))
-	(com (vip-getcom arg)))
+	(com (vip-getcom arg))
+	line-len)
+    (setq line-len (- (vip-line-pos 'end) (vip-line-pos 'start)))
+    (if com (vip-move-marker-locally 'vip-com-point (point)))
+    (beginning-of-line)
+    (forward-char (1- (min line-len val)))
+    (while (> (current-column) (1- val))
+      (backward-char 1))
+    (if com (vip-execute-com 'vip-goto-col val com))
     (save-excursion
       (end-of-line)
-      (if (> val (1+ (current-column))) (error "")))
-    (if com (vip-move-marker-locally 'vip-com-point (point)))
-    (beginning-of-line)
-    (forward-char (1- val))
-    (if com (vip-execute-com 'vip-goto-col val com))))
+      (if (> val (current-column)) (error "")))
+    ))
     
 
 (defun vip-next-line (arg)