Use in-producer' for
in-input-port-chars' and `in-input-port-bytes'.
(The non-macro version of `in-input-port-bytes' still uses `:input-port-gen', since it's needed anyway.) svn: r16475
This commit is contained in:
parent
4f002bb7bb
commit
cf91b7c254
|
@ -31,8 +31,8 @@
|
||||||
(rename *in-vector in-vector)
|
(rename *in-vector in-vector)
|
||||||
(rename *in-string in-string)
|
(rename *in-string in-string)
|
||||||
(rename *in-bytes in-bytes)
|
(rename *in-bytes in-bytes)
|
||||||
in-input-port-bytes
|
(rename *in-input-port-bytes in-input-port-bytes)
|
||||||
in-input-port-chars
|
(rename *in-input-port-chars in-input-port-chars)
|
||||||
(rename *in-port in-port)
|
(rename *in-port in-port)
|
||||||
(rename *in-lines in-lines)
|
(rename *in-lines in-lines)
|
||||||
in-hash
|
in-hash
|
||||||
|
@ -452,27 +452,20 @@
|
||||||
void
|
void
|
||||||
void))
|
void))
|
||||||
|
|
||||||
(define (in-input-port-bytes l)
|
(define (in-input-port-bytes p)
|
||||||
(unless (input-port? l)
|
(unless (input-port? p)
|
||||||
(raise-type-error 'in-input-port-bytes "input-port" l))
|
(raise-type-error 'in-input-port-bytes "input-port" p))
|
||||||
(make-do-sequence (lambda () (:input-port-gen l))))
|
(make-do-sequence (lambda () (:input-port-gen p))))
|
||||||
|
|
||||||
(define (:input-port-gen v)
|
(define (:input-port-gen p)
|
||||||
(values read-byte
|
(values read-byte values p void
|
||||||
values
|
|
||||||
v
|
|
||||||
void
|
|
||||||
(lambda (x) (not (eof-object? x)))
|
(lambda (x) (not (eof-object? x)))
|
||||||
void))
|
void))
|
||||||
|
|
||||||
(define (in-input-port-chars v)
|
(define (in-input-port-chars p)
|
||||||
(unless (input-port? v)
|
(unless (input-port? p)
|
||||||
(raise-type-error 'in-input-port-chars "input-port" v))
|
(raise-type-error 'in-input-port-chars "input-port" p))
|
||||||
(make-do-sequence
|
(in-producer (lambda () (read-char p)) eof))
|
||||||
(lambda ()
|
|
||||||
(values read-char values v void
|
|
||||||
(lambda (x) (not (eof-object? x)))
|
|
||||||
void))))
|
|
||||||
|
|
||||||
(define in-port
|
(define in-port
|
||||||
(case-lambda
|
(case-lambda
|
||||||
|
@ -1262,4 +1255,28 @@
|
||||||
(lambda () (read-line p* mode*)))
|
(lambda () (read-line p* mode*)))
|
||||||
eof)]])))
|
eof)]])))
|
||||||
|
|
||||||
|
(define-sequence-syntax *in-input-port-bytes
|
||||||
|
(lambda () #'in-input-port-bytes)
|
||||||
|
(lambda (stx)
|
||||||
|
(syntax-case stx ()
|
||||||
|
[[(id) (_ p)]
|
||||||
|
#'[(id) (*in-producer
|
||||||
|
(let ([p* p])
|
||||||
|
(unless (input-port? p*)
|
||||||
|
(raise-type-error 'in-input-port-bytes "input-port" p*))
|
||||||
|
(lambda () (read-byte p*)))
|
||||||
|
eof)]])))
|
||||||
|
|
||||||
|
(define-sequence-syntax *in-input-port-chars
|
||||||
|
(lambda () #'in-input-port-chars)
|
||||||
|
(lambda (stx)
|
||||||
|
(syntax-case stx ()
|
||||||
|
[[(id) (_ p)]
|
||||||
|
#'[(id) (*in-producer
|
||||||
|
(let ([p* p])
|
||||||
|
(unless (input-port? p*)
|
||||||
|
(raise-type-error 'in-input-port-chars "input-port" p*))
|
||||||
|
(lambda () (read-char p*)))
|
||||||
|
eof)]])))
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user