console-style 0.0.2.0 → 0.0.2.1
raw patch · 2 files changed
+13/−11 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- console-style.cabal +5/−3
- src/System/Console/Style.hs +8/−8
console-style.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: console-style-version: 0.0.2.0+version: 0.0.2.1 synopsis: Styled console text output using ANSI escape sequences. description: Styled console text output using ANSI escape sequences. category: Text, User Interfaces, Monad@@ -28,10 +28,12 @@ src ghc-options: -Wall build-depends:- base >= 4.8 && < 5+ base >= 4.8 && < 5 , transformers >= 0.4 && < 0.6 , mtl >= 2.2 && < 2.4- , semigroups >= 0.9 && < 1+ if impl(ghc < 8.0)+ build-depends:+ semigroups >= 0.9 && < 1 exposed-modules: System.Console.Style default-language: Haskell2010
src/System/Console/Style.hs view
@@ -88,11 +88,11 @@ | DullMagenta | DullCyan | DullWhite- | Color256 !Word8 -- ^ Color from 256 color scheme. Color is automatically degraded to 8 colors for older terminals.- | RGB !Word8 !Word8 !Word8 -- ^ True color. Color is automatically degraded to 256 or 8 colors for older terminals.+ | Color256 !Word8 -- ^ Color from 256 color scheme. Color is automatically reduced to 8 colors for less capable terminals.+ | RGB !Word8 !Word8 !Word8 -- ^ True color. Color is automatically reduced to 256 or 8 colors for less capable terminals. deriving (Eq, Ord, Show) --- | Terminal type. For older terminals the style is automatically degraded.+-- | Terminal type. For less capable terminals the color depth is automatically reduced. data Term = TermDumb -- ^ Dumb terminal - no color output | Term8 -- ^ 8 colors supported@@ -163,7 +163,7 @@ -- TODO improve this envToTerm :: String -> Term envToTerm "dumb" = TermDumb-envToTerm term | any (flip isPrefixOf term) rgbTerminals = TermRGB+envToTerm term | any (`isPrefixOf` term) rgbTerminals = TermRGB | "256" `isInfixOf` term = Term256 | otherwise = Term8 where rgbTerminals = ["xterm", "konsole", "gnome", "st", "linux"]@@ -293,7 +293,7 @@ reduceColor _ = id rgbToWord8 :: Word8 -> Word8 -> Word8 -> Word8 -> Word8 -> Word8-rgbToWord8 base q r g b = base * (base * (b `div` q) + (g `div` q)) + (r `div` q)+rgbToWord8 base q r g b = base * (base * (r `div` q) + (g `div` q)) + (b `div` q) gray24ToANSI :: Word8 -> Color gray24ToANSI x@@ -304,8 +304,8 @@ color216ToANSI :: Word8 -> Color color216ToANSI x = rgbToANSI 3 r g b- where (b,gr) = divMod x 36- (g,r) = divMod gr 6+ where (r,gb) = divMod x 36+ (g,b) = divMod gb 6 color16ToANSI :: Word8 -> Color color16ToANSI 0 = DullBlack@@ -332,7 +332,7 @@ bi = fromIntegral b rgbToANSI :: Word8 -> Word8 -> Word8 -> Word8 -> Color-rgbToANSI q r g b = color16ToANSI $ bool 0 8 (squareNorm r g b >= squareNorm q q q) + rgbToWord8 2 q r g b+rgbToANSI q r g b = color16ToANSI $ bool 0 8 (squareNorm r g b >= squareNorm q q q) + rgbToWord8 2 q b g r reduceColor8 :: Color -> Color reduceColor8 (Color256 x)