module Bindings.Libgit2.Common where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
data C'git_strarray = C'git_strarray{
c'git_strarray'strings :: Ptr (CString),
c'git_strarray'count :: CSize
} deriving (Eq,Show)
p'git_strarray'strings p = plusPtr p 0
p'git_strarray'strings :: Ptr (C'git_strarray) -> Ptr (Ptr (CString))
p'git_strarray'count p = plusPtr p 4
p'git_strarray'count :: Ptr (C'git_strarray) -> Ptr (CSize)
instance Storable C'git_strarray where
sizeOf _ = 8
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
return $ C'git_strarray v0 v1
poke p (C'git_strarray v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
return ()
foreign import ccall "git_strarray_free" c'git_strarray_free
:: Ptr C'git_strarray -> IO ()
foreign import ccall "&git_strarray_free" p'git_strarray_free
:: FunPtr (Ptr C'git_strarray -> IO ())
foreign import ccall "git_strarray_copy" c'git_strarray_copy
:: Ptr C'git_strarray -> Ptr C'git_strarray -> IO (CInt)
foreign import ccall "&git_strarray_copy" p'git_strarray_copy
:: FunPtr (Ptr C'git_strarray -> Ptr C'git_strarray -> IO (CInt))
foreign import ccall "git_libgit2_version" c'git_libgit2_version
:: Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ()
foreign import ccall "&git_libgit2_version" p'git_libgit2_version
:: FunPtr (Ptr CInt -> Ptr CInt -> Ptr CInt -> IO ())
foreign import ccall "inline_GIT_PATH_LIST_SEPARATOR" c'GIT_PATH_LIST_SEPARATOR
:: CChar
c'GIT_PATH_MAX = 4096
c'GIT_PATH_MAX :: (Num a) => a