Fix bug where radix passed explicitly to `string->number' was ignored.
authorChris Hanson <org/chris-hanson/cph>
Mon, 9 Feb 1987 23:10:13 +0000 (23:10 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 9 Feb 1987 23:10:13 +0000 (23:10 +0000)
v7/src/runtime/numpar.scm

index f70ce5cad6d091f8cefb46e4602345a6f65d473b..d359592fcf4051ef870f22a2eeeb944523661b6e 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/numpar.scm,v 13.41 1987/01/23 00:16:30 jinx Exp $
+;;;    $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/numpar.scm,v 13.42 1987/02/09 23:10:13 cph Rel $
 ;;;
 ;;;    Copyright (c) 1987 Massachusetts Institute of Technology
 ;;;
 (define (parse-unsigned-real chars receiver)
   (parse-prefix chars false false false
     (lambda (chars radix exactness precision)
-      (fluid-let ((*radix*
-                  (cdr (assv radix
-                             '((#F . 10)
-                               (#\b . 2)
-                               (#\o . 8)
-                               (#\d . 10)
-                               (#\x . 16))))))
+      (define (finish)
        (parse-body chars
          (lambda (chars real)
            (parse-suffix chars
                              ((#\l) ->long-flonum))
                            (if exponent
                                (* real (expt 10 exponent))
-                               real))))))))))))
+                               real)))))))))
+      (if radix
+         (fluid-let ((*radix*
+                      (cdr (assv radix
+                                 '((#\b . 2)
+                                   (#\o . 8)
+                                   (#\d . 10)
+                                   (#\x . 16))))))
+           (finish))
+         (finish)))))
 \f
 (define (parse-prefix chars radix exactness precision receiver)
   (and (not (null? chars))