on master help sign in
Add rewrite rules to use wct(l)width instead of wcswidth/unpack
c384656Jonathan Daugherty
src/Graphics/Text/Width.hs+8
@@ -21,12 +21,20 @@ foreign import ccall unsafe "vty_mk_wcwidth" wcwidth :: Char -> Int
21
21
22wcswidth :: String -> Int
22wcswidth :: String -> Int
23wcswidth = foldl' (\l c -> wcwidth c + l) 0
23wcswidth = foldl' (\l c -> wcwidth c + l) 0
24+{-# INLINE [1] wcswidth #-}
24
25
25wctwidth :: T.Text -> Int
26wctwidth :: T.Text -> Int
26wctwidth = T.foldl' (\l c -> wcwidth c + l) 0
27wctwidth = T.foldl' (\l c -> wcwidth c + l) 0
28+{-# INLINE [1] wctwidth #-}
27
29
28wctlwidth :: TL.Text -> Int
30wctlwidth :: TL.Text -> Int
29wctlwidth = TL.foldl' (\l c -> wcwidth c + l) 0
31wctlwidth = TL.foldl' (\l c -> wcwidth c + l) 0
32+{-# INLINE [1] wctlwidth #-}
33+
34+{-# RULES
35+"wcswidth/unpack" forall x. wcswidth (T.unpack x) = wctwidth x
36+"wcswidth/lazy-unpack" forall x. wcswidth (TL.unpack x) = wctlwidth x
37+ #-}
30
38
31-- XXX: Characters with unknown widths occupy 1 column?
39-- XXX: Characters with unknown widths occupy 1 column?
32--
40--