From xemacs-m  Tue Feb 18 22:35:27 1997
Received: from venus.Sun.COM (venus.Sun.COM [192.9.25.5])
	by xemacs.org (8.8.5/8.8.5) with SMTP id WAA23486
	for <xemacs-beta@xemacs.org>; Tue, 18 Feb 1997 22:35:26 -0600 (CST)
Received: from Eng.Sun.COM ([129.146.1.25]) by venus.Sun.COM (SMI-8.6/mail.byaddr) with SMTP id UAA22847; Tue, 18 Feb 1997 20:34:56 -0800
Received: from kindra.eng.sun.com by Eng.Sun.COM (SMI-8.6/SMI-5.3)
	id UAA27465; Tue, 18 Feb 1997 20:34:53 -0800
Received: from xemacs.eng.sun.com by kindra.eng.sun.com (SMI-8.6/SMI-SVR4)
	id UAA10924; Tue, 18 Feb 1997 20:34:53 -0800
Received: by xemacs.eng.sun.com (SMI-8.6/SMI-SVR4)
	id UAA05666; Tue, 18 Feb 1997 20:34:51 -0800
Date: Tue, 18 Feb 1997 20:34:51 -0800
Message-Id: <199702190434.UAA05666@xemacs.eng.sun.com>
From: Martin Buchholz <mrb@Eng.Sun.COM>
To: Michael Kifer <kifer@cs.sunysb.edu>
Cc: Gordon Prieur <gordonp@Eng.Sun.COM>,
        XEmacs Beta Test <xemacs-beta@xemacs.org>
Subject: Multiple Viper digit-argument broken
Reply-To: Martin Buchholz <mrb@Eng.Sun.COM>

XEmacs 20.1-b1, with and without mule.

Only the last digit of a multi-digit numeric prefix command was
recognized, e.g.

22l and 2l would both move exactly 2 characters.

Patch follows.  Please incorporate into next version of Viper.
Untested, but should work on all emacsen.

Martin

--- -	Tue Feb 18 20:24:37 1997
+++ viper.el	Tue Feb 18 20:13:43 1997
@@ -1305,10 +1305,10 @@
 ;; Compute numeric prefix arg value. 
 ;; Invoked by EVENT. COM is the command part obtained so far.
 (defun vip-prefix-arg-value (event com)
-  (let (value func)
+  (let ((value 0) func)
     ;; read while number
     (while (and (vip-characterp event) (>= event ?0) (<= event ?9))
-      (setq value (+ (* (if (vip-characterp value) value 0) 10) (- event ?0)))
+      (setq value (+ (* value 10) (- event ?0)))
       (setq event (vip-read-event-convert-to-char)))
     
     (setq prefix-arg value)

