From 60aefea1f82755e2db50602776288f6a257eefc1 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 30 Oct 2011 16:10:56 +0900 Subject: [PATCH] handling #true and #false --- lib/srfi/38.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/srfi/38.scm b/lib/srfi/38.scm index bdc5d225..42d236a1 100644 --- a/lib/srfi/38.scm +++ b/lib/srfi/38.scm @@ -184,8 +184,13 @@ ((#\() (list->vector (read-one))) ((#\') (read-char in) (list 'syntax (read-one))) ((#\`) (read-char in) (list 'quasisyntax (read-one))) - ((#\t) (read-char in) #t) - ((#\f) (read-char in) #f) ; support SRFI-4 f32/64 vectors + ((#\t) (let ((s (read-name #f in))) + (or (string-ci=? s "t") (string-ci=? s "true") + (error "bad # syntax" s)))) + ((#\f) (let ((s (read-name #f in))) + (if (or (string-ci=? s "f") (string-ci=? s "false")) + #f + (error "bad # syntax" s)))) ((#\d) (read-char in) (read in)) ((#\x) (read-char in) (read-number 16)) ((#\o) (read-char in) (read-number 8))