From cd1d61c44fb5c3d1c8e4c19becb66d90bbb9c676 Mon Sep 17 00:00:00 2001 From: Bert Wesarg Date: Mon, 1 Mar 2010 22:46:25 +0100 Subject: make union merge an xdl merge favor The current union merge driver is implemented as an post process. But the xdl_merge code is quite capable to produce the result by itself. Therefore move it there. Signed-off-by: Bert Wesarg Signed-off-by: Junio C Hamano --- xdiff/xdiff.h | 1 + 1 file changed, 1 insertion(+) (limited to 'xdiff/xdiff.h') diff --git a/xdiff/xdiff.h b/xdiff/xdiff.h index 3f6229edbe..22614d56ed 100644 --- a/xdiff/xdiff.h +++ b/xdiff/xdiff.h @@ -61,6 +61,7 @@ extern "C" { /* merge favor modes */ #define XDL_MERGE_FAVOR_OURS 1 #define XDL_MERGE_FAVOR_THEIRS 2 +#define XDL_MERGE_FAVOR_UNION 3 #define XDL_MERGE_FAVOR(flags) (((flags)>>4) & 3) #define XDL_MERGE_FLAGS(level, style, favor) ((level)|(style)|((favor)<<4)) -- cgit v1.2.3 From 560119b9abfa39504c93ed08735426dae947d5a9 Mon Sep 17 00:00:00 2001 From: Bert Wesarg Date: Mon, 1 Mar 2010 22:46:26 +0100 Subject: refactor merge flags into xmparam_t Include the merge level, favor, and style flags into the xmparam_t struct. This removes the bit twiddling with these three values into the one flags parameter. Signed-off-by: Bert Wesarg Signed-off-by: Junio C Hamano --- xdiff/xdiff.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'xdiff/xdiff.h') diff --git a/xdiff/xdiff.h b/xdiff/xdiff.h index 22614d56ed..a71763ade8 100644 --- a/xdiff/xdiff.h +++ b/xdiff/xdiff.h @@ -56,18 +56,14 @@ extern "C" { #define XDL_MERGE_EAGER 1 #define XDL_MERGE_ZEALOUS 2 #define XDL_MERGE_ZEALOUS_ALNUM 3 -#define XDL_MERGE_LEVEL_MASK 0x0f /* merge favor modes */ #define XDL_MERGE_FAVOR_OURS 1 #define XDL_MERGE_FAVOR_THEIRS 2 #define XDL_MERGE_FAVOR_UNION 3 -#define XDL_MERGE_FAVOR(flags) (((flags)>>4) & 3) -#define XDL_MERGE_FLAGS(level, style, favor) ((level)|(style)|((favor)<<4)) /* merge output styles */ -#define XDL_MERGE_DIFF3 0x8000 -#define XDL_MERGE_STYLE_MASK 0x8000 +#define XDL_MERGE_DIFF3 1 typedef struct s_mmfile { char *ptr; @@ -118,13 +114,16 @@ int xdl_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, typedef struct s_xmparam { xpparam_t xpp; int marker_size; + int level; + int favor; + int style; } xmparam_t; #define DEFAULT_CONFLICT_MARKER_SIZE 7 int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1, mmfile_t *mf2, const char *name2, - xmparam_t const *xmp, int flags, mmbuffer_t *result); + xmparam_t const *xmp, mmbuffer_t *result); #ifdef __cplusplus } -- cgit v1.2.3