hSetBuffering NoBuffering and getChar don't work properly on Windows
With this program:
import System.IO
main = do { hSetBuffering stdin NoBuffering; run }
run = do { getChar; putStrLn "yes"; run }
if I type
abc<enter>def<enter><control-C>
then:
On Linux and OS X I get the desired output:
$ ./q
ayes
byes
cyes
yes
dyes
eyes
fyes
yes
^Cq: interrupted
In an MSYS window I get:
$ ./q
abc
def
In a cygwin window or a cmd windows I get:
$ ./q
abc
yes
yes
yes
yes
def
yes
yes
yes
yes
and the program doesn't die.
SSHing into cygwin I get:
$ ./q
abc
def
Trac metadata
Trac field | Value |
---|---|
Version | 6.9 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture | Unknown |