[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] with-*-*-port
From: |
Tony Garnock-Jones |
Subject: |
Re: [Chicken-users] with-*-*-port |
Date: |
Sat, 1 Mar 2003 03:10:04 +1300 |
> (define with-input-from-port
> (let ((values values))
> (lambda (port thunk)
> (let ((old ##sys#standard-input))
> (##sys#dynamic-wind
> (lambda () (set! ##sys#standard-input port))
> thunk
> (lambda () (set! ##sys#standard-input old))) ) ) ) )
Perhaps this would be better capturing standard-input on each
transition, rather than just the first?
(Untested code follows)
(define with-input-from-port
(let ((values values))
(lambda (inner thunk)
(let ((outer '*))
(##sys#dynamic-wind
(lambda ()
(set! outer ##sys#standard-input)
(set! ##sys#standard-input inner))
thunk
(lambda ()
(set! inner ##sys#standard-input)
(set! ##sys#standard-input outer)))))))
Does this make sense, or is it too paranoid?
Tony
--
"How's my programming? 1-800-DEV-NULL"