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); DIFF_OPT_SET(options, HAS_CHANGES);
} }
void diff_unmerge(struct diff_options *options, struct diff_filepair *diff_unmerge(struct diff_options *options,
const char *path, const char *path,
unsigned mode, const unsigned char *sha1) unsigned mode, const unsigned char *sha1)
{ {
struct diff_filepair *pair;
struct diff_filespec *one, *two; struct diff_filespec *one, *two;
if (options->prefix && if (options->prefix &&
strncmp(path, options->prefix, options->prefix_length)) strncmp(path, options->prefix, options->prefix_length))
return; return NULL;
one = alloc_filespec(path); one = alloc_filespec(path);
two = alloc_filespec(path); two = alloc_filespec(path);
fill_filespec(one, sha1, mode); 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, 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, const char *fullpath,
unsigned dirty_submodule1, unsigned dirty_submodule2); 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, const char *path,
unsigned mode, unsigned mode,
const unsigned char *sha1); const unsigned char *sha1);