summaryrefslogtreecommitdiff
path: root/diff.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-04-22 15:55:55 -0700
committerJunio C Hamano <gitster@pobox.com>2011-04-23 22:34:43 -0700
commit76399c0195278ed2b52716b821cf064f77131736 (patch)
tree87223414f3e8afc3214a955174a1041d25216f00 /diff.c
parent3749fde561ad495dea74b0d3a13bba571068396d (diff)
downloadgit-76399c0195278ed2b52716b821cf064f77131736.tar.gz
diff.c: return filepair from diff_unmerge()
The underlying diff_queue() returns diff_filepair so that the caller can further add information to it, and the helper function diff_unmerge() utilizes the feature itself, but does not expose it to its callers, which was kind of selfish. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'diff.c')
-rw-r--r--diff.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/diff.c b/diff.c
index 9a5c77c13f..4c34c64bd7 100644
--- a/diff.c
+++ b/diff.c
@@ -4308,20 +4308,23 @@ void diff_change(struct diff_options *options,
DIFF_OPT_SET(options, HAS_CHANGES);
}
-void diff_unmerge(struct diff_options *options,
- const char *path,
- unsigned mode, const unsigned char *sha1)
+struct diff_filepair *diff_unmerge(struct diff_options *options,
+ const char *path,
+ unsigned mode, const unsigned char *sha1)
{
+ struct diff_filepair *pair;
struct diff_filespec *one, *two;
if (options->prefix &&
strncmp(path, options->prefix, options->prefix_length))
- return;
+ return NULL;
one = alloc_filespec(path);
two = alloc_filespec(path);
fill_filespec(one, sha1, mode);
- diff_queue(&diff_queued_diff, one, two)->is_unmerged = 1;
+ pair = diff_queue(&diff_queued_diff, one, two);
+ pair->is_unmerged = 1;
+ return pair;
}
static char *run_textconv(const char *pgm, struct diff_filespec *spec,