[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10616: flush procedure for soft ports isn't called
From: |
Ludovic Courtès |
Subject: |
bug#10616: flush procedure for soft ports isn't called |
Date: |
Thu, 08 Mar 2012 14:53:32 +0100 |
User-agent: |
Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.93 (gnu/linux) |
Hello!
Ian Price <address@hidden> skribis:
>
> - if (pt->write_pos > pt->write_buf)
> - {
> - /* write the byte. */
> - scm_call_1 (SCM_SIMPLE_VECTOR_REF (stream, 0),
> - SCM_MAKE_CHAR (*pt->write_buf));
> - pt->write_pos = pt->write_buf;
> -
> - /* flush the output. */
> - {
> - SCM f = SCM_SIMPLE_VECTOR_REF (stream, 2);
> + SCM f = SCM_SIMPLE_VECTOR_REF (stream, 2);
> +
> + if (scm_is_true (f))
> + scm_call_0 (f);
>
> - if (scm_is_true (f))
> - scm_call_0 (f);
> - }
> - }
> }
It’s a bit late to reply (sorry, Ian!), but the reason it took me so
long, is that I wanted to understand the rationale for the ‘if’, and the
implications of dropping it (which I never got around to, as you can
see. ;-))
Mark: what’s your take on this? I’m especially concerned with
undesirable side effects in user code.
Thanks,
Ludo’.