~ chicken-core (chicken-5) 7ce8688f0b948c0385c6b5109e172fcb3be43dd6
commit 7ce8688f0b948c0385c6b5109e172fcb3be43dd6
Author: Evan Hanson <evhan@foldling.org>
AuthorDate: Wed Jan 20 22:22:29 2016 +1300
Commit: Evan Hanson <evhan@foldling.org>
CommitDate: Tue Mar 8 22:52:34 2016 +1300
Drop filename argument handling from "read-lines"
diff --git a/extras.scm b/extras.scm
index a9421f83..6a12683b 100644
--- a/extras.scm
+++ b/extras.scm
@@ -90,24 +90,16 @@
(loop (fx+ i 1)) ] ) ) ) ) ) ) ) ) ) ) ) )
(define read-lines
- (lambda port-and-max
- (let* ((port (if (pair? port-and-max) (##sys#slot port-and-max 0) ##sys#standard-input))
- (rest (and (pair? port-and-max) (##sys#slot port-and-max 1)))
- (max (if (pair? rest) (##sys#slot rest 0) #f)) )
- (define (doread port)
- (let loop ((lns '())
- (n (or max 1000000000)) ) ; this is silly
- (if (eq? n 0)
- (##sys#fast-reverse lns)
- (let ((ln (read-line port)))
- (if (eof-object? ln)
- (##sys#fast-reverse lns)
- (loop (cons ln lns) (fx- n 1)) ) ) ) ) )
- (if (string? port)
- (call-with-input-file port doread)
- (begin
- (##sys#check-input-port port #t 'read-lines)
- (doread port) ) ) ) ) )
+ (lambda (#!optional (port ##sys#standard-input) (max most-positive-fixnum))
+ (##sys#check-input-port port #t 'read-lines)
+ (let loop ((lns '())
+ (n (or max 1000000000))) ; this is silly
+ (if (or (eq? n 0))
+ (##sys#fast-reverse lns)
+ (let ((ln (read-line port)))
+ (if (eof-object? ln)
+ (##sys#fast-reverse lns)
+ (loop (cons ln lns) (fx- n 1))))))))
(define write-line
(lambda (str . port)
diff --git a/manual/Unit extras b/manual/Unit extras
index 23ff690b..c1f2b142 100644
--- a/manual/Unit extras
+++ b/manual/Unit extras
@@ -163,9 +163,10 @@ characters per line. {{read-line}} returns a string without the terminating newl
<procedure>(read-lines [PORT [MAX]])</procedure>
-Read {{MAX}} or fewer lines from {{PORT}}. {{PORT}}
-defaults to the value of {{(current-input-port)}}. {{PORT}} may optionally be
-a string naming a file. Returns a list of strings, each string representing a line read, not including any line separation character(s).
+Read {{MAX}} or fewer lines from {{PORT}}. {{PORT}} defaults to the
+value of {{(current-input-port)}}. Returns a list of strings, each
+string representing a line read, not including any line separation
+character(s).
==== read-string
diff --git a/types.db b/types.db
index c0e7bbda..670d9bee 100644
--- a/types.db
+++ b/types.db
@@ -1529,7 +1529,7 @@
(chicken.io#read-buffered (#(procedure #:enforce) chicken.io#read-buffered (#!optional input-port) string))
(chicken.io#read-byte (#(procedure #:enforce) chicken.io#read-byte (#!optional input-port) *))
(chicken.io#read-line (#(procedure #:enforce) chicken.io#read-line (#!optional input-port (or false fixnum)) (or eof string)))
-(chicken.io#read-lines (#(procedure #:enforce) chicken.io#read-lines (#!optional (or input-port string) fixnum) (list-of string)))
+(chicken.io#read-lines (#(procedure #:enforce) chicken.io#read-lines (#!optional input-port fixnum) (list-of string)))
(chicken.io#read-string (#(procedure #:enforce) chicken.io#read-string (#!optional (or fixnum false) input-port) string))
(chicken.io#read-string! (#(procedure #:enforce) chicken.io#read-string! ((or fixnum false) string #!optional input-port fixnum) fixnum))
(chicken.io#read-token (#(procedure #:enforce) chicken.io#read-token ((procedure (char) *) #!optional input-port) string))
Trap