support mid-stream EOF
svn: r5144
This commit is contained in:
parent
cf0b303497
commit
cfc0e616a2
|
@ -66,15 +66,17 @@
|
||||||
(let ([buffer #f]
|
(let ([buffer #f]
|
||||||
[skip #f]
|
[skip #f]
|
||||||
[blen #f]
|
[blen #f]
|
||||||
|
[closed? #f]
|
||||||
[LF (bytes-ref #"\n" 0)])
|
[LF (bytes-ref #"\n" 0)])
|
||||||
(define (close!) (set! buffer eof) (save-history))
|
(define (close!) (set! closed? #t) (save-history))
|
||||||
(define (reader tgt)
|
(define (reader tgt)
|
||||||
(let loop ()
|
(let loop ()
|
||||||
(cond [(eof-object? buffer) eof]
|
(cond [closed? eof]
|
||||||
|
[(eof-object? buffer) (set! buffer #f) eof]
|
||||||
[(not buffer)
|
[(not buffer)
|
||||||
(set! buffer (readline-bytes/hist (get-current-prompt)))
|
(set! buffer (readline-bytes/hist (get-current-prompt)))
|
||||||
(if (eof-object? buffer)
|
(if (eof-object? buffer)
|
||||||
(begin (save-history) buffer)
|
(begin (save-history) (set! buffer #f) eof)
|
||||||
(begin (set! skip 0)
|
(begin (set! skip 0)
|
||||||
(set! blen (bytes-length buffer))
|
(set! blen (bytes-length buffer))
|
||||||
(reader tgt)))]
|
(reader tgt)))]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user