"hSetBuffering stdin NoBuffering" messes up terminal

David Roundy droundy at jdj5.mit.edu
Tue Oct 21 13:24:51 EDT 2003


On Tue, Oct 21, 2003 at 04:39:27PM +0100, Simon Marlow wrote:
> > It's deliberate, but (AFAIK) not for those reasons. The idea is so
> > that "simple, stupid programs" do what the programmer expects (and
> > saving the list from lots of "my program doesn't get any input until
> > the user hits Return" questions).
> > 
> > If you were writing "stty" in Haskell, you would presumably use the
> > PosixTTY functions directly.
> 
> GHC 6.2 will have slightly better behaviour in this regard.  If the
> terminal settings are changed as a result of hSetBuffering, then they
> will be restored on exit.  This still allows stty-type programs to be
> written, as long as you don't also call hSetBuffering on the same
> Handle.

Yay! That seems like precisely the right thing to do.  :)
-- 
David Roundy
http://civet.berkeley.edu/droundy/


More information about the Haskell-Cafe mailing list