From 8423610f45c1c75479e8ce9303aee4e374193c3a Mon Sep 17 00:00:00 2001 From: Abdulaziz Ghuloum Date: Mon, 7 Jul 2008 00:56:52 -0700 Subject: [PATCH] call-with-port does not use dynamic-wind to close the port. --- scheme/ikarus.io.ss | 9 +++++---- scheme/last-revision | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) 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