(write-char #\- stream)
(setf number (- number)))
(let ((scale (expt 10 power)))
- (flet ((%fraction (fraction)
- (let ((scaled (* 10 fraction)))
- (loop while (< scaled scale)
- do (write-char #\0 stream)
- (setf scaled (* scaled 10))))
- (format stream "~D" fraction))
- (%zeroes ()
- (let ((scaled (/ scale 10)))
- (write-char #\0 stream)
- (loop while (> scaled 1)
- do (write-char #\0 stream)
- (setf scaled (/ scaled 10))))))
+ (labels ((%fraction (fraction)
+ (if (zerop fraction)
+ (%zeroes)
+ (let ((scaled (* 10 fraction)))
+ (loop while (< scaled scale)
+ do (write-char #\0 stream)
+ (setf scaled (* scaled 10)))))
+ (format stream "~D" fraction))
+ (%zeroes ()
+ (let ((scaled (/ scale 10)))
+ (write-char #\0 stream)
+ (loop while (> scaled 1)
+ do (write-char #\0 stream)
+ (setf scaled (/ scaled 10))))))
(cond ((zerop number)
(write-string "0." stream)
(%zeroes))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.19.33"
+"1.0.19.34"