(bm, bf_size) <- getBMode__ fo
mkBuffer__ fo bf_size
#endif
- hdl <- newHandle (Handle__ fo WriteHandle bm "stdout")
- -- when stdin and stdout are both connected to a terminal, ensure
- -- that anything buffered on stdout is flushed prior to reading from stdin.
- --
- hConnectTerms hdl stdin
- -- when stderr and stdout are both connected to a terminal, ensure
- -- that anything buffered on stdout is flushed prior to writing to
- -- stderr.
- hConnectTo hdl stderr
- return hdl
+ newHandle (Handle__ fo WriteHandle bm "stdout")
_ -> do ioError <- constructError "stdout"
newHandle (mkErrorHandle__ ioError)
)
#endif
(bm, bf_size) <- getBMode__ fo
mkBuffer__ fo bf_size
- newHandle (Handle__ fo ReadHandle bm "stdin")
+ hdl <- newHandle (Handle__ fo ReadHandle bm "stdin")
+ -- when stdin and stdout are both connected to a terminal, ensure
+ -- that anything buffered on stdout is flushed prior to reading from stdin.
+ --
+ hConnectTerms stdout hdl
+ return hdl
_ -> do ioError <- constructError "stdin"
newHandle (mkErrorHandle__ ioError)
)
fo <- makeForeignObj fo
addForeignFinalizer fo (freeStdFileObject fo)
#endif
- newHandle (Handle__ fo WriteHandle NoBuffering "stderr")
+ hdl <- newHandle (Handle__ fo WriteHandle NoBuffering "stderr")
+ -- when stderr and stdout are both connected to a terminal, ensure
+ -- that anything buffered on stdout is flushed prior to writing to
+ -- stderr.
+ hConnectTo stdout hdl
+ return hdl
_ -> do ioError <- constructError "stderr"
newHandle (mkErrorHandle__ ioError)