From 76399c0195278ed2b52716b821cf064f77131736 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 22 Apr 2011 15:55:55 -0700 Subject: 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 --- diff.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'diff.c') 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, -- cgit v1.2.1 From fa7b290895ba2c4407ae818911ba620eaca53bbd Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 22 Apr 2011 16:05:58 -0700 Subject: diff: remove often unused parameters from diff_unmerge() e9c8409 (diff-index --cached --raw: show tree entry on the LHS for unmerged entries., 2007-01-05) added a pair as parameters to this function, to store them in the pre-image side of an unmerged file pair. Now the function is fixed to return the filepair it queued, we can make the caller on the special case codepath to do so. Signed-off-by: Junio C Hamano --- diff.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'diff.c') diff --git a/diff.c b/diff.c index 4c34c64bd7..d2c5c563bc 100644 --- a/diff.c +++ b/diff.c @@ -4308,9 +4308,7 @@ void diff_change(struct diff_options *options, DIFF_OPT_SET(options, HAS_CHANGES); } -struct diff_filepair *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) { struct diff_filepair *pair; struct diff_filespec *one, *two; @@ -4321,7 +4319,6 @@ struct diff_filepair *diff_unmerge(struct diff_options *options, one = alloc_filespec(path); two = alloc_filespec(path); - fill_filespec(one, sha1, mode); pair = diff_queue(&diff_queued_diff, one, two); pair->is_unmerged = 1; return pair; -- cgit v1.2.1