diff --git a/src/diff.c b/src/diff.c index aa69ee2..3c30589 100644 --- a/src/diff.c +++ b/src/diff.c @@ -88,8 +88,8 @@ diff_get_patch_byindex(git_diff_list* list, size_t idx) PyList_SetItem(py_hunk->lines, 0, to_unicode_n(header, header_len, NULL, NULL)); for (j=1; j < lines_in_hunk + 1; ++j) { - err = git_diff_patch_get_line_in_hunk(NULL, &line, - &line_len, NULL, NULL, patch, i, j - 1); + err = git_diff_patch_get_line_in_hunk(&py_hunk->origin, + &line, &line_len, NULL, NULL, patch, i, j - 1); if (err < 0) goto cleanup; @@ -279,6 +279,7 @@ Hunk_dealloc(Hunk *self) } PyMemberDef Hunk_members[] = { + MEMBER(Hunk, origin, T_CHAR, "origin."), MEMBER(Hunk, old_start, T_INT, "Old start."), MEMBER(Hunk, old_lines, T_INT, "Old lines."), MEMBER(Hunk, new_start, T_INT, "New start."), diff --git a/src/pygit2.c b/src/pygit2.c index e4a7c64..71a5437 100644 --- a/src/pygit2.c +++ b/src/pygit2.c @@ -338,15 +338,6 @@ moduleinit(PyObject* m) ADD_CONSTANT_INT(m, GIT_DELTA_COPIED) ADD_CONSTANT_INT(m, GIT_DELTA_IGNORED) ADD_CONSTANT_INT(m, GIT_DELTA_UNTRACKED) - /* Flags for diffed lines origin */ - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_CONTEXT) - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_ADDITION) - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_DELETION) - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_ADD_EOFNL) - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_DEL_EOFNL) - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_FILE_HDR) - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_HUNK_HDR) - ADD_CONSTANT_INT(m, GIT_DIFF_LINE_BINARY) /* Config */ INIT_TYPE(ConfigType, NULL, PyType_GenericNew) diff --git a/src/types.h b/src/types.h index fd4e4ca..05c068e 100644 --- a/src/types.h +++ b/src/types.h @@ -118,6 +118,7 @@ typedef struct { typedef struct { PyObject_HEAD PyObject* lines; + char origin; int old_start; int old_lines; int new_start; diff --git a/test/test_diff.py b/test/test_diff.py index 71e15cd..3074f8d 100644 --- a/test/test_diff.py +++ b/test/test_diff.py @@ -134,6 +134,7 @@ class DiffTest(utils.BareRepoTestCase): patch = diff[0] hunk = patch.hunks[0] + self.assertEqual(hunk.origin, '+') self.assertEqual(hunk.old_start, 1) self.assertEqual(hunk.old_lines, 1) self.assertEqual(hunk.new_start, 1)