From: Daniel Kochmański Date: Thu, 3 Sep 2015 06:12:08 +0000 (+0200) Subject: printer: float infinity/nan: coerce printed form to base-string X-Git-Url: http://git.pulsar-zone.net/?a=commitdiff_plain;h=d15c42d2a161e0918791b5129f2447b52cc2533c;p=ecl.git printer: float infinity/nan: coerce printed form to base-string CLOS printer uses normal strings while float_to_string.d calls push_base_string to cache printable form of infinity (and nan). Coerce clos strings to base-string. Fixes #153. Related to #114. Signed-off-by: Daniel Kochmański --- diff --git a/src/clos/print.lsp b/src/clos/print.lsp index defa929..b7c6518 100644 --- a/src/clos/print.lsp +++ b/src/clos/print.lsp @@ -207,11 +207,13 @@ printer and we should rather use MAKE-LOAD-FORM." (defun ext::float-nan-string (x) (when *print-readably* (error 'print-not-readable :object x)) - (cdr (assoc (type-of x) - '((single-float . "#") - (double-float . "#") - (long-float . "#") - (short-float . "#"))))) + (coerce + (cdr (assoc (type-of x) + '((single-float . "#") + (double-float . "#") + (long-float . "#") + (short-float . "#")))) + 'base-string)) (defun ext::float-infinity-string (x) (when (and *print-readably* (null *read-eval*)) @@ -236,7 +238,7 @@ printer and we should rather use MAKE-LOAD-FORM." (if (plusp x) positive-infinities negative-infinities)))) (unless record (error "Not an infinity")) - (cdr record))) + (coerce (cdr record) 'base-string))) ;;; ---------------------------------------------------------------------- ;;; Describe