Address issue #108 #109

Merged
bnavetta merged 15 commits from git_status into master 2014-09-11 02:16:39 -05:00
1 changed files with 17 additions and 9 deletions
Showing only changes of commit 37ccc4c00d - Show all commits

View File

@ -27,16 +27,24 @@ const (
StatusIgnored = C.GIT_STATUS_IGNORED
)
type StatusList struct {
ptr *C.git_status_list
}
type StatusEntry struct {
Status Status
HeadToIndex DiffDelta
IndexToWorkdir DiffDelta
}
func statusEntryFromC(statusEntry *C.git_status_entry) StatusEntry {
return StatusEntry {
Status: Status(statusEntry.status),
HeadToIndex: diffDeltaFromC(statusEntry.head_to_index),
IndexToWorkdir: diffDeltaFromC(statusEntry.index_to_workdir),
}
}
type StatusList struct {
ptr *C.git_status_list
}
func newStatusListFromC(ptr *C.git_status_list) *StatusList {
if ptr == nil {
return nil
@ -60,10 +68,10 @@ func (statusList *StatusList) Free() error {
return nil
}
func statusEntryFromC(statusEntry *C.git_status_entry) StatusEntry {
return StatusEntry {
Status: Status(statusEntry.status),
HeadToIndex: diffDeltaFromC(statusEntry.head_to_index),
IndexToWorkdir: diffDeltaFromC(statusEntry.index_to_workdir),
func (statusList *StatusList) ByIndex(index int) (StatusEntry, error) {
if statusList.ptr == nil {
return StatusEntry{}, ErrInvalid
}
ptr := C.git_status_byindex(statusList.ptr, C.size_t(index))
return statusEntryFromC(ptr), nil
}