GNU bug report logs - #12216
peek-char incorrectly *CONSUMES* eof

Previous Next

Package: guile;

Reported by: dwheeler <at> dwheeler.com

Date: Fri, 17 Aug 2012 02:03:01 UTC

Severity: normal

Done: Mark H Weaver <mhw <at> netris.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Andy Wingo <wingo <at> pobox.com>
To: dwheeler <at> dwheeler.com
Cc: almkglor <almkglor <at> gmail.com>, 12216 <12216 <at> debbugs.gnu.org>
Subject: bug#12216: peek-char incorrectly *CONSUMES* eof
Date: Thu, 07 Mar 2013 22:32:38 +0100
On Tue 05 Mar 2013 20:17, "David A. Wheeler" <dwheeler <at> dwheeler.com> writes:

> I reported:
>> > Guile's peek-char has a bug; it incorrectly *consumes* eof instead of
>> > just reporting it.
>
> Andy Wingo replied:
>> I have the feeling that for interactive use, if you expect to read a EOF
>> from a port and then continue, you have to not use peek-char.  You need
>> to handle your own lookahead buffer.  I know it's not a great answer,
>> but I can't think of anything else that makes sense.
>
> We don't want to read an EOF and then continue.
> We peek-char to not *CONSUME* an interactive EOF.

I understand what it is you want.  But I don't know of any sane way to
implement it.

Given that it is an edge case -- peek-char on an interactive port -- I
think the thing to do is to document this inconsistency, and for you (in
your code) to implement some sort of abstraction that does not use
peek-char.

That is to say, use read-char, and do unread-char as necessary.  Or keep
your own buffer around.

I know it isn't nice, but I don't know how to do anything better.

Andy
-- 
http://wingolog.org/




This bug report was last modified 12 years and 50 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.