From de539a472eadb01483cd0445d8d517f3134aef0b Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sun, 17 Apr 2011 23:45:21 +0900 Subject: [PATCH] return null string on (read-string 0) --- lib/chibi/io/io.scm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/chibi/io/io.scm b/lib/chibi/io/io.scm index d055b9eb..a6289f79 100644 --- a/lib/chibi/io/io.scm +++ b/lib/chibi/io/io.scm @@ -44,15 +44,17 @@ res)))))) (define (read-string n . o) - (let ((in (if (pair? o) (car o) (current-input-port)))) - (let ((res (%read-string n in))) - (cond - ((if (pair? res) (= 0 (car res)) #t) - eof) - (else - (port-line-set! in (+ (string-count #\newline (cadr res)) - (port-line in))) - (cadr res)))))) + (if (zero? n) + "" + (let ((in (if (pair? o) (car o) (current-input-port)))) + (let ((res (%read-string n in))) + (cond + ((if (pair? res) (= 0 (car res)) #t) + eof) + (else + (port-line-set! in (+ (string-count #\newline (cadr res)) + (port-line in))) + (cadr res))))))) (define (read-string! str n . o) (let* ((in (if (pair? o) (car o) (current-input-port)))