summaryrefslogtreecommitdiff
path: root/xdiff
diff options
context:
space:
mode:
authorBert Wesarg <bert.wesarg@googlemail.com>2010-03-01 22:46:26 +0100
committerJunio C Hamano <gitster@pobox.com>2010-03-02 11:51:48 -0800
commit560119b9abfa39504c93ed08735426dae947d5a9 (patch)
tree692dc5dd03e878f9650dfd0cc7c1d8b5c89e340d /xdiff
parentcd1d61c44fb5c3d1c8e4c19becb66d90bbb9c676 (diff)
downloadgit-560119b9abfa39504c93ed08735426dae947d5a9.tar.gz
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 <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'xdiff')
-rw-r--r--xdiff/xdiff.h11
-rw-r--r--xdiff/xmerge.c12
2 files changed, 11 insertions, 12 deletions
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
}
diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c
index c901ecb99c..87cafa7021 100644
--- a/xdiff/xmerge.c
+++ b/xdiff/xmerge.c
@@ -400,13 +400,13 @@ static int xdl_simplify_non_conflicts(xdfenv_t *xe1, xdmerge_t *m,
*/
static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1, const char *name1,
xdfenv_t *xe2, xdchange_t *xscr2, const char *name2,
- int flags, xmparam_t const *xmp, mmbuffer_t *result) {
+ xmparam_t const *xmp, mmbuffer_t *result) {
xdmerge_t *changes, *c;
xpparam_t const *xpp = &xmp->xpp;
int i0, i1, i2, chg0, chg1, chg2;
- int level = flags & XDL_MERGE_LEVEL_MASK;
- int style = flags & XDL_MERGE_STYLE_MASK;
- int favor = XDL_MERGE_FAVOR(flags);
+ int level = xmp->level;
+ int style = xmp->style;
+ int favor = xmp->favor;
if (style == XDL_MERGE_DIFF3) {
/*
@@ -556,7 +556,7 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1, const char *name1,
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) {
xdchange_t *xscr1, *xscr2;
xdfenv_t xe1, xe2;
int status;
@@ -593,7 +593,7 @@ int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1,
} else {
status = xdl_do_merge(&xe1, xscr1, name1,
&xe2, xscr2, name2,
- flags, xmp, result);
+ xmp, result);
}
xdl_free_script(xscr1);
xdl_free_script(xscr2);