libarchive-0.1.0.0: src/Codec/Archive/Foreign.hs
module Codec.Archive.Foreign ( unpackToDir
) where
import Foreign.Ptr
import Foreign.C.String
import Foreign.C.Types
import Data.ByteString as BS
import Data.Word (Word)
foreign import ccall unsafe unpack_in_dir :: CString -> Ptr CChar -> Word -> IO ()
unpackToDir :: FilePath
-> BS.ByteString
-> IO ()
unpackToDir fp bs = do
fp' <- newCString fp
useAsCStringLen bs $
\(charPtr, sz) ->
unpack_in_dir fp' charPtr (fromIntegral sz)