module Bindings.Libgit2.Index 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
import Bindings.Libgit2.Common
import Bindings.Libgit2.Types
import Bindings.Libgit2.Oid
data C'git_index_time = C'git_index_time{
c'git_index_time'seconds :: CLong,
c'git_index_time'nanoseconds :: CUInt
} deriving (Eq,Show)
p'git_index_time'seconds p = plusPtr p 0
p'git_index_time'seconds :: Ptr (C'git_index_time) -> Ptr (CLong)
p'git_index_time'nanoseconds p = plusPtr p 8
p'git_index_time'nanoseconds :: Ptr (C'git_index_time) -> Ptr (CUInt)
instance Storable C'git_index_time where
sizeOf _ = 12
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 8
return $ C'git_index_time v0 v1
poke p (C'git_index_time v0 v1) = do
pokeByteOff p 0 v0
pokeByteOff p 8 v1
return ()
data C'git_index_entry = C'git_index_entry{
c'git_index_entry'ctime :: C'git_index_time,
c'git_index_entry'mtime :: C'git_index_time,
c'git_index_entry'dev :: CUInt,
c'git_index_entry'ino :: CUInt,
c'git_index_entry'mode :: CUInt,
c'git_index_entry'uid :: CUInt,
c'git_index_entry'gid :: CUInt,
c'git_index_entry'file_size :: CLong,
c'git_index_entry'oid :: C'git_oid,
c'git_index_entry'flags :: CUShort,
c'git_index_entry'flags_extended :: CUShort,
c'git_index_entry'path :: CString
} deriving (Eq,Show)
p'git_index_entry'ctime p = plusPtr p 0
p'git_index_entry'ctime :: Ptr (C'git_index_entry) -> Ptr (C'git_index_time)
p'git_index_entry'mtime p = plusPtr p 12
p'git_index_entry'mtime :: Ptr (C'git_index_entry) -> Ptr (C'git_index_time)
p'git_index_entry'dev p = plusPtr p 24
p'git_index_entry'dev :: Ptr (C'git_index_entry) -> Ptr (CUInt)
p'git_index_entry'ino p = plusPtr p 28
p'git_index_entry'ino :: Ptr (C'git_index_entry) -> Ptr (CUInt)
p'git_index_entry'mode p = plusPtr p 32
p'git_index_entry'mode :: Ptr (C'git_index_entry) -> Ptr (CUInt)
p'git_index_entry'uid p = plusPtr p 36
p'git_index_entry'uid :: Ptr (C'git_index_entry) -> Ptr (CUInt)
p'git_index_entry'gid p = plusPtr p 40
p'git_index_entry'gid :: Ptr (C'git_index_entry) -> Ptr (CUInt)
p'git_index_entry'file_size p = plusPtr p 44
p'git_index_entry'file_size :: Ptr (C'git_index_entry) -> Ptr (CLong)
p'git_index_entry'oid p = plusPtr p 52
p'git_index_entry'oid :: Ptr (C'git_index_entry) -> Ptr (C'git_oid)
p'git_index_entry'flags p = plusPtr p 72
p'git_index_entry'flags :: Ptr (C'git_index_entry) -> Ptr (CUShort)
p'git_index_entry'flags_extended p = plusPtr p 74
p'git_index_entry'flags_extended :: Ptr (C'git_index_entry) -> Ptr (CUShort)
p'git_index_entry'path p = plusPtr p 76
p'git_index_entry'path :: Ptr (C'git_index_entry) -> Ptr (CString)
instance Storable C'git_index_entry where
sizeOf _ = 80
alignment _ = 4
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 12
v2 <- peekByteOff p 24
v3 <- peekByteOff p 28
v4 <- peekByteOff p 32
v5 <- peekByteOff p 36
v6 <- peekByteOff p 40
v7 <- peekByteOff p 44
v8 <- peekByteOff p 52
v9 <- peekByteOff p 72
v10 <- peekByteOff p 74
v11 <- peekByteOff p 76
return $ C'git_index_entry v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11
poke p (C'git_index_entry v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11) = do
pokeByteOff p 0 v0
pokeByteOff p 12 v1
pokeByteOff p 24 v2
pokeByteOff p 28 v3
pokeByteOff p 32 v4
pokeByteOff p 36 v5
pokeByteOff p 40 v6
pokeByteOff p 44 v7
pokeByteOff p 52 v8
pokeByteOff p 72 v9
pokeByteOff p 74 v10
pokeByteOff p 76 v11
return ()
data C'git_index_entry_unmerged = C'git_index_entry_unmerged{
c'git_index_entry_unmerged'mode :: [CUInt],
c'git_index_entry_unmerged'oid :: [C'git_oid],
c'git_index_entry_unmerged'path :: CString
} deriving (Eq,Show)
p'git_index_entry_unmerged'mode p = plusPtr p 0
p'git_index_entry_unmerged'mode :: Ptr (C'git_index_entry_unmerged) -> Ptr (CUInt)
p'git_index_entry_unmerged'oid p = plusPtr p 12
p'git_index_entry_unmerged'oid :: Ptr (C'git_index_entry_unmerged) -> Ptr (C'git_oid)
p'git_index_entry_unmerged'path p = plusPtr p 72
p'git_index_entry_unmerged'path :: Ptr (C'git_index_entry_unmerged) -> Ptr (CString)
instance Storable C'git_index_entry_unmerged where
sizeOf _ = 76
alignment _ = 4
peek p = do
v0 <- peekArray 3 (plusPtr p 0)
v1 <- peekArray 3 (plusPtr p 12)
v2 <- peekByteOff p 72
return $ C'git_index_entry_unmerged v0 v1 v2
poke p (C'git_index_entry_unmerged v0 v1 v2) = do
pokeArray (plusPtr p 0) (take 3 v0)
pokeArray (plusPtr p 12) (take 3 v1)
pokeByteOff p 72 v2
return ()
foreign import ccall "git_index_open" c'git_index_open
:: Ptr (Ptr C'git_index) -> CString -> IO (CInt)
foreign import ccall "&git_index_open" p'git_index_open
:: FunPtr (Ptr (Ptr C'git_index) -> CString -> IO (CInt))
foreign import ccall "git_index_clear" c'git_index_clear
:: Ptr C'git_index -> IO ()
foreign import ccall "&git_index_clear" p'git_index_clear
:: FunPtr (Ptr C'git_index -> IO ())
foreign import ccall "git_index_free" c'git_index_free
:: Ptr C'git_index -> IO ()
foreign import ccall "&git_index_free" p'git_index_free
:: FunPtr (Ptr C'git_index -> IO ())
foreign import ccall "git_index_read" c'git_index_read
:: Ptr C'git_index -> IO (CInt)
foreign import ccall "&git_index_read" p'git_index_read
:: FunPtr (Ptr C'git_index -> IO (CInt))
foreign import ccall "git_index_write" c'git_index_write
:: Ptr C'git_index -> IO (CInt)
foreign import ccall "&git_index_write" p'git_index_write
:: FunPtr (Ptr C'git_index -> IO (CInt))
foreign import ccall "git_index_find" c'git_index_find
:: Ptr C'git_index -> CString -> IO (CInt)
foreign import ccall "&git_index_find" p'git_index_find
:: FunPtr (Ptr C'git_index -> CString -> IO (CInt))
foreign import ccall "git_index_uniq" c'git_index_uniq
:: Ptr C'git_index -> IO ()
foreign import ccall "&git_index_uniq" p'git_index_uniq
:: FunPtr (Ptr C'git_index -> IO ())
foreign import ccall "git_index_add" c'git_index_add
:: Ptr C'git_index -> CString -> CInt -> IO (CInt)
foreign import ccall "&git_index_add" p'git_index_add
:: FunPtr (Ptr C'git_index -> CString -> CInt -> IO (CInt))
foreign import ccall "git_index_add2" c'git_index_add2
:: Ptr C'git_index -> Ptr C'git_index_entry -> IO (CInt)
foreign import ccall "&git_index_add2" p'git_index_add2
:: FunPtr (Ptr C'git_index -> Ptr C'git_index_entry -> IO (CInt))
foreign import ccall "git_index_append" c'git_index_append
:: Ptr C'git_index -> CString -> CInt -> IO (CInt)
foreign import ccall "&git_index_append" p'git_index_append
:: FunPtr (Ptr C'git_index -> CString -> CInt -> IO (CInt))
foreign import ccall "git_index_append2" c'git_index_append2
:: Ptr C'git_index -> Ptr C'git_index_entry -> IO (CInt)
foreign import ccall "&git_index_append2" p'git_index_append2
:: FunPtr (Ptr C'git_index -> Ptr C'git_index_entry -> IO (CInt))
foreign import ccall "git_index_remove" c'git_index_remove
:: Ptr C'git_index -> CInt -> IO (CInt)
foreign import ccall "&git_index_remove" p'git_index_remove
:: FunPtr (Ptr C'git_index -> CInt -> IO (CInt))
foreign import ccall "git_index_get" c'git_index_get
:: Ptr C'git_index -> CUInt -> IO (Ptr C'git_index_entry)
foreign import ccall "&git_index_get" p'git_index_get
:: FunPtr (Ptr C'git_index -> CUInt -> IO (Ptr C'git_index_entry))
foreign import ccall "git_index_entrycount" c'git_index_entrycount
:: Ptr C'git_index -> IO (CUInt)
foreign import ccall "&git_index_entrycount" p'git_index_entrycount
:: FunPtr (Ptr C'git_index -> IO (CUInt))
foreign import ccall "git_index_entrycount_unmerged" c'git_index_entrycount_unmerged
:: Ptr C'git_index -> IO (CUInt)
foreign import ccall "&git_index_entrycount_unmerged" p'git_index_entrycount_unmerged
:: FunPtr (Ptr C'git_index -> IO (CUInt))
foreign import ccall "git_index_get_unmerged_bypath" c'git_index_get_unmerged_bypath
:: Ptr C'git_index -> CString -> IO (Ptr C'git_index_entry_unmerged)
foreign import ccall "&git_index_get_unmerged_bypath" p'git_index_get_unmerged_bypath
:: FunPtr (Ptr C'git_index -> CString -> IO (Ptr C'git_index_entry_unmerged))
foreign import ccall "git_index_get_unmerged_byindex" c'git_index_get_unmerged_byindex
:: Ptr C'git_index -> CUInt -> IO (Ptr C'git_index_entry_unmerged)
foreign import ccall "&git_index_get_unmerged_byindex" p'git_index_get_unmerged_byindex
:: FunPtr (Ptr C'git_index -> CUInt -> IO (Ptr C'git_index_entry_unmerged))
foreign import ccall "git_index_entry_stage" c'git_index_entry_stage
:: Ptr C'git_index_entry -> IO (CInt)
foreign import ccall "&git_index_entry_stage" p'git_index_entry_stage
:: FunPtr (Ptr C'git_index_entry -> IO (CInt))
foreign import ccall "git_index_read_tree" c'git_index_read_tree
:: Ptr C'git_index -> Ptr C'git_tree -> IO (CInt)
foreign import ccall "&git_index_read_tree" p'git_index_read_tree
:: FunPtr (Ptr C'git_index -> Ptr C'git_tree -> IO (CInt))