id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
3534	hSetBinaryMode fails after some input has been read	judah	simonmar	"For the following program (`BadSeek.hs`), type a couple characters of input and press return.  With ghc-6.10.3, it works fine; with ghc-6.11 it throws an error.
{{{
module Main where

import System.IO

main = do   
    getChar >>= print
    hSetBinaryMode stdin True
    getChar >>= print
}}}

With ghc-6.10:
{{{
$ ./BadSeek 
ab
'a'
'b'
}}}

With ghc-6.11:
{{{
$ ./BadSeek
ab
'a'
BadSeek: <stdin>: hSetBinaryMode: illegal operation (cannot flush the read buffer of a text-mode handle)
}}}

The error goes away if the first 'getChar' is commented out.

For libraries which are not yet using the Unicode I/O layer, having a way to temporarily set stdin to `BinaryMode` would be useful."	bug	closed	high	6.12.1	libraries/base	6.11	fixed			Unknown/Multiple	Unknown/Multiple		Unknown				
