From: Chris Hanson Date: Mon, 9 Feb 1987 23:10:13 +0000 (+0000) Subject: Fix bug where radix passed explicitly to `string->number' was ignored. X-Git-Tag: 20090517-FFI~13712 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=2774fa854bb05fcfe5b738943683c71615ad19bd;p=mit-scheme.git Fix bug where radix passed explicitly to `string->number' was ignored. --- diff --git a/v7/src/runtime/numpar.scm b/v7/src/runtime/numpar.scm index f70ce5cad..d359592fc 100644 --- a/v7/src/runtime/numpar.scm +++ b/v7/src/runtime/numpar.scm @@ -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 ;;; @@ -109,13 +109,7 @@ (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 @@ -131,7 +125,16 @@ ((#\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))))) (define (parse-prefix chars radix exactness precision receiver) (and (not (null? chars))