module System.Console.Terminfo.PrettyPrint.Curses
( initScr
, screenWidth
, endWin
) where
import Data.Functor
import Foreign.Marshal.Error (throwIfNull)
import Foreign.C.Types (CInt(..))
import Foreign.Ptr (Ptr)
import Foreign.Storable (peek)
type Window = Ptr ()
initScr :: IO Window
initScr = throwIfNull "initscr" initscr
foreign import ccall unsafe "cursed.h initscr" initscr :: IO Window
screenWidth :: IO Int
screenWidth = fromIntegral <$> peek colsPtr
foreign import ccall "cursed.h &COLS" colsPtr :: Ptr CInt
foreign import ccall unsafe "cursed.h endwin" endWin :: IO CInt