1 Jul 1999 00:00:52 GMT, Marcin 'Qrczak' Kowalczyk <[EMAIL PROTECTED]> pisze:
> When reading from a socket using hGetLine, 8bit characters cause
> fatal error, e.g.:
>
> Fail: Prelude.Enum.toEnum{Char}: out of range: -77
I think I found it. The bug always occurs in NoBuffering mode.
--- ghc/lib/std/cbits/readFile.c.orig Sun Feb 7 23:03:38 1999
+++ ghc/lib/std/cbits/readFile.c Thu Jul 1 11:09:54 1999
@@ -258,7 +258,7 @@
{
IOFileObject* fo= (IOFileObject*)ptr;
int count,rc=0;
- char c;
+ unsigned char c;
/* Check if someone hasn't zapped us */
if ( fo == NULL || fo->fd == -1)
I can't check whether it works, because ghc-4.02 does not compile
for me. Fortunately I can use LineBuffering for my sockets.
A test program:
import IO
main = do
hSetBuffering stdin NoBuffering
getChar >>= putChar
It fails when a character with high bit set is entered.
--
__("< Marcin Kowalczyk * [EMAIL PROTECTED] http://kki.net.pl/qrczak/
\__/ GCS/M d- s+:-- a22 C+++>+++$ UL++>++++$ P+++ L++>++++$ E-
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Re: Reading 8bit characters from a socket fails
Marcin 'Qrczak' Kowalczyk Thu, 1 Jul 1999 11:25:37 +0200 (MET DST)
- Reading 8bit characters from a socket fails Marcin 'Qrczak' Kowalczyk
- RE: Reading 8bit characters from a socket f... Marcin 'Qrczak' Kowalczyk
- RE: Reading 8bit characters from a socket f... Simon Marlow
- Re: Reading 8bit characters from a socket f... Marcin 'Qrczak' Kowalczyk
- RE: Reading 8bit characters from a socket f... Simon Marlow
- Re: Reading 8bit characters from a sock... Michael Weber
- RE: Reading 8bit characters from a socket f... Simon Marlow
