on master help sign in
buildUnicodeWidthTable: cleanup
1faafd7Jonathan Daugherty
src/Graphics/Vty/UnicodeWidthTable/Query.hs+2−5
@@ -6,7 +6,6 @@ where
6
6
7import Control.Monad (forM)
7import Control.Monad (forM)
8import Data.Char (generalCategory, GeneralCategory(..))
8import Data.Char (generalCategory, GeneralCategory(..))
9−import Data.Maybe (catMaybes)
10import System.Console.ANSI (getCursorPosition)
9import System.Console.ANSI (getCursorPosition)
11import Text.Printf (printf)
10import Text.Printf (printf)
12
11
@@ -64,10 +63,8 @@ unicodeTableUpperBound = '\x2FFFF'
64-- system performance.
63-- system performance.
65buildUnicodeWidthTable :: IO UnicodeWidthTable
64buildUnicodeWidthTable :: IO UnicodeWidthTable
66buildUnicodeWidthTable = do
65buildUnicodeWidthTable = do
67− pairs <- fmap catMaybes $ forM ['\0'..unicodeTableUpperBound] $ \i ->
66+ pairs <- forM (filter shouldConsider ['\0'..unicodeTableUpperBound]) $ \i ->
68− if shouldConsider i
69− then (Just . (i,)) <$> charWidth i
67+ (i,) <$> charWidth i
70− else return Nothing
71
68
72 return UnicodeWidthTable { unicodeWidthTableRanges = reverse $ mkRanges pairs
69 return UnicodeWidthTable { unicodeWidthTableRanges = reverse $ mkRanges pairs
73 }
70 }