From 2e5102b71ab412bc2857410caa6f27a4ed2769a3 Mon Sep 17 00:00:00 2001 From: lye Date: Wed, 26 Feb 2014 04:34:38 -0600 Subject: [PATCH] Unwrap DiffLine; add types for git_diff_flag_t and git_delta_t. --- diff.go | 67 ++++++++++++++++++++++++--------------------------------- 1 file changed, 28 insertions(+), 39 deletions(-) diff --git a/diff.go b/diff.go index 0f3ee0f..208a701 100644 --- a/diff.go +++ b/diff.go @@ -11,20 +11,23 @@ import ( "unsafe" ) -const ( - DiffFlagBinary = C.GIT_DIFF_FLAG_BINARY - DiffFlagNotBinary = C.GIT_DIFF_FLAG_NOT_BINARY - DiffFlagValidOid = C.GIT_DIFF_FLAG_VALID_OID +type Delta int +type DiffFlag int - DeltaUnmodified = C.GIT_DELTA_UNMODIFIED - DeltaAdded = C.GIT_DELTA_ADDED - DeltaDeleted = C.GIT_DELTA_DELETED - DeltaModified = C.GIT_DELTA_MODIFIED - DeltaRenamed = C.GIT_DELTA_RENAMED - DeltaCopied = C.GIT_DELTA_COPIED - DeltaIgnored = C.GIT_DELTA_IGNORED - DeltaUntracked = C.GIT_DELTA_UNTRACKED - DeltaTypeChange = C.GIT_DELTA_TYPECHANGE +const ( + DiffFlagBinary = DiffFlag(C.GIT_DIFF_FLAG_BINARY) + DiffFlagNotBinary = DiffFlag(C.GIT_DIFF_FLAG_NOT_BINARY) + DiffFlagValidOid = DiffFlag(C.GIT_DIFF_FLAG_VALID_OID) + + DeltaUnmodified = Delta(C.GIT_DELTA_UNMODIFIED) + DeltaAdded = Delta(C.GIT_DELTA_ADDED) + DeltaDeleted = Delta(C.GIT_DELTA_DELETED) + DeltaModified = Delta(C.GIT_DELTA_MODIFIED) + DeltaRenamed = Delta(C.GIT_DELTA_RENAMED) + DeltaCopied = Delta(C.GIT_DELTA_COPIED) + DeltaIgnored = Delta(C.GIT_DELTA_IGNORED) + DeltaUntracked = Delta(C.GIT_DELTA_UNTRACKED) + DeltaTypeChange = Delta(C.GIT_DELTA_TYPECHANGE) DiffLineContext = C.GIT_DIFF_LINE_CONTEXT DiffLineAddition = C.GIT_DIFF_LINE_ADDITION @@ -80,12 +83,12 @@ func newDiffDelta(delta *C.git_diff_delta) *DiffDelta { } } -func (dd *DiffDelta) Status() int { - return int(dd.delta.status) +func (dd *DiffDelta) Status() Delta { + return Delta(dd.delta.status) } -func (dd *DiffDelta) Flags() uint32 { - return uint32(dd.delta.flags) +func (dd *DiffDelta) Flags() DiffFlag { + return DiffFlag(dd.delta.flags) } func (dd *DiffDelta) Similarity() uint16 { @@ -123,39 +126,25 @@ func (dh *DiffHunk) NewLines() int { } type DiffLine struct { - line C.git_diff_line + Origin byte + OldLineno int + NewLineno int + NumLines int Content string DiffHunk } func newDiffLine(delta *C.git_diff_delta, hunk *C.git_diff_hunk, line *C.git_diff_line) *DiffLine { return &DiffLine{ - line: *line, + Origin: byte(line.origin), + OldLineno: int(line.old_lineno), + NewLineno: int(line.new_lineno), + NumLines: int(line.num_lines), Content: C.GoStringN(line.content, C.int(line.content_len)), DiffHunk: *newDiffHunk(delta, hunk), } } -func (dl *DiffLine) Origin() byte { - return byte(dl.line.origin) -} - -func (dl *DiffLine) OldLineno() int { - return int(dl.line.old_lineno) -} - -func (dl *DiffLine) NewLineno() int { - return int(dl.line.new_lineno) -} - -func (dl *DiffLine) NumLines() int { - return int(dl.line.num_lines) -} - -func (dl *DiffLine) ContentOffset() int { - return int(dl.line.content_offset) -} - type Diff struct { ptr *C.git_diff }