mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 06:41:13 +02:00
Do not apply inf?' or
nan?' to strings
* module/ice-9/format.scm (format): Test to make sure an argument is a number before applying `inf?' and `nan?' to it. Formerly, format would call `inf?' and `nan?' on arguments that might be either a number or a string, although those predicates should ideally throw an exception when applied to non-number objects.
This commit is contained in:
parent
b56c252b52
commit
6a07a06118
1 changed files with 9 additions and 5 deletions
|
@ -1,5 +1,5 @@
|
||||||
;;;; "format.scm" Common LISP text output formatter for SLIB
|
;;;; "format.scm" Common LISP text output formatter for SLIB
|
||||||
;;; Copyright (C) 2010 Free Software Foundation, Inc.
|
;;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
|
||||||
;;;
|
;;;
|
||||||
;;; This library is free software; you can redistribute it and/or
|
;;; This library is free software; you can redistribute it and/or
|
||||||
;;; modify it under the terms of the GNU Lesser General Public
|
;;; modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -1079,7 +1079,8 @@
|
||||||
(padch (format:par pars l 4 format:space-ch #f)))
|
(padch (format:par pars l 4 format:space-ch #f)))
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
((or (inf? number) (nan? number))
|
((and (number? number)
|
||||||
|
(or (inf? number) (nan? number)))
|
||||||
(format:out-inf-nan number width digits #f overch padch))
|
(format:out-inf-nan number width digits #f overch padch))
|
||||||
|
|
||||||
(digits
|
(digits
|
||||||
|
@ -1140,7 +1141,8 @@
|
||||||
(expch (format:par pars l 6 #f #f)))
|
(expch (format:par pars l 6 #f #f)))
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
((or (inf? number) (nan? number))
|
((and (number? number)
|
||||||
|
(or (inf? number) (nan? number)))
|
||||||
(format:out-inf-nan number width digits edigits overch padch))
|
(format:out-inf-nan number width digits edigits overch padch))
|
||||||
|
|
||||||
(digits ; fixed precision
|
(digits ; fixed precision
|
||||||
|
@ -1231,7 +1233,8 @@
|
||||||
(overch (if (> l 4) (list-ref pars 4) #f))
|
(overch (if (> l 4) (list-ref pars 4) #f))
|
||||||
(padch (if (> l 5) (list-ref pars 5) #f)))
|
(padch (if (> l 5) (list-ref pars 5) #f)))
|
||||||
(cond
|
(cond
|
||||||
((or (inf? number) (nan? number))
|
((and (number? number)
|
||||||
|
(or (inf? number) (nan? number)))
|
||||||
;; FIXME: this isn't right.
|
;; FIXME: this isn't right.
|
||||||
(format:out-inf-nan number width digits edigits overch padch))
|
(format:out-inf-nan number width digits edigits overch padch))
|
||||||
(else
|
(else
|
||||||
|
@ -1265,7 +1268,8 @@
|
||||||
(padch (format:par pars l 3 format:space-ch #f)))
|
(padch (format:par pars l 3 format:space-ch #f)))
|
||||||
|
|
||||||
(cond
|
(cond
|
||||||
((or (inf? number) (nan? number))
|
((and (number? number)
|
||||||
|
(or (inf? number) (nan? number)))
|
||||||
(format:out-inf-nan number width digits #f #f padch))
|
(format:out-inf-nan number width digits #f #f padch))
|
||||||
|
|
||||||
(else
|
(else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue