diff --git a/scheme/ikarus.io.ss b/scheme/ikarus.io.ss index 8243b5e..9de2c1e 100644 --- a/scheme/ikarus.io.ss +++ b/scheme/ikarus.io.ss @@ -1592,11 +1592,12 @@ (define (call-with-port p proc) (if (port? p) - (if (procedure? proc) - (dynamic-wind - void + (if (procedure? proc) + (call-with-values (lambda () (proc p)) - (lambda () (close-port p))) + (lambda vals + (close-port p) + (apply values vals))) (die 'call-with-port "not a procedure" proc)) (die 'call-with-port "not a port" p))) diff --git a/scheme/last-revision b/scheme/last-revision index 2a07070..e8c1952 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1529 +1530