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>
This commit is contained in:
Junio C Hamano 2011-04-22 15:55:55 -07:00
Родитель 3749fde561
Коммит 76399c0195
2 изменённых файлов: 9 добавлений и 6 удалений

13
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,

2
diff.h
Просмотреть файл

@ -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);