From 2d0fbd1f0c8d9b24a849a543d59650f49b1b3961 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Thu, 3 Nov 2011 17:12:07 -0500 Subject: [PATCH] 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 --- collects/mzlib/port.rkt | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/collects/mzlib/port.rkt b/collects/mzlib/port.rkt index 1c32172..06dbc01 100644 --- a/collects/mzlib/port.rkt +++ b/collects/mzlib/port.rkt @@ -428,17 +428,22 @@ (set! buffering? (eq? mode 'block)) (buffer-mode-proc mode)]))))) -(define peeking-input-port - (lambda (orig-in [name (object-name orig-in)] [delta 0]) - (make-input-port/read-to-peek - name - (lambda (s) - (let ([r (peek-bytes-avail!* s delta #f orig-in)]) - (set! delta (+ delta (if (number? r) r 1))) - (if (eq? r 0) (handle-evt orig-in (lambda (v) 0)) r))) - (lambda (s skip default) - (peek-bytes-avail!* s (+ delta skip) #f orig-in)) - void))) +(define (peeking-input-port orig-in + [name (object-name orig-in)] + [delta 0] + #:init-position [init-position 1]) + (make-input-port/read-to-peek + name + (lambda (s) + (let ([r (peek-bytes-avail!* s delta #f orig-in)]) + (set! delta (+ delta (if (number? r) r 1))) + (if (eq? r 0) (handle-evt orig-in (lambda (v) 0)) r))) + (lambda (s skip default) + (peek-bytes-avail!* s (+ delta skip) #f orig-in)) + void + #f + void + init-position)) (define relocate-input-port (lambda (p line col pos [close? #t])