-{-# OPTIONS_GHC -cpp #-}
+{-# LANGUAGE CPP, ForeignFunctionInterface #-}
+
-----------------------------------------------------------------------------
-- |
-- Module : GHC.ConsoleHandler
module GHC.ConsoleHandler
#if !defined(mingw32_HOST_OS) && !defined(__HADDOCK__)
where
-import Prelude -- necessary to get dependencies right
#else /* whole file */
( Handler(..)
, installHandler
) where
{-
-#include "Signals.h"
+#include "rts/Signals.h"
-}
-import Prelude -- necessary to get dependencies right
-
import Foreign
import Foreign.C
import GHC.IO.FD
import Control.Concurrent.MVar
import Data.Typeable
+#ifdef mingw32_HOST_OS
+import Data.Maybe
+import GHC.Base
+#endif
+
data Handler
= Default
| Ignore
"handle is not a file descriptor" Nothing Nothing
Just fd -> do
throwErrnoIfMinus1Retry_ "flushConsole" $
- flush_console_fd (fromIntegral (fdFD fd))
+ flush_console_fd (fdFD fd)
foreign import ccall unsafe "consUtils.h flush_input_console__"
flush_console_fd :: CInt -> IO CInt