diff options
Diffstat (limited to 'src/merge_file.c')
-rw-r--r-- | src/merge_file.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/merge_file.c b/src/merge_file.c index 48fc46e57..9961ef297 100644 --- a/src/merge_file.c +++ b/src/merge_file.c @@ -130,7 +130,7 @@ int git_merge_files( git_merge_file_input *ancestor, git_merge_file_input *ours, git_merge_file_input *theirs, - git_merge_automerge_flags flags) + git_merge_file_options *opts) { xmparam_t xmparam; mmbuffer_t mmbuffer; @@ -152,11 +152,19 @@ int git_merge_files( out->path = merge_file_best_path(ancestor, ours, theirs); out->mode = merge_file_best_mode(ancestor, ours, theirs); - if (flags == GIT_MERGE_AUTOMERGE_FAVOR_OURS) + if (opts && opts->favor == GIT_MERGE_FILE_FAVOR_OURS) xmparam.favor = XDL_MERGE_FAVOR_OURS; - - if (flags == GIT_MERGE_AUTOMERGE_FAVOR_THEIRS) + else if (opts && opts->favor == GIT_MERGE_FILE_FAVOR_THEIRS) xmparam.favor = XDL_MERGE_FAVOR_THEIRS; + else if (opts && opts->favor == GIT_MERGE_FILE_FAVOR_UNION) + xmparam.favor = XDL_MERGE_FAVOR_UNION; + + xmparam.level = + (opts && (opts->flags & GIT_MERGE_FILE_SIMPLIFY_ALNUM)) ? + XDL_MERGE_ZEALOUS_ALNUM : XDL_MERGE_ZEALOUS; + + if (opts && opts->style == GIT_MERGE_FILE_STYLE_DIFF3) + xmparam.style = XDL_MERGE_DIFF3; if ((xdl_result = xdl_merge(&ancestor->mmfile, &ours->mmfile, &theirs->mmfile, &xmparam, &mmbuffer)) < 0) { |