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