diff options
Diffstat (limited to 'll-merge.h')
| -rw-r--r-- | ll-merge.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/ll-merge.h b/ll-merge.h new file mode 100644 index 0000000000..ff7ca87bfa --- /dev/null +++ b/ll-merge.h @@ -0,0 +1,32 @@ +/* + * Low level 3-way in-core file merge. + */ + +#ifndef LL_MERGE_H +#define LL_MERGE_H + +#define LL_OPT_VIRTUAL_ANCESTOR (1 << 0) +#define LL_OPT_FAVOR_MASK ((1 << 1) | (1 << 2)) +#define LL_OPT_FAVOR_SHIFT 1 +#define LL_OPT_RENORMALIZE (1 << 3) + +static inline int ll_opt_favor(int flag) +{ + return (flag & LL_OPT_FAVOR_MASK) >> LL_OPT_FAVOR_SHIFT; +} + +static inline int create_ll_flag(int favor) +{ + return ((favor << LL_OPT_FAVOR_SHIFT) & LL_OPT_FAVOR_MASK); +} + +int ll_merge(mmbuffer_t *result_buf, + const char *path, + mmfile_t *ancestor, const char *ancestor_label, + mmfile_t *ours, const char *our_label, + mmfile_t *theirs, const char *their_label, + int flag); + +int ll_merge_marker_size(const char *path); + +#endif |
