`(error 'simple-parse-error
:format-control ,format-control
:format-arguments (list string))))
- (with-array-data ((string string)
+ (with-array-data ((string string :offset-var offset)
(start start)
(end (%check-vector-sequence-bounds string start end)))
(let ((index (do ((i start (1+ i)))
found-digit t))
(junk-allowed (return nil))
((whitespacep char)
- (do ((jndex (1+ index) (1+ jndex)))
- ((= jndex end))
- (declare (fixnum jndex))
- (unless (whitespacep (char string jndex))
+ (loop
+ (incf index)
+ (when (= index end) (return))
+ (unless (whitespacep (char string index))
(parse-error "junk in string ~S")))
(return nil))
(t
(if junk-allowed
nil
(parse-error "no digits in string ~S")))
- index)))))
+ (- index offset))))))
\f
;;;; reader initialization code