summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2016-08-05 16:23:34 +0200
committerGitHub <[email protected]>2016-08-05 16:23:34 +0200
commit1670c49c7e02ba38aa10072a102a33c3e6d5e1c3 (patch)
tree4914b9c0e6d0a1ecbd8bf0f3337090a3cec280c7
parentf720800b507b72c0d64cdae70e2058bc620adc24 (diff)
parent981538924c7607980dd8328564cad6c0aedd6154 (diff)
Merge pull request #323 from Coderlane/diff_stats_string
Add DiffStats String
-rw-r--r--diff.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/diff.go b/diff.go
index 9a7ac78..8ae0512 100644
--- a/diff.go
+++ b/diff.go
@@ -217,6 +217,33 @@ func (stats *DiffStats) FilesChanged() int {
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) {
stats := new(DiffStats)