Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc-vty for openSUSE:Factory checked in at 2021-03-10 08:55:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-vty (Old) and /work/SRC/openSUSE:Factory/.ghc-vty.new.2378 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-vty" Wed Mar 10 08:55:58 2021 rev:8 rq:877687 version:5.33 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-vty/ghc-vty.changes 2020-12-22 11:48:52.693979584 +0100 +++ /work/SRC/openSUSE:Factory/.ghc-vty.new.2378/ghc-vty.changes 2021-03-10 08:57:53.642928542 +0100 @@ -1,0 +2,26 @@ +Wed Feb 24 19:35:07 UTC 2021 - [email protected] + +- Update vty to version 5.33 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- +Tue Feb 23 20:57:43 UTC 2021 - [email protected] + +- Update vty to version 5.33. + 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) + +------------------------------------------------------------------- Old: ---- vty-5.32.tar.gz New: ---- vty-5.33.tar.gz vty.cabal ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-vty.spec ++++++ --- /var/tmp/diff_new_pack.MrUJU8/_old 2021-03-10 08:57:54.378929302 +0100 +++ /var/tmp/diff_new_pack.MrUJU8/_new 2021-03-10 08:57:54.394929318 +0100 @@ -1,7 +1,7 @@ # # spec file for package ghc-vty # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,12 +19,13 @@ %global pkg_name vty %bcond_with tests Name: ghc-%{pkg_name} -Version: 5.32 +Version: 5.33 Release: 0 Summary: A simple terminal UI library License: BSD-3-Clause URL: https://hackage.haskell.org/package/%{pkg_name} Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz +Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal BuildRequires: chrpath BuildRequires: ghc-Cabal-devel BuildRequires: ghc-ansi-terminal-devel @@ -93,7 +94,7 @@ %prep %autosetup -n %{pkg_name}-%{version} -cabal-tweak-dep-ver microlens '< 0.4.12' '< 0.5' +cp -p %{SOURCE1} %{pkg_name}.cabal %build %ghc_lib_build ++++++ vty-5.32.tar.gz -> vty-5.33.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/CHANGELOG.md new/vty-5.33/CHANGELOG.md --- old/vty-5.32/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/CHANGELOG.md 2001-09-09 03:46:40.000000000 +0200 @@ -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 ---- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Codec/Binary/UTF8/Debug.hs new/vty-5.33/src/Codec/Binary/UTF8/Debug.hs --- old/vty-5.32/src/Codec/Binary/UTF8/Debug.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Codec/Binary/UTF8/Debug.hs 2001-09-09 03:46:40.000000000 +0200 @@ -14,5 +14,4 @@ utf8FromIso = encode . map toEnum ppUtf8 :: [Int] -> IO () -ppUtf8 = print . map (\f -> f "") . map showHex . utf8FromIso - +ppUtf8 = print . map (`showHex` "") . utf8FromIso diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Data/Terminfo/Eval.hs new/vty-5.33/src/Data/Terminfo/Eval.hs --- old/vty-5.32/src/Data/Terminfo/Eval.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Data/Terminfo/Eval.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Data/Terminfo/Parse.hs new/vty-5.33/src/Data/Terminfo/Parse.hs --- old/vty-5.32/src/Data/Terminfo/Parse.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Data/Terminfo/Parse.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Attributes/Color240.hs new/vty-5.33/src/Graphics/Vty/Attributes/Color240.hs --- old/vty-5.32/src/Graphics/Vty/Attributes/Color240.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Attributes/Color240.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Attributes.hs new/vty-5.33/src/Graphics/Vty/Attributes.hs --- old/vty-5.32/src/Graphics/Vty/Attributes.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Attributes.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,7 +1,4 @@ {-# LANGUAGE CPP #-} -{-# LANGUAGE StandaloneDeriving #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE RankNTypes #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} @@ -146,20 +143,14 @@ -- | 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 Default <> KeepCurrent = Default diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Image/Internal.hs new/vty-5.33/src/Graphics/Vty/Image/Internal.hs --- old/vty-5.32/src/Graphics/Vty/Image/Internal.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Image/Internal.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 " " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Image.hs new/vty-5.33/src/Graphics/Vty/Image.hs --- old/vty-5.32/src/Graphics/Vty/Image.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Image.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Inline.hs new/vty-5.33/src/Graphics/Vty/Inline.hs --- old/vty-5.32/src/Graphics/Vty/Inline.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Inline.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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' } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Input/Classify/Types.hs new/vty-5.33/src/Graphics/Vty/Input/Classify/Types.hs --- old/vty-5.32/src/Graphics/Vty/Input/Classify/Types.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Input/Classify/Types.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Input/Classify.hs new/vty-5.33/src/Graphics/Vty/Input/Classify.hs --- old/vty-5.32/src/Graphics/Vty/Input/Classify.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Input/Classify.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Input/Loop.hs new/vty-5.33/src/Graphics/Vty/Input/Loop.hs --- old/vty-5.32/src/Graphics/Vty/Input/Loop.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Input/Loop.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Input/Terminfo/ANSIVT.hs new/vty-5.33/src/Graphics/Vty/Input/Terminfo/ANSIVT.hs --- old/vty-5.32/src/Graphics/Vty/Input/Terminfo/ANSIVT.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Input/Terminfo/ANSIVT.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Input/Terminfo.hs new/vty-5.33/src/Graphics/Vty/Input/Terminfo.hs --- old/vty-5.32/src/Graphics/Vty/Input/Terminfo.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Input/Terminfo.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Output/Interface.hs new/vty-5.33/src/Graphics/Vty/Output/Interface.hs --- old/vty-5.32/src/Graphics/Vty/Output/Interface.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Output/Interface.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Output/TerminfoBased.hs new/vty-5.33/src/Graphics/Vty/Output/TerminfoBased.hs --- old/vty-5.32/src/Graphics/Vty/Output/TerminfoBased.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Output/TerminfoBased.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Output.hs new/vty-5.33/src/Graphics/Vty/Output.hs --- old/vty-5.32/src/Graphics/Vty/Output.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Output.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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. -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Picture.hs new/vty-5.33/src/Graphics/Vty/Picture.hs --- old/vty-5.32/src/Graphics/Vty/Picture.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Picture.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/PictureToSpans.hs new/vty-5.33/src/Graphics/Vty/PictureToSpans.hs --- old/vty-5.32/src/Graphics/Vty/PictureToSpans.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/PictureToSpans.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty/Span.hs new/vty-5.33/src/Graphics/Vty/Span.hs --- old/vty-5.32/src/Graphics/Vty/Span.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty/Span.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/src/Graphics/Vty.hs new/vty-5.33/src/Graphics/Vty.hs --- old/vty-5.32/src/Graphics/Vty.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/src/Graphics/Vty.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/test/VerifyColor240.hs new/vty-5.33/test/VerifyColor240.hs --- old/vty-5.32/test/VerifyColor240.hs 1970-01-01 01:00:00.000000000 +0100 +++ new/vty-5.33/test/VerifyColor240.hs 2001-09-09 03:46:40.000000000 +0200 @@ -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 + ] + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vty-5.32/vty.cabal new/vty-5.33/vty.cabal --- old/vty-5.32/vty.cabal 2001-09-09 03:46:40.000000000 +0200 +++ new/vty-5.33/vty.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -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, ++++++ vty.cabal ++++++ ++++ 653 lines (skipped)
