fix the module reader for the case when there are non-ASCII unicode characters

in comments before the #lang line

also add an #:init-position argument to peeking-input-port

original commit: d00aed6f1b2934f591204ea9b97199fae698ceae
This commit is contained in:
Robby Findler 2011-11-03 17:12:07 -05:00
parent fff213f279
commit 2d0fbd1f0c

View File

@ -428,17 +428,22 @@
(set! buffering? (eq? mode 'block)) (set! buffering? (eq? mode 'block))
(buffer-mode-proc mode)]))))) (buffer-mode-proc mode)])))))
(define peeking-input-port (define (peeking-input-port orig-in
(lambda (orig-in [name (object-name orig-in)] [delta 0]) [name (object-name orig-in)]
(make-input-port/read-to-peek [delta 0]
name #:init-position [init-position 1])
(lambda (s) (make-input-port/read-to-peek
(let ([r (peek-bytes-avail!* s delta #f orig-in)]) name
(set! delta (+ delta (if (number? r) r 1))) (lambda (s)
(if (eq? r 0) (handle-evt orig-in (lambda (v) 0)) r))) (let ([r (peek-bytes-avail!* s delta #f orig-in)])
(lambda (s skip default) (set! delta (+ delta (if (number? r) r 1)))
(peek-bytes-avail!* s (+ delta skip) #f orig-in)) (if (eq? r 0) (handle-evt orig-in (lambda (v) 0)) r)))
void))) (lambda (s skip default)
(peek-bytes-avail!* s (+ delta skip) #f orig-in))
void
#f
void
init-position))
(define relocate-input-port (define relocate-input-port
(lambda (p line col pos [close? #t]) (lambda (p line col pos [close? #t])