Merge pull request #323 from Coderlane/diff_stats_string

Add DiffStats String
This commit is contained in:
Carlos Martín Nieto 2016-08-05 16:23:34 +02:00 committed by GitHub
commit 1670c49c7e
1 changed files with 27 additions and 0 deletions

27
diff.go
View File

@ -217,6 +217,33 @@ func (stats *DiffStats) FilesChanged() int {
return int(C.git_diff_stats_files_changed(stats.ptr)) return int(C.git_diff_stats_files_changed(stats.ptr))
} }
type DiffStatsFormat int
const (
DiffStatsNone DiffStatsFormat = C.GIT_DIFF_STATS_NONE
DiffStatsFull DiffStatsFormat = C.GIT_DIFF_STATS_FULL
DiffStatsShort DiffStatsFormat = C.GIT_DIFF_STATS_SHORT
DiffStatsNumber DiffStatsFormat = C.GIT_DIFF_STATS_NUMBER
DiffStatsIncludeSummary DiffStatsFormat = C.GIT_DIFF_STATS_INCLUDE_SUMMARY
)
func (stats *DiffStats) String(format DiffStatsFormat,
width uint) (string, error) {
buf := C.git_buf{}
defer C.git_buf_free(&buf)
runtime.LockOSThread()
defer runtime.UnlockOSThread()
ret := C.git_diff_stats_to_buf(&buf,
stats.ptr, C.git_diff_stats_format_t(format), C.size_t(width))
if ret < 0 {
return "", MakeGitError(ret)
}
return C.GoString(buf.ptr), nil
}
func (diff *Diff) Stats() (*DiffStats, error) { func (diff *Diff) Stats() (*DiffStats, error) {
stats := new(DiffStats) stats := new(DiffStats)