packages feed

vty 4.0.0 → 4.0.0.1

raw patch · 2 files changed

+8/−8 lines, 2 files

Files

src/Codec/Binary/UTF8/Width.hs view
@@ -1,6 +1,6 @@ -- Copyright 2009 Corey O'Connor {-# OPTIONS_GHC -D_XOPEN_SOURCE -fno-cse #-}-{-# LANGUAGE ForeignFunctionInterface #-}+{-# LANGUAGE ForeignFunctionInterface, BangPatterns #-} {-# INCLUDE <wchar.h> #-} module Codec.Binary.UTF8.Width ( wcwidth                                , wcswidth@@ -17,24 +17,24 @@ import System.IO.Unsafe  wcwidth :: Char -> Int-wcwidth c = unsafePerformIO (withCWString [c] $ \ws -> do+wcwidth c = unsafePerformIO (withCWString [c] $! \ws -> do     wc <- peek ws     -- putStr $ "wcwidth(0x" ++ showHex (fromEnum wc) "" ++ ")"-    w <- wcwidth' wc  >>= return . fromIntegral+    let !w = fromIntegral $! wcwidth' wc     -- putStrLn $ " -> " ++ show w     return w     ) {-# NOINLINE wcwidth #-} -foreign import ccall unsafe "mk_wcwidth" wcwidth' :: CWchar -> IO CInt+foreign import ccall unsafe "mk_wcwidth" wcwidth' :: CWchar -> CInt  wcswidth :: String -> Int-wcswidth str = unsafePerformIO (withCWString str $ \ws -> do+wcswidth str = unsafePerformIO (withCWStringLen str $! \(ws, ws_len) -> do     -- putStr $ "wcswidth(...)"-    w <- wcswidth' ws  >>= return . fromIntegral+    let !w = fromIntegral $! wcswidth' ws (fromIntegral ws_len)     -- putStrLn $ " -> " ++ show w     return w     ) {-# NOINLINE wcswidth #-} -foreign import ccall unsafe "mk_wcswidth" wcswidth' :: Ptr CWchar -> IO CInt+foreign import ccall unsafe "mk_wcswidth" wcswidth' :: Ptr CWchar -> CSize -> CInt
vty.cabal view
@@ -1,5 +1,5 @@ Name:                vty-Version:             4.0.0+Version:             4.0.0.1 License:             BSD3 License-file:        LICENSE Author:              Stefan O'Rear, Corey O'Connor