Browse Source

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>
maint
Junio C Hamano 14 years ago
parent
commit
76399c0195
  1. 13
      diff.c
  2. 2
      diff.h

13
diff.c

@ -4308,20 +4308,23 @@ void diff_change(struct diff_options *options, @@ -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,

2
diff.h

@ -209,7 +209,7 @@ extern void diff_change(struct diff_options *, @@ -209,7 +209,7 @@ extern void diff_change(struct diff_options *,
const char *fullpath,
unsigned dirty_submodule1, unsigned dirty_submodule2);

extern void diff_unmerge(struct diff_options *,
extern struct diff_filepair *diff_unmerge(struct diff_options *,
const char *path,
unsigned mode,
const unsigned char *sha1);

Loading…
Cancel
Save