vty 5.32 → 5.33
raw patch · 23 files changed
+391/−294 lines, 23 filesdep ~basedep ~microlensdep ~random
Dependency ranges changed: base, microlens, random
Files
- CHANGELOG.md +16/−0
- src/Codec/Binary/UTF8/Debug.hs +1/−2
- src/Data/Terminfo/Eval.hs +3/−3
- src/Data/Terminfo/Parse.hs +8/−9
- src/Graphics/Vty.hs +2/−2
- src/Graphics/Vty/Attributes.hs +2/−11
- src/Graphics/Vty/Attributes/Color240.hs +10/−218
- src/Graphics/Vty/Image.hs +0/−1
- src/Graphics/Vty/Image/Internal.hs +1/−1
- src/Graphics/Vty/Inline.hs +2/−4
- src/Graphics/Vty/Input/Classify.hs +4/−4
- src/Graphics/Vty/Input/Classify/Types.hs +1/−1
- src/Graphics/Vty/Input/Loop.hs +2/−2
- src/Graphics/Vty/Input/Terminfo.hs +1/−1
- src/Graphics/Vty/Input/Terminfo/ANSIVT.hs +1/−1
- src/Graphics/Vty/Output.hs +1/−1
- src/Graphics/Vty/Output/Interface.hs +6/−1
- src/Graphics/Vty/Output/TerminfoBased.hs +3/−6
- src/Graphics/Vty/Picture.hs +8/−1
- src/Graphics/Vty/PictureToSpans.hs +3/−3
- src/Graphics/Vty/Span.hs +2/−4
- test/VerifyColor240.hs +269/−0
- vty.cabal +45/−18
CHANGELOG.md view
@@ -1,4 +1,20 @@ +5.33+----++API changes:+* The `Cursor` type got a new `PositionOnly` constructor for cursor+ placement without visibility.++Package changes:+* Relaxed upper bound for `random`+* Updated `microlens` bounds to allow 0.4.12++Other improvements:+* Various hlint-driven improvements (thanks Willem Van Onsem)+* The implementation of `color240` was improved (thanks (Willem Van+ Onsem)+ 5.32 ----
src/Codec/Binary/UTF8/Debug.hs view
@@ -14,5 +14,4 @@ utf8FromIso = encode . map toEnum ppUtf8 :: [Int] -> IO ()-ppUtf8 = print . map (\f -> f "") . map showHex . utf8FromIso-+ppUtf8 = print . map (`showHex` "") . utf8FromIso
src/Data/Terminfo/Eval.hs view
@@ -42,7 +42,7 @@ readParam :: Word -> Eval CapParam readParam pn = do- !params <- get >>= return . evalParams+ !params <- evalParams <$> get return $! genericIndex params pn push :: CapParam -> Eval ()@@ -64,11 +64,11 @@ in snd $ runWriter (runStateT (writeCapOps (capOps cap)) s0) writeCapOps :: CapOps -> Eval ()-writeCapOps ops = mapM_ writeCapOp ops+writeCapOps = mapM_ writeCapOp writeCapOp :: CapOp -> Eval () writeCapOp (Bytes !offset !count) = do- !cap <- get >>= return . evalExpression+ !cap <- evalExpression <$> get let bytes = Vector.take count $ Vector.drop offset (capBytes cap) Vector.forM_ bytes $ tell.writeWord8 writeCapOp DecOut = do
src/Data/Terminfo/Parse.hs view
@@ -2,7 +2,6 @@ {-# LANGUAGE CPP #-} {-# OPTIONS_HADDOCK hide #-} {-# LANGUAGE NoMonomorphismRestriction #-}-{-# LANGUAGE NamedFieldPuns #-} {-# OPTIONS_GHC -funbox-strict-fields -O #-} module Data.Terminfo.Parse@@ -39,7 +38,7 @@ ++ " <= " ++ show (sourceString c) where hexDump :: [Word8] -> String- hexDump = foldr (\b s -> showHex b s) ""+ hexDump = foldr showHex "" instance NFData CapExpression where rnf (CapExpression ops !_bytes !str !c !pOps)@@ -99,7 +98,7 @@ Left e -> Left e Right buildResults -> Right $ constructCapExpression capString buildResults -constructCapExpression :: [Char] -> BuildResults -> CapExpression+constructCapExpression :: String -> BuildResults -> CapExpression constructCapExpression capString buildResults = let expr = CapExpression { capOps = outCapOps buildResults@@ -128,7 +127,7 @@ literalPercentParser :: CapParser BuildResults literalPercentParser = do _ <- char '%'- startOffset <- getState >>= return . nextOffset+ startOffset <- nextOffset <$> getState incOffset 1 return $ BuildResults 0 [Bytes startOffset 1] [] @@ -154,7 +153,7 @@ pushOpParser :: CapParser BuildResults pushOpParser = do _ <- char 'p'- paramN <- digit >>= return . (\d -> read [d])+ paramN <- read . pure <$> digit incOffset 2 return $ BuildResults (fromEnum paramN) [PushParam $ paramN - 1] [] @@ -299,7 +298,7 @@ bytesOpParser :: CapParser BuildResults bytesOpParser = do bytes <- many1 $ satisfy (/= '%')- startOffset <- getState >>= return . nextOffset+ startOffset <- nextOffset <$> getState let !c = length bytes !s <- getState let s' = s { nextOffset = startOffset + c }@@ -336,9 +335,9 @@ instance Semigroup BuildResults where v0 <> v1 = BuildResults- { outParamCount = (outParamCount v0) `max` (outParamCount v1)- , outCapOps = (outCapOps v0) <> (outCapOps v1)- , outParamOps = (outParamOps v0) <> (outParamOps v1)+ { outParamCount = outParamCount v0 `max` outParamCount v1+ , outCapOps = outCapOps v0 <> outCapOps v1+ , outParamOps = outParamOps v0 <> outParamOps v1 } instance Monoid BuildResults where
src/Graphics/Vty.hs view
@@ -166,7 +166,7 @@ internalMkVty input out = do reserveDisplay out - shutdownVar <- atomically $ newTVar False+ shutdownVar <- newTVarIO False let shutdownIo = do alreadyShutdown <- atomically $ swapTVar shutdownVar True when (not alreadyShutdown) $ do@@ -174,7 +174,7 @@ releaseDisplay out releaseTerminal out - let shutdownStatus = atomically $ readTVar shutdownVar+ let shutdownStatus = readTVarIO shutdownVar lastPicRef <- newIORef Nothing lastUpdateRef <- newIORef Nothing
src/Graphics/Vty/Attributes.hs view
@@ -1,7 +1,4 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE GADTs #-}-{-# LANGUAGE RankNTypes #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} @@ -146,19 +143,13 @@ -- | The style and color attributes can either be the terminal defaults. -- Or be equivalent to the previously applied style. Or be a specific -- value.-data MaybeDefault v where- Default :: MaybeDefault v- KeepCurrent :: MaybeDefault v- SetTo :: forall v . ( Eq v, Show v, Read v ) => !v -> MaybeDefault v+data MaybeDefault v = Default | KeepCurrent | SetTo !v+ deriving (Eq, Read, Show) instance (NFData v) => NFData (MaybeDefault v) where rnf Default = () rnf KeepCurrent = () rnf (SetTo v) = rnf v--deriving instance Eq v => Eq (MaybeDefault v)-deriving instance Eq v => Show (MaybeDefault v)-deriving instance (Eq v, Show v, Read v) => Read (MaybeDefault v) instance Eq v => Semigroup (MaybeDefault v) where Default <> Default = Default
src/Graphics/Vty/Attributes/Color240.hs view
@@ -39,226 +39,18 @@ | r == 218 && g == 218 && b == 218 = 237 | r == 228 && g == 228 && b == 228 = 238 | r == 238 && g == 238 && b == 238 = 239- | r <= 0 && g <= 0 && b <= 0 = 0- | r <= 0 && g <= 0 && b <= 95 = 1- | r <= 0 && g <= 0 && b <= 135 = 2- | r <= 0 && g <= 0 && b <= 175 = 3- | r <= 0 && g <= 0 && b <= 215 = 4- | r <= 0 && g <= 0 && b <= 255 = 5- | r <= 0 && g <= 95 && b <= 0 = 6- | r <= 0 && g <= 95 && b <= 95 = 7- | r <= 0 && g <= 95 && b <= 135 = 8- | r <= 0 && g <= 95 && b <= 175 = 9- | r <= 0 && g <= 95 && b <= 215 = 10- | r <= 0 && g <= 95 && b <= 255 = 11- | r <= 0 && g <= 135 && b <= 0 = 12- | r <= 0 && g <= 135 && b <= 95 = 13- | r <= 0 && g <= 135 && b <= 135 = 14- | r <= 0 && g <= 135 && b <= 175 = 15- | r <= 0 && g <= 135 && b <= 215 = 16- | r <= 0 && g <= 135 && b <= 255 = 17- | r <= 0 && g <= 175 && b <= 0 = 18- | r <= 0 && g <= 175 && b <= 95 = 19- | r <= 0 && g <= 175 && b <= 135 = 20- | r <= 0 && g <= 175 && b <= 175 = 21- | r <= 0 && g <= 175 && b <= 215 = 22- | r <= 0 && g <= 175 && b <= 255 = 23- | r <= 0 && g <= 215 && b <= 0 = 24- | r <= 0 && g <= 215 && b <= 95 = 25- | r <= 0 && g <= 215 && b <= 135 = 26- | r <= 0 && g <= 215 && b <= 175 = 27- | r <= 0 && g <= 215 && b <= 215 = 28- | r <= 0 && g <= 215 && b <= 255 = 29- | r <= 0 && g <= 255 && b <= 0 = 30- | r <= 0 && g <= 255 && b <= 95 = 31- | r <= 0 && g <= 255 && b <= 135 = 32- | r <= 0 && g <= 255 && b <= 175 = 33- | r <= 0 && g <= 255 && b <= 215 = 34- | r <= 0 && g <= 255 && b <= 255 = 35- | r <= 95 && g <= 0 && b <= 0 = 36- | r <= 95 && g <= 0 && b <= 95 = 37- | r <= 95 && g <= 0 && b <= 135 = 38- | r <= 95 && g <= 0 && b <= 175 = 39- | r <= 95 && g <= 0 && b <= 215 = 40- | r <= 95 && g <= 0 && b <= 255 = 41- | r <= 95 && g <= 95 && b <= 0 = 42- | r <= 95 && g <= 95 && b <= 95 = 43- | r <= 95 && g <= 95 && b <= 135 = 44- | r <= 95 && g <= 95 && b <= 175 = 45- | r <= 95 && g <= 95 && b <= 215 = 46- | r <= 95 && g <= 95 && b <= 255 = 47- | r <= 95 && g <= 135 && b <= 0 = 48- | r <= 95 && g <= 135 && b <= 95 = 49- | r <= 95 && g <= 135 && b <= 135 = 50- | r <= 95 && g <= 135 && b <= 175 = 51- | r <= 95 && g <= 135 && b <= 215 = 52- | r <= 95 && g <= 135 && b <= 255 = 53- | r <= 95 && g <= 175 && b <= 0 = 54- | r <= 95 && g <= 175 && b <= 95 = 55- | r <= 95 && g <= 175 && b <= 135 = 56- | r <= 95 && g <= 175 && b <= 175 = 57- | r <= 95 && g <= 175 && b <= 215 = 58- | r <= 95 && g <= 175 && b <= 255 = 59- | r <= 95 && g <= 215 && b <= 0 = 60- | r <= 95 && g <= 215 && b <= 95 = 61- | r <= 95 && g <= 215 && b <= 135 = 62- | r <= 95 && g <= 215 && b <= 175 = 63- | r <= 95 && g <= 215 && b <= 215 = 64- | r <= 95 && g <= 215 && b <= 255 = 65- | r <= 95 && g <= 255 && b <= 0 = 66- | r <= 95 && g <= 255 && b <= 95 = 67- | r <= 95 && g <= 255 && b <= 135 = 68- | r <= 95 && g <= 255 && b <= 175 = 69- | r <= 95 && g <= 255 && b <= 215 = 70- | r <= 95 && g <= 255 && b <= 255 = 71- | r <= 135 && g <= 0 && b <= 0 = 72- | r <= 135 && g <= 0 && b <= 95 = 73- | r <= 135 && g <= 0 && b <= 135 = 74- | r <= 135 && g <= 0 && b <= 175 = 75- | r <= 135 && g <= 0 && b <= 215 = 76- | r <= 135 && g <= 0 && b <= 255 = 77- | r <= 135 && g <= 95 && b <= 0 = 78- | r <= 135 && g <= 95 && b <= 95 = 79- | r <= 135 && g <= 95 && b <= 135 = 80- | r <= 135 && g <= 95 && b <= 175 = 81- | r <= 135 && g <= 95 && b <= 215 = 82- | r <= 135 && g <= 95 && b <= 255 = 83- | r <= 135 && g <= 135 && b <= 0 = 84- | r <= 135 && g <= 135 && b <= 95 = 85- | r <= 135 && g <= 135 && b <= 135 = 86- | r <= 135 && g <= 135 && b <= 175 = 87- | r <= 135 && g <= 135 && b <= 215 = 88- | r <= 135 && g <= 135 && b <= 255 = 89- | r <= 135 && g <= 175 && b <= 0 = 90- | r <= 135 && g <= 175 && b <= 95 = 91- | r <= 135 && g <= 175 && b <= 135 = 92- | r <= 135 && g <= 175 && b <= 175 = 93- | r <= 135 && g <= 175 && b <= 215 = 94- | r <= 135 && g <= 175 && b <= 255 = 95- | r <= 135 && g <= 215 && b <= 0 = 96- | r <= 135 && g <= 215 && b <= 95 = 97- | r <= 135 && g <= 215 && b <= 135 = 98- | r <= 135 && g <= 215 && b <= 175 = 99- | r <= 135 && g <= 215 && b <= 215 = 100- | r <= 135 && g <= 215 && b <= 255 = 101- | r <= 135 && g <= 255 && b <= 0 = 102- | r <= 135 && g <= 255 && b <= 95 = 103- | r <= 135 && g <= 255 && b <= 135 = 104- | r <= 135 && g <= 255 && b <= 175 = 105- | r <= 135 && g <= 255 && b <= 215 = 106- | r <= 135 && g <= 255 && b <= 255 = 107- | r <= 175 && g <= 0 && b <= 0 = 108- | r <= 175 && g <= 0 && b <= 95 = 109- | r <= 175 && g <= 0 && b <= 135 = 110- | r <= 175 && g <= 0 && b <= 175 = 111- | r <= 175 && g <= 0 && b <= 215 = 112- | r <= 175 && g <= 0 && b <= 255 = 113- | r <= 175 && g <= 95 && b <= 0 = 114- | r <= 175 && g <= 95 && b <= 95 = 115- | r <= 175 && g <= 95 && b <= 135 = 116- | r <= 175 && g <= 95 && b <= 175 = 117- | r <= 175 && g <= 95 && b <= 215 = 118- | r <= 175 && g <= 95 && b <= 255 = 119- | r <= 175 && g <= 135 && b <= 0 = 120- | r <= 175 && g <= 135 && b <= 95 = 121- | r <= 175 && g <= 135 && b <= 135 = 122- | r <= 175 && g <= 135 && b <= 175 = 123- | r <= 175 && g <= 135 && b <= 215 = 124- | r <= 175 && g <= 135 && b <= 255 = 125- | r <= 175 && g <= 175 && b <= 0 = 126- | r <= 175 && g <= 175 && b <= 95 = 127- | r <= 175 && g <= 175 && b <= 135 = 128- | r <= 175 && g <= 175 && b <= 175 = 129- | r <= 175 && g <= 175 && b <= 215 = 130- | r <= 175 && g <= 175 && b <= 255 = 131- | r <= 175 && g <= 215 && b <= 0 = 132- | r <= 175 && g <= 215 && b <= 95 = 133- | r <= 175 && g <= 215 && b <= 135 = 134- | r <= 175 && g <= 215 && b <= 175 = 135- | r <= 175 && g <= 215 && b <= 215 = 136- | r <= 175 && g <= 215 && b <= 255 = 137- | r <= 175 && g <= 255 && b <= 0 = 138- | r <= 175 && g <= 255 && b <= 95 = 139- | r <= 175 && g <= 255 && b <= 135 = 140- | r <= 175 && g <= 255 && b <= 175 = 141- | r <= 175 && g <= 255 && b <= 215 = 142- | r <= 175 && g <= 255 && b <= 255 = 143- | r <= 215 && g <= 0 && b <= 0 = 144- | r <= 215 && g <= 0 && b <= 95 = 145- | r <= 215 && g <= 0 && b <= 135 = 146- | r <= 215 && g <= 0 && b <= 175 = 147- | r <= 215 && g <= 0 && b <= 215 = 148- | r <= 215 && g <= 0 && b <= 255 = 149- | r <= 215 && g <= 95 && b <= 0 = 150- | r <= 215 && g <= 95 && b <= 95 = 151- | r <= 215 && g <= 95 && b <= 135 = 152- | r <= 215 && g <= 95 && b <= 175 = 153- | r <= 215 && g <= 95 && b <= 215 = 154- | r <= 215 && g <= 95 && b <= 255 = 155- | r <= 215 && g <= 135 && b <= 0 = 156- | r <= 215 && g <= 135 && b <= 95 = 157- | r <= 215 && g <= 135 && b <= 135 = 158- | r <= 215 && g <= 135 && b <= 175 = 159- | r <= 215 && g <= 135 && b <= 215 = 160- | r <= 215 && g <= 135 && b <= 255 = 161- | r <= 215 && g <= 175 && b <= 0 = 162- | r <= 215 && g <= 175 && b <= 95 = 163- | r <= 215 && g <= 175 && b <= 135 = 164- | r <= 215 && g <= 175 && b <= 175 = 165- | r <= 215 && g <= 175 && b <= 215 = 166- | r <= 215 && g <= 175 && b <= 255 = 167- | r <= 215 && g <= 215 && b <= 0 = 168- | r <= 215 && g <= 215 && b <= 95 = 169- | r <= 215 && g <= 215 && b <= 135 = 170- | r <= 215 && g <= 215 && b <= 175 = 171- | r <= 215 && g <= 215 && b <= 215 = 172- | r <= 215 && g <= 215 && b <= 255 = 173- | r <= 215 && g <= 255 && b <= 0 = 174- | r <= 215 && g <= 255 && b <= 95 = 175- | r <= 215 && g <= 255 && b <= 135 = 176- | r <= 215 && g <= 255 && b <= 175 = 177- | r <= 215 && g <= 255 && b <= 215 = 178- | r <= 215 && g <= 255 && b <= 255 = 179- | r <= 255 && g <= 0 && b <= 0 = 180- | r <= 255 && g <= 0 && b <= 95 = 181- | r <= 255 && g <= 0 && b <= 135 = 182- | r <= 255 && g <= 0 && b <= 175 = 183- | r <= 255 && g <= 0 && b <= 215 = 184- | r <= 255 && g <= 0 && b <= 255 = 185- | r <= 255 && g <= 95 && b <= 0 = 186- | r <= 255 && g <= 95 && b <= 95 = 187- | r <= 255 && g <= 95 && b <= 135 = 188- | r <= 255 && g <= 95 && b <= 175 = 189- | r <= 255 && g <= 95 && b <= 215 = 190- | r <= 255 && g <= 95 && b <= 255 = 191- | r <= 255 && g <= 135 && b <= 0 = 192- | r <= 255 && g <= 135 && b <= 95 = 193- | r <= 255 && g <= 135 && b <= 135 = 194- | r <= 255 && g <= 135 && b <= 175 = 195- | r <= 255 && g <= 135 && b <= 215 = 196- | r <= 255 && g <= 135 && b <= 255 = 197- | r <= 255 && g <= 175 && b <= 0 = 198- | r <= 255 && g <= 175 && b <= 95 = 199- | r <= 255 && g <= 175 && b <= 135 = 200- | r <= 255 && g <= 175 && b <= 175 = 201- | r <= 255 && g <= 175 && b <= 215 = 202- | r <= 255 && g <= 175 && b <= 255 = 203- | r <= 255 && g <= 215 && b <= 0 = 204- | r <= 255 && g <= 215 && b <= 95 = 205- | r <= 255 && g <= 215 && b <= 135 = 206- | r <= 255 && g <= 215 && b <= 175 = 207- | r <= 255 && g <= 215 && b <= 215 = 208- | r <= 255 && g <= 215 && b <= 255 = 209- | r <= 255 && g <= 255 && b <= 0 = 210- | r <= 255 && g <= 255 && b <= 95 = 211- | r <= 255 && g <= 255 && b <= 135 = 212- | r <= 255 && g <= 255 && b <= 175 = 213- | r <= 255 && g <= 255 && b <= 215 = 214- | r <= 255 && g <= 255 && b <= 255 = 215- | otherwise = error (printf "RGB color %d %d %d does not map to 240 palette."+ | otherwise = 36 * go r + 6 * go g + go b+ where go = simpleColor_ (error (printf "RGB color %d %d %d does not map to 240 palette." (fromIntegral r :: Int) (fromIntegral g :: Int)- (fromIntegral b :: Int))+ (fromIntegral b :: Int)))++simpleColor_ :: Integral i => Word8 -> i -> Word8+simpleColor_ e c+ | c <= 0 = 0+ | c <= 95 = 1+ | c <= 255 = fromIntegral ((c-16) `div` 40)+ | otherwise = e -- | Create a RGB triple from a value in the Color240 set. color240CodeToRGB :: Word8 -> Maybe (Int, Int, Int)
src/Graphics/Vty/Image.hs view
@@ -1,5 +1,4 @@ -- Copyright 2009-2010 Corey O'Connor-{-# LANGUAGE BangPatterns #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE DisambiguateRecordFields #-} -- | A Vty program makes 'Picture's from 'Image's. This module provides
src/Graphics/Vty/Image/Internal.hs view
@@ -146,7 +146,7 @@ -- | pretty print just the structure of an image. ppImageStructure :: Image -> String-ppImageStructure inImg = go 0 inImg+ppImageStructure = go 0 where go indent img = tab indent ++ pp indent img tab indent = concat $ replicate indent " "
src/Graphics/Vty/Inline.hs view
@@ -1,5 +1,3 @@-{-# LANGUAGE BangPatterns #-}- -- | The inline module provides a limited interface to changing the -- style of terminal output. The intention is for this interface to be -- used inline with other output systems.@@ -85,8 +83,8 @@ removeStyle sMask = modify $ \s -> s { inlineAttr = let style' = case attrStyle (inlineAttr s) of- Default -> error $ "Graphics.Vty.Inline: Cannot removeStyle if applyStyle never used."- KeepCurrent -> error $ "Graphics.Vty.Inline: Cannot removeStyle if applyStyle never used."+ Default -> error "Graphics.Vty.Inline: Cannot removeStyle if applyStyle never used."+ KeepCurrent -> error "Graphics.Vty.Inline: Cannot removeStyle if applyStyle never used." SetTo st -> st .&. complement sMask in (inlineAttr s) { attrStyle = SetTo style' } }
src/Graphics/Vty/Input/Classify.hs view
@@ -24,10 +24,10 @@ import Data.Char import Data.Word -compile :: ClassifyMap -> [Char] -> KClass+compile :: ClassifyMap -> String -> KClass compile table = cl' where -- take all prefixes and create a set of these- prefixSet = S.fromList $ concatMap (init . inits . fst) $ table+ prefixSet = S.fromList $ concatMap (init . inits . fst) table maxValidInputLength = maximum (map (length . fst) table) eventForInput = M.fromList table cl' [] = Prefix@@ -51,7 +51,7 @@ -- neither a prefix or a full event. [] -> Invalid -classify :: ClassifyMap -> [Char] -> KClass+classify :: ClassifyMap -> String -> KClass classify table = let standardClassifier = compile table in \s -> case s of@@ -64,7 +64,7 @@ c:cs | ord c >= 0xC2 -> classifyUtf8 c cs _ -> standardClassifier s -classifyUtf8 :: Char -> [Char] -> KClass+classifyUtf8 :: Char -> String -> KClass classifyUtf8 c cs = let n = utf8Length (ord c) (codepoint,rest) = splitAt n (c:cs)
src/Graphics/Vty/Input/Classify/Types.hs view
@@ -8,7 +8,7 @@ import Graphics.Vty.Input.Events data KClass- = Valid Event [Char]+ = Valid Event String -- ^ A valid event was parsed. Any unused characters from the input -- stream are also provided. | Invalid
src/Graphics/Vty/Input/Loop.hs view
@@ -137,7 +137,7 @@ threadWaitRead fd bytesRead <- fdReadBuf fd bufferPtr (fromIntegral maxBytes) if bytesRead > 0- then fmap (map $ chr . fromIntegral) $ peekArray (fromIntegral bytesRead) bufferPtr+ then map (chr . fromIntegral) <$> peekArray (fromIntegral bytesRead) bufferPtr else return [] when (not $ null stringRep) $ logMsg $ "input bytes: " ++ show stringRep return stringRep@@ -224,7 +224,7 @@ Just h -> do Config{ vmin = Just theVmin , vtime = Just theVtime- , termName = Just theTerm, .. } <- readIORef $ _configRef input+ , termName = Just theTerm } <- readIORef $ _configRef input _ <- hPrintf h "initial (vmin,vtime): %s\n" (show (theVmin, theVtime)) forM_ classifyTable $ \i -> case i of (inBytes, EvKey k mods) -> hPrintf h "map %s %s %s %s\n" (show theTerm)
src/Graphics/Vty/Input/Terminfo.hs view
@@ -74,7 +74,7 @@ ctrlChars :: ClassifyMap ctrlChars = [ ([toEnum x],EvKey (KChar y) [MCtrl])- | (x,y) <- zip ([0..31]) ('@':['a'..'z']++['['..'_'])+ | (x,y) <- zip [0..31] ('@':['a'..'z']++['['..'_']) , y /= 'i' -- Resolve issue #3 where CTRL-i hides TAB. , y /= 'h' -- CTRL-h should not hide BS ]
src/Graphics/Vty/Input/Terminfo/ANSIVT.hs view
@@ -59,7 +59,7 @@ -- This encoding depends on the terminal. functionKeys1 :: ClassifyMap functionKeys1 =- let f ff nrs m = [ ("\ESC["++show n++"~",EvKey (KFun $ n-(nrs!!0)+ff) m) | n <- nrs ] in+ let f ff nrs m = [ ("\ESC["++show n++"~",EvKey (KFun $ n-head nrs+ff) m) | n <- nrs ] in concat [f 1 [25,26] [MShift], f 3 [28,29] [MShift], f 5 [31..34] [MShift] ] -- | encoding for meta plus char
src/Graphics/Vty/Output.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE RecordWildCards, NamedFieldPuns, CPP #-}+{-# LANGUAGE RecordWildCards, CPP #-} -- | This module provides functions for accessing the current terminal -- or a specific terminal device. --
src/Graphics/Vty/Output/Interface.hs view
@@ -1,5 +1,4 @@ -- Copyright Corey O'Connor-{-# LANGUAGE BangPatterns #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE GADTs #-}@@ -207,6 +206,12 @@ AbsoluteCursor x y -> writeShowCursor dc `mappend` writeMoveCursor dc (clampX x) (clampY y)+ PositionOnly isAbs x y ->+ if isAbs+ then writeMoveCursor dc (clampX x) (clampY y)+ else let (ox, oy) = charToOutputPos m (clampX x, clampY y)+ m = cursorOutputMap ops $ picCursor pic+ in writeMoveCursor dc (clampX ox) (clampY oy) Cursor x y -> let m = cursorOutputMap ops $ picCursor pic (ox, oy) = charToOutputPos m (clampX x, clampY y)
src/Graphics/Vty/Output/TerminfoBased.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE CPP #-}@@ -15,7 +14,7 @@ where import Control.Monad (when)-import Data.Bits (shiftL)+import Data.Bits (shiftL, (.&.)) import qualified Data.ByteString as BS import Data.ByteString.Internal (toForeignPtr) import Data.Terminfo.Parse@@ -28,7 +27,6 @@ import Blaze.ByteString.Builder (Write, writeToByteString, writeStorable) -import Data.Bits ((.&.)) import Data.IORef import Data.Maybe (isJust, isNothing, fromJust) import Data.Word@@ -209,7 +207,7 @@ , assumedStateRef = newAssumedStateRef -- I think fix would help assure tActual is the only -- reference. I was having issues tho.- , mkDisplayContext = \tActual -> terminfoDisplayContext tActual terminfoCaps+ , mkDisplayContext = (`terminfoDisplayContext` terminfoCaps) } sendCap s = sendCapToTerminal t (s terminfoCaps) maybeSendCap s = when (isJust $ s terminfoCaps) . sendCap (fromJust . s)@@ -355,8 +353,7 @@ setColors -- implicitly resets the colors to the defaults SetState state -> writeCapExpr (fromJust $ setAttrStates- $ displayAttrCaps- $ terminfoCaps+ $ displayAttrCaps terminfoCaps ) (sgrArgsForState state) `mappend` setItalics
src/Graphics/Vty/Picture.hs view
@@ -1,4 +1,3 @@-{-# LANGUAGE BangPatterns #-} -- A 'Picture' is a background paired with a set of 'Image' layers. The -- 'Picture' data structure is representative of the final terminal -- view.@@ -82,6 +81,14 @@ NoCursor -- | Show the cursor at the given logical column accounting for -- character width in the presence of multi-column characters.+ | PositionOnly !Bool !Int !Int+ -- | Set the terminal's cursor position without displaying a cursor+ -- character. This is important for accessibility with screen+ -- readers where a cursor position needs to be reported but we may+ -- not want to show a block cursor in that location for cosmetic+ -- reasons. The boolean argument indicates whether the positioning+ -- should be absolute as with 'AbsoluteCursor' ('True') or logical+ -- as with 'Cursor' ('False'). | Cursor !Int !Int -- | Show the cursor at the given absolute terminal column and row | AbsoluteCursor !Int !Int
src/Graphics/Vty/PictureToSpans.hs view
@@ -81,7 +81,7 @@ combinedOpsForLayers pic r | regionWidth r == 0 || regionHeight r == 0 = MVector.new 0 | otherwise = do- layerOps <- mapM (\layer -> buildSpans layer r) (picLayers pic)+ layerOps <- mapM (`buildSpans` r) (picLayers pic) case layerOps of [] -> fail "empty picture" [ops] -> substituteSkips (picBackground pic) ops@@ -136,8 +136,8 @@ return upper mergeRowUnder :: SpanOps -> SpanOps -> SpanOps-mergeRowUnder upperRowOps lowerRowOps =- onUpperOp Vector.empty (Vector.head upperRowOps) (Vector.tail upperRowOps) lowerRowOps+mergeRowUnder upperRowOps =+ onUpperOp Vector.empty (Vector.head upperRowOps) (Vector.tail upperRowOps) where -- H: it will never be the case that we are out of upper ops -- before lower ops.
src/Graphics/Vty/Span.hs view
@@ -1,6 +1,4 @@ -- Copyright Corey O'Connor-{-# LANGUAGE BangPatterns #-}-{-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE GADTs #-} -- | A picture is translated into a sequences of state changes and -- character spans. The attribute is applied to all following spans,@@ -52,7 +50,7 @@ dropOps w = snd . splitOpsAt w splitOpsAt :: Int -> SpanOps -> (SpanOps, SpanOps)-splitOpsAt inW inOps = splitOpsAt' inW inOps+splitOpsAt = splitOpsAt' where splitOpsAt' 0 ops = (Vector.empty, ops) splitOpsAt' remainingColumns ops = case Vector.head ops of@@ -103,7 +101,7 @@ -- | The number of rows the DisplayOps are defined for. displayOpsRows :: DisplayOps -> Int-displayOpsRows ops = Vector.length ops+displayOpsRows = Vector.length affectedRegion :: DisplayOps -> DisplayRegion affectedRegion ops = (displayOpsColumns ops, displayOpsRows ops)
+ test/VerifyColor240.hs view
@@ -0,0 +1,269 @@+module VerifyColor240 where++import Data.Word(Word8)+import Verify++import Graphics.Vty.Attributes.Color240(rgbColorToColor240)++oldRgbColorToColor240 :: Integral i => i -> i -> i -> Word8+oldRgbColorToColor240 r g b+ | r < 0 && g < 0 && b < 0 = error "rgbColor with negative color component intensity"+ | r == 8 && g == 8 && b == 8 = 216+ | r == 18 && g == 18 && b == 18 = 217+ | r == 28 && g == 28 && b == 28 = 218+ | r == 38 && g == 38 && b == 38 = 219+ | r == 48 && g == 48 && b == 48 = 220+ | r == 58 && g == 58 && b == 58 = 221+ | r == 68 && g == 68 && b == 68 = 222+ | r == 78 && g == 78 && b == 78 = 223+ | r == 88 && g == 88 && b == 88 = 224+ | r == 98 && g == 98 && b == 98 = 225+ | r == 108 && g == 108 && b == 108 = 226+ | r == 118 && g == 118 && b == 118 = 227+ | r == 128 && g == 128 && b == 128 = 228+ | r == 138 && g == 138 && b == 138 = 229+ | r == 148 && g == 148 && b == 148 = 230+ | r == 158 && g == 158 && b == 158 = 231+ | r == 168 && g == 168 && b == 168 = 232+ | r == 178 && g == 178 && b == 178 = 233+ | r == 188 && g == 188 && b == 188 = 234+ | r == 198 && g == 198 && b == 198 = 235+ | r == 208 && g == 208 && b == 208 = 236+ | r == 218 && g == 218 && b == 218 = 237+ | r == 228 && g == 228 && b == 228 = 238+ | r == 238 && g == 238 && b == 238 = 239+ | r <= 0 && g <= 0 && b <= 0 = 0+ | r <= 0 && g <= 0 && b <= 95 = 1+ | r <= 0 && g <= 0 && b <= 135 = 2+ | r <= 0 && g <= 0 && b <= 175 = 3+ | r <= 0 && g <= 0 && b <= 215 = 4+ | r <= 0 && g <= 0 && b <= 255 = 5+ | r <= 0 && g <= 95 && b <= 0 = 6+ | r <= 0 && g <= 95 && b <= 95 = 7+ | r <= 0 && g <= 95 && b <= 135 = 8+ | r <= 0 && g <= 95 && b <= 175 = 9+ | r <= 0 && g <= 95 && b <= 215 = 10+ | r <= 0 && g <= 95 && b <= 255 = 11+ | r <= 0 && g <= 135 && b <= 0 = 12+ | r <= 0 && g <= 135 && b <= 95 = 13+ | r <= 0 && g <= 135 && b <= 135 = 14+ | r <= 0 && g <= 135 && b <= 175 = 15+ | r <= 0 && g <= 135 && b <= 215 = 16+ | r <= 0 && g <= 135 && b <= 255 = 17+ | r <= 0 && g <= 175 && b <= 0 = 18+ | r <= 0 && g <= 175 && b <= 95 = 19+ | r <= 0 && g <= 175 && b <= 135 = 20+ | r <= 0 && g <= 175 && b <= 175 = 21+ | r <= 0 && g <= 175 && b <= 215 = 22+ | r <= 0 && g <= 175 && b <= 255 = 23+ | r <= 0 && g <= 215 && b <= 0 = 24+ | r <= 0 && g <= 215 && b <= 95 = 25+ | r <= 0 && g <= 215 && b <= 135 = 26+ | r <= 0 && g <= 215 && b <= 175 = 27+ | r <= 0 && g <= 215 && b <= 215 = 28+ | r <= 0 && g <= 215 && b <= 255 = 29+ | r <= 0 && g <= 255 && b <= 0 = 30+ | r <= 0 && g <= 255 && b <= 95 = 31+ | r <= 0 && g <= 255 && b <= 135 = 32+ | r <= 0 && g <= 255 && b <= 175 = 33+ | r <= 0 && g <= 255 && b <= 215 = 34+ | r <= 0 && g <= 255 && b <= 255 = 35+ | r <= 95 && g <= 0 && b <= 0 = 36+ | r <= 95 && g <= 0 && b <= 95 = 37+ | r <= 95 && g <= 0 && b <= 135 = 38+ | r <= 95 && g <= 0 && b <= 175 = 39+ | r <= 95 && g <= 0 && b <= 215 = 40+ | r <= 95 && g <= 0 && b <= 255 = 41+ | r <= 95 && g <= 95 && b <= 0 = 42+ | r <= 95 && g <= 95 && b <= 95 = 43+ | r <= 95 && g <= 95 && b <= 135 = 44+ | r <= 95 && g <= 95 && b <= 175 = 45+ | r <= 95 && g <= 95 && b <= 215 = 46+ | r <= 95 && g <= 95 && b <= 255 = 47+ | r <= 95 && g <= 135 && b <= 0 = 48+ | r <= 95 && g <= 135 && b <= 95 = 49+ | r <= 95 && g <= 135 && b <= 135 = 50+ | r <= 95 && g <= 135 && b <= 175 = 51+ | r <= 95 && g <= 135 && b <= 215 = 52+ | r <= 95 && g <= 135 && b <= 255 = 53+ | r <= 95 && g <= 175 && b <= 0 = 54+ | r <= 95 && g <= 175 && b <= 95 = 55+ | r <= 95 && g <= 175 && b <= 135 = 56+ | r <= 95 && g <= 175 && b <= 175 = 57+ | r <= 95 && g <= 175 && b <= 215 = 58+ | r <= 95 && g <= 175 && b <= 255 = 59+ | r <= 95 && g <= 215 && b <= 0 = 60+ | r <= 95 && g <= 215 && b <= 95 = 61+ | r <= 95 && g <= 215 && b <= 135 = 62+ | r <= 95 && g <= 215 && b <= 175 = 63+ | r <= 95 && g <= 215 && b <= 215 = 64+ | r <= 95 && g <= 215 && b <= 255 = 65+ | r <= 95 && g <= 255 && b <= 0 = 66+ | r <= 95 && g <= 255 && b <= 95 = 67+ | r <= 95 && g <= 255 && b <= 135 = 68+ | r <= 95 && g <= 255 && b <= 175 = 69+ | r <= 95 && g <= 255 && b <= 215 = 70+ | r <= 95 && g <= 255 && b <= 255 = 71+ | r <= 135 && g <= 0 && b <= 0 = 72+ | r <= 135 && g <= 0 && b <= 95 = 73+ | r <= 135 && g <= 0 && b <= 135 = 74+ | r <= 135 && g <= 0 && b <= 175 = 75+ | r <= 135 && g <= 0 && b <= 215 = 76+ | r <= 135 && g <= 0 && b <= 255 = 77+ | r <= 135 && g <= 95 && b <= 0 = 78+ | r <= 135 && g <= 95 && b <= 95 = 79+ | r <= 135 && g <= 95 && b <= 135 = 80+ | r <= 135 && g <= 95 && b <= 175 = 81+ | r <= 135 && g <= 95 && b <= 215 = 82+ | r <= 135 && g <= 95 && b <= 255 = 83+ | r <= 135 && g <= 135 && b <= 0 = 84+ | r <= 135 && g <= 135 && b <= 95 = 85+ | r <= 135 && g <= 135 && b <= 135 = 86+ | r <= 135 && g <= 135 && b <= 175 = 87+ | r <= 135 && g <= 135 && b <= 215 = 88+ | r <= 135 && g <= 135 && b <= 255 = 89+ | r <= 135 && g <= 175 && b <= 0 = 90+ | r <= 135 && g <= 175 && b <= 95 = 91+ | r <= 135 && g <= 175 && b <= 135 = 92+ | r <= 135 && g <= 175 && b <= 175 = 93+ | r <= 135 && g <= 175 && b <= 215 = 94+ | r <= 135 && g <= 175 && b <= 255 = 95+ | r <= 135 && g <= 215 && b <= 0 = 96+ | r <= 135 && g <= 215 && b <= 95 = 97+ | r <= 135 && g <= 215 && b <= 135 = 98+ | r <= 135 && g <= 215 && b <= 175 = 99+ | r <= 135 && g <= 215 && b <= 215 = 100+ | r <= 135 && g <= 215 && b <= 255 = 101+ | r <= 135 && g <= 255 && b <= 0 = 102+ | r <= 135 && g <= 255 && b <= 95 = 103+ | r <= 135 && g <= 255 && b <= 135 = 104+ | r <= 135 && g <= 255 && b <= 175 = 105+ | r <= 135 && g <= 255 && b <= 215 = 106+ | r <= 135 && g <= 255 && b <= 255 = 107+ | r <= 175 && g <= 0 && b <= 0 = 108+ | r <= 175 && g <= 0 && b <= 95 = 109+ | r <= 175 && g <= 0 && b <= 135 = 110+ | r <= 175 && g <= 0 && b <= 175 = 111+ | r <= 175 && g <= 0 && b <= 215 = 112+ | r <= 175 && g <= 0 && b <= 255 = 113+ | r <= 175 && g <= 95 && b <= 0 = 114+ | r <= 175 && g <= 95 && b <= 95 = 115+ | r <= 175 && g <= 95 && b <= 135 = 116+ | r <= 175 && g <= 95 && b <= 175 = 117+ | r <= 175 && g <= 95 && b <= 215 = 118+ | r <= 175 && g <= 95 && b <= 255 = 119+ | r <= 175 && g <= 135 && b <= 0 = 120+ | r <= 175 && g <= 135 && b <= 95 = 121+ | r <= 175 && g <= 135 && b <= 135 = 122+ | r <= 175 && g <= 135 && b <= 175 = 123+ | r <= 175 && g <= 135 && b <= 215 = 124+ | r <= 175 && g <= 135 && b <= 255 = 125+ | r <= 175 && g <= 175 && b <= 0 = 126+ | r <= 175 && g <= 175 && b <= 95 = 127+ | r <= 175 && g <= 175 && b <= 135 = 128+ | r <= 175 && g <= 175 && b <= 175 = 129+ | r <= 175 && g <= 175 && b <= 215 = 130+ | r <= 175 && g <= 175 && b <= 255 = 131+ | r <= 175 && g <= 215 && b <= 0 = 132+ | r <= 175 && g <= 215 && b <= 95 = 133+ | r <= 175 && g <= 215 && b <= 135 = 134+ | r <= 175 && g <= 215 && b <= 175 = 135+ | r <= 175 && g <= 215 && b <= 215 = 136+ | r <= 175 && g <= 215 && b <= 255 = 137+ | r <= 175 && g <= 255 && b <= 0 = 138+ | r <= 175 && g <= 255 && b <= 95 = 139+ | r <= 175 && g <= 255 && b <= 135 = 140+ | r <= 175 && g <= 255 && b <= 175 = 141+ | r <= 175 && g <= 255 && b <= 215 = 142+ | r <= 175 && g <= 255 && b <= 255 = 143+ | r <= 215 && g <= 0 && b <= 0 = 144+ | r <= 215 && g <= 0 && b <= 95 = 145+ | r <= 215 && g <= 0 && b <= 135 = 146+ | r <= 215 && g <= 0 && b <= 175 = 147+ | r <= 215 && g <= 0 && b <= 215 = 148+ | r <= 215 && g <= 0 && b <= 255 = 149+ | r <= 215 && g <= 95 && b <= 0 = 150+ | r <= 215 && g <= 95 && b <= 95 = 151+ | r <= 215 && g <= 95 && b <= 135 = 152+ | r <= 215 && g <= 95 && b <= 175 = 153+ | r <= 215 && g <= 95 && b <= 215 = 154+ | r <= 215 && g <= 95 && b <= 255 = 155+ | r <= 215 && g <= 135 && b <= 0 = 156+ | r <= 215 && g <= 135 && b <= 95 = 157+ | r <= 215 && g <= 135 && b <= 135 = 158+ | r <= 215 && g <= 135 && b <= 175 = 159+ | r <= 215 && g <= 135 && b <= 215 = 160+ | r <= 215 && g <= 135 && b <= 255 = 161+ | r <= 215 && g <= 175 && b <= 0 = 162+ | r <= 215 && g <= 175 && b <= 95 = 163+ | r <= 215 && g <= 175 && b <= 135 = 164+ | r <= 215 && g <= 175 && b <= 175 = 165+ | r <= 215 && g <= 175 && b <= 215 = 166+ | r <= 215 && g <= 175 && b <= 255 = 167+ | r <= 215 && g <= 215 && b <= 0 = 168+ | r <= 215 && g <= 215 && b <= 95 = 169+ | r <= 215 && g <= 215 && b <= 135 = 170+ | r <= 215 && g <= 215 && b <= 175 = 171+ | r <= 215 && g <= 215 && b <= 215 = 172+ | r <= 215 && g <= 215 && b <= 255 = 173+ | r <= 215 && g <= 255 && b <= 0 = 174+ | r <= 215 && g <= 255 && b <= 95 = 175+ | r <= 215 && g <= 255 && b <= 135 = 176+ | r <= 215 && g <= 255 && b <= 175 = 177+ | r <= 215 && g <= 255 && b <= 215 = 178+ | r <= 215 && g <= 255 && b <= 255 = 179+ | r <= 255 && g <= 0 && b <= 0 = 180+ | r <= 255 && g <= 0 && b <= 95 = 181+ | r <= 255 && g <= 0 && b <= 135 = 182+ | r <= 255 && g <= 0 && b <= 175 = 183+ | r <= 255 && g <= 0 && b <= 215 = 184+ | r <= 255 && g <= 0 && b <= 255 = 185+ | r <= 255 && g <= 95 && b <= 0 = 186+ | r <= 255 && g <= 95 && b <= 95 = 187+ | r <= 255 && g <= 95 && b <= 135 = 188+ | r <= 255 && g <= 95 && b <= 175 = 189+ | r <= 255 && g <= 95 && b <= 215 = 190+ | r <= 255 && g <= 95 && b <= 255 = 191+ | r <= 255 && g <= 135 && b <= 0 = 192+ | r <= 255 && g <= 135 && b <= 95 = 193+ | r <= 255 && g <= 135 && b <= 135 = 194+ | r <= 255 && g <= 135 && b <= 175 = 195+ | r <= 255 && g <= 135 && b <= 215 = 196+ | r <= 255 && g <= 135 && b <= 255 = 197+ | r <= 255 && g <= 175 && b <= 0 = 198+ | r <= 255 && g <= 175 && b <= 95 = 199+ | r <= 255 && g <= 175 && b <= 135 = 200+ | r <= 255 && g <= 175 && b <= 175 = 201+ | r <= 255 && g <= 175 && b <= 215 = 202+ | r <= 255 && g <= 175 && b <= 255 = 203+ | r <= 255 && g <= 215 && b <= 0 = 204+ | r <= 255 && g <= 215 && b <= 95 = 205+ | r <= 255 && g <= 215 && b <= 135 = 206+ | r <= 255 && g <= 215 && b <= 175 = 207+ | r <= 255 && g <= 215 && b <= 215 = 208+ | r <= 255 && g <= 215 && b <= 255 = 209+ | r <= 255 && g <= 255 && b <= 0 = 210+ | r <= 255 && g <= 255 && b <= 95 = 211+ | r <= 255 && g <= 255 && b <= 135 = 212+ | r <= 255 && g <= 255 && b <= 175 = 213+ | r <= 255 && g <= 255 && b <= 215 = 214+ | r <= 255 && g <= 255 && b <= 255 = 215+ | otherwise = error (printf "RGB color %d %d %d does not map to 240 palette."+ (fromIntegral r :: Int)+ (fromIntegral g :: Int)+ (fromIntegral b :: Int))++sameColor :: Int -> Int -> Int -> Bool+sameColor r g b = oldRgbColorToColor240 r g b == rgbColorToColor240 r g b++genVal :: Gen Int+genVal = chooseInt (0, 255)++sameColorCheck :: Property+sameColorCheck = forAll genVal (\r -> forAll genVal (\g -> forAll genVal (sameColor r g)))++tests :: IO [Test]+tests = return+ [ verify "check rgbColorToColor240 optimization is correct" sameColorCheck+ ]+
vty.cabal view
@@ -1,5 +1,5 @@ name: vty-version: 5.32+version: 5.33 license: BSD3 license-file: LICENSE author: AUTHORS@@ -45,7 +45,7 @@ deepseq >= 1.1 && < 1.5, directory, filepath >= 1.0 && < 2.0,- microlens < 0.4.12,+ microlens < 0.4.13, microlens-mtl, microlens-th, hashable >= 1.2,@@ -69,6 +69,7 @@ exposed-modules: Graphics.Vty Graphics.Vty.Attributes Graphics.Vty.Attributes.Color + Graphics.Vty.Attributes.Color240 Graphics.Vty.Config Graphics.Vty.Error Graphics.Vty.Image@@ -104,8 +105,7 @@ Graphics.Vty.UnicodeWidthTable.Query Graphics.Vty.UnicodeWidthTable.Install - other-modules: Graphics.Vty.Attributes.Color240- Graphics.Vty.Debug.Image+ other-modules: Graphics.Vty.Debug.Image Graphics.Vty.Input.Terminfo.ANSIVT c-sources: cbits/gwinsz.c@@ -189,7 +189,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -222,7 +222,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -255,7 +255,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -281,7 +281,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -308,7 +308,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, blaze-builder >= 0.3.3.2 && < 0.5, bytestring,@@ -338,7 +338,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -366,7 +366,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -393,7 +393,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -421,7 +421,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -453,7 +453,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -485,7 +485,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -517,6 +517,32 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,+ random >= 1.0 && < 1.3,+ base >= 4.8 && < 5,+ bytestring,+ containers,+ deepseq >= 1.1 && < 1.5,+ mtl >= 1.1.1.0 && < 2.3,+ text >= 0.11.3,+ unix,+ utf8-string >= 0.3 && < 1.1,+ vector >= 0.7++test-suite verify-color-mapping+ default-language: Haskell2010+ default-extensions: ScopedTypeVariables++ type: detailed-0.9++ hs-source-dirs: test++ test-module: VerifyColor240++ other-modules: Verify++ build-depends: vty,+ Cabal >= 1.20,+ QuickCheck >= 2.7, random >= 1.0 && < 1.2, base >= 4.8 && < 5, bytestring,@@ -528,6 +554,7 @@ utf8-string >= 0.3 && < 1.1, vector >= 0.7 + test-suite verify-utf8-width default-language: Haskell2010 default-extensions: ScopedTypeVariables@@ -543,7 +570,7 @@ build-depends: vty, Cabal >= 1.20, QuickCheck >= 2.7,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -571,7 +598,7 @@ quickcheck-assertions >= 0.1.1, test-framework == 0.8.*, test-framework-smallcheck == 0.2.*,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,@@ -607,7 +634,7 @@ test-framework == 0.8.*, test-framework-smallcheck == 0.2.*, test-framework-hunit,- random >= 1.0 && < 1.2,+ random >= 1.0 && < 1.3, base >= 4.8 && < 5, bytestring, containers,