зеркало из https://github.com/microsoft/git.git
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:
Родитель
3749fde561
Коммит
76399c0195
13
diff.c
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
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);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче