diff --git a/scheme/ikarus.io.ss b/scheme/ikarus.io.ss index 8006dcf..5d15c9e 100644 --- a/scheme/ikarus.io.ss +++ b/scheme/ikarus.io.ss @@ -250,8 +250,10 @@ [(procedure? get-position) (let ([pos (get-position)]) (if (or (fixnum? pos) (bignum? pos)) - (+ pos index) - (error who "invalid returned value from getter" p)))] + (if (input-port? p) + (- pos (- ($port-size p) index)) + (+ pos index)) + (die who "invalid returned value from get-position" p)))] [(eqv? get-position #f) (+ (vector-ref pos-vec 0) index)] [else diff --git a/scheme/last-revision b/scheme/last-revision index ffce2e8..c8db0f6 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1551 +1552