Ian Price <ianpric...@googlemail.com> writes: > scheme@(guile−user)> (let* ((port (make-soft-port > (vector #f #f (lambda () 'flushed) #f #f) > "rw"))) > (force-output port)) > scheme@(guile−user)>
Yak, this example is a horrible one, since force-output doesn't return the return value of the procedure anyway, but if you try replacing it with (lambda () (throw 'wontthrow)), and you'll see it doesn't error In sf_flush in libguile/vports.c, there is a test if (pt->write_pos > pt->write_buf) which some printf debugging tells me is never true, in fact, those values never change, no matter how much I write to the port. Some food for thought while I grapple with how the ports code is supposed to work. -- Ian Price "Programming is like pinball. The reward for doing it well is the opportunity to do it again" - from "The Wizardy Compiled"