packages feed

terminal-size 0.1.0.0 → 0.2.0.0

raw patch · 2 files changed

+15/−5 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- System.Console.Terminal.Size: size :: Integral n => IO (Window n)
+ System.Console.Terminal.Size: size :: Integral n => IO (Maybe (Window n))

Files

src/System/Console/Terminal/Size.hsc view
@@ -9,9 +9,13 @@   ( Window(..), size   ) where +import Control.Exception (catch) import Foreign import Foreign.C.Error import Foreign.C.Types+#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ < 706)+import Prelude hiding (catch)+#endif  #include <sys/ioctl.h> #include <unistd.h>@@ -21,7 +25,7 @@   -- Interesting part of @struct winsize@-data CWin = CWin { wsRow, wsCol :: CUShort }+data CWin = CWin CUShort CUShort  instance Storable CWin where   sizeOf _ = (#size struct winsize)@@ -49,13 +53,17 @@ -- -- >>> import System.Console.Terminal.Size -- >>> size--- Window {height = 60, width = 112}-size :: Integral n => IO (Window n)+-- Just (Window {height = 60, width = 112})+size :: Integral n => IO (Maybe (Window n)) size = with (CWin 0 0) $ \ws -> do   throwErrnoIfMinus1 "ioctl" $     ioctl (#const STDOUT_FILENO) (#const TIOCGWINSZ) ws   CWin row col <- peek ws-  return $ Window (fromIntegral row) (fromIntegral col)+  return . Just $ Window (fromIntegral row) (fromIntegral col)+ `catch` handler+ where+  handler :: (IOError -> IO (Maybe (Window h)))+  handler _ = return Nothing  foreign import ccall "sys/ioctl.h ioctl"   ioctl :: CInt -> CInt -> Ptr CWin -> IO CInt
terminal-size.cabal view
@@ -1,5 +1,5 @@ name:                terminal-size-version:             0.1.0.0+version:             0.2.0.0 synopsis:            Get terminal window height and width description:   Get terminal window height and width without ncurses dependency@@ -19,6 +19,8 @@   build-tools:       hsc2hs   hs-source-dirs:    src   exposed-modules:   System.Console.Terminal.Size+  ghc-options:       -Wall+                     -fno-warn-unused-do-bind  source-repository head   type:     git