Hello! Ian Price <ianpric...@googlemail.com> 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’.