Subject: bug#12216: peek-char incorrectly *CONSUMES* eof

From: Andy Wingo <[email-masked]>
Date: Tue, 02 Apr 2013 09:58:43 +0200

Looks like a good start.  Two comments:

On Mon 01 Apr 2013 23:27, Mark H Weaver <[email-masked]> writes:

> --- a/libguile/inline.h
> +++ b/libguile/inline.h
> @@ -134,7 +134,10 @@ scm_peek_byte_or_eof (SCM port)
>    if (pt->read_pos >= pt->read_end)
>      {
>        if (SCM_UNLIKELY (scm_fill_input (port) == EOF))
> -	return EOF;
> +        {
> +          scm_i_set_pending_eof (port);
> +          return EOF;
> +        }
>      }
>  

1. I don't much like the addition of this call to this inline function.
Can we move all the non-fast-path code into some other function?  That
would include the flush call as well.

2. I think we probably need some tests.

Thanks for looking at this :-)

Andy
-- 
http://wingolog.org/