From b3da0f16b5e47732bc1b2d632088830dab87a77d Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Sun, 9 Jul 2023 16:22:47 +0200 Subject: Handling of SIGWINCH (and some maintenance) --- src/System/IO/Terminal/IO.hs | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) (limited to 'src/System/IO/Terminal/IO.hs') diff --git a/src/System/IO/Terminal/IO.hs b/src/System/IO/Terminal/IO.hs index fb0f1c2..6d57d11 100644 --- a/src/System/IO/Terminal/IO.hs +++ b/src/System/IO/Terminal/IO.hs @@ -9,22 +9,15 @@ Portability : POSIX, macOS, Windows Extra terminal management utility functions. This module basically extends the @ansi-terminal@ package. -} -module System.IO.Terminal.IO - (queryTermSize - -- ,withWinchHandler - ,toAlternateScreen - ,fromAlternateScreen) - where +module System.IO.Terminal.IO ( + queryTermSize, + toAlternateScreen, + fromAlternateScreen, +) where --- import Foreign.C.Types import qualified System.Console.Terminal.Size as TS --- import System.Exit +import System.Exit import System.IO --- import System.Posix.Signals - - --- sigWINCH :: CInt --- sigWINCH = 28 -- | Request the current terminal size from the terminal. Probably not very @@ -32,20 +25,7 @@ import System.IO queryTermSize :: IO (Int, Int) queryTermSize = TS.size >>= \case Just win -> return (TS.width win, TS.height win) - Nothing -> error "Cannot get terminal size" - --- withWinchHandler :: IO () -> IO a -> IO a --- withWinchHandler h act = do --- prevh <- installHandler sigWINCH (Catch h) Nothing --- case prevh of --- Default -> return () --- Ignore -> return () --- _ -> die "ERROR: A signal handler was already installed for the WINCH signal!" - --- res <- act - --- _ <- installHandler sigWINCH prevh Nothing --- return res + Nothing -> die "ERROR: Cannot get terminal size" -- | Switch to the \"alternate screen\", if the terminal supports it. toAlternateScreen :: IO () -- cgit v1.2.3-70-g09d2