From 33da981dba89452ff959a795baa0bda2375032e8 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 2 Jan 2010 21:04:40 +0900 Subject: [PATCH] read-line shouldn't include the trailing newline --- lib/chibi/io/io.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/chibi/io/io.scm b/lib/chibi/io/io.scm index 97de1cc6..2d4da555 100644 --- a/lib/chibi/io/io.scm +++ b/lib/chibi/io/io.scm @@ -26,7 +26,14 @@ (let ((in (if (pair? o) (car o) (current-input-port))) (n (if (and (pair? o) (pair? (cdr o))) (car (cdr o)) 8192))) (let ((res (%read-line n in))) - (if (not res) eof res)))) + (if (not res) + eof + (let ((len (string-length res))) + (if (and (> len 0) (eqv? #\newline (string-ref res (- len 1)))) + (if (and (> len 1) (eqv? #\return (string-ref res (- len 2)))) + (substring res 0 (- len 2)) + (substring res 0 (- len 1))) + res)))))) (define (read-string n . o) (let ((in (if (pair? o) (car o) (current-input-port))))