on master help sign in
Add rewrite rules to use wct(l)width instead of wcswidth/unpack
commitc3846569880544f75e7237ea3bf4a70743f13994 authorJonathan Daugherty <cygnus@foobox.com> dateWed 28 Nov 2018, 11:17 (8 years ago) parentd64ff96
1 file changed+8
src/Graphics/Text/Width.hs+8
src/Graphics/Text/Width.hs+8
@@ -21,12 +21,20 @@ foreign import ccall unsafe "vty_mk_wcwidth" wcwidth :: Char -> Int
2121
2222wcswidth :: String -> Int
2323wcswidth = foldl' (\l c -> wcwidth c + l) 0
24+{-# INLINE [1] wcswidth #-}
2425
2526wctwidth :: T.Text -> Int
2627wctwidth = T.foldl' (\l c -> wcwidth c + l) 0
28+{-# INLINE [1] wctwidth #-}
2729
2830wctlwidth :: TL.Text -> Int
2931wctlwidth = 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+ #-}
3038
3139-- XXX: Characters with unknown widths occupy 1 column?
3240--