Ticket #2189 (new bug)
hSetBuffering stdin NoBuffering doesn't work on Windows
|Reported by:||FalconNL||Owned by:|
|Keywords:||hsetbuffering buffering buffer||Cc:||camio, igloo, Deewiant, ryani, sof, ddiaz, Artyom.Kazak@…, malaquias@…, dagitj@…|
|Type of failure:||None/Unknown||Difficulty:||Unknown|
|Test Case:||Blocked By:|
The following program repeats inputted characters until the escape key is pressed.
import IO import Monad import Char main :: IO () main = do hSetBuffering stdin NoBuffering inputLoop inputLoop :: IO () inputLoop = do i <- getContents mapM_ putChar $ takeWhile ((/= 27) . ord) i
Because of the "hSetBuffering stdin NoBuffering?" line it should not be necessary to press the enter key between keystrokes. This program works correctly in WinHugs? (sep 2006 version). However, GHC 6.8.2 does not repeat the characters until the enter key is pressed. The problem was reproduced with all GHC executables (ghci, ghc, runghc, runhaskell), using both cmd.exe and command.com on Windows XP Professional.