"hSetBuffering stdin NoBuffering" messes up terminal
simonmar at microsoft.com
Tue Oct 21 17:39:27 EDT 2003
> > If I understand recent changes correctly, this is a
> deliberate decision. The
> > idea is that if you wanted to write a program like 'stty'
> in Haskell, you'd
> > be very disappointed if the terminal settings got switched
> back the moment
> > your Haskell program terminated.
> 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
More information about the Haskell-Cafe