From 00f8f97d30be7992c16bc466532cb591e00314bf Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 16 Jan 2010 21:01:28 -0800 Subject: xdl_merge(): introduce xmparam_t for merge specific parameters So far we have only needed to be able to pass an option that is generic to xdiff family of functions to this function. Extend the interface so that we can give it merge specific parameters. Signed-off-by: Junio C Hamano --- builtin-merge-file.c | 4 ++-- ll-merge.c | 6 +++--- merge-file.c | 6 +++--- rerere.c | 4 ++-- xdiff/xdiff.h | 6 +++++- xdiff/xmerge.c | 3 ++- 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/builtin-merge-file.c b/builtin-merge-file.c index afd2ea7a73..11c3524a77 100644 --- a/builtin-merge-file.c +++ b/builtin-merge-file.c @@ -25,7 +25,7 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix) const char *names[3] = { NULL, NULL, NULL }; mmfile_t mmfs[3]; mmbuffer_t result = {NULL, 0}; - xpparam_t xpp = {XDF_NEED_MINIMAL}; + xmparam_t xmp = {{XDF_NEED_MINIMAL}}; int ret = 0, i = 0, to_stdout = 0; int merge_level = XDL_MERGE_ZEALOUS_ALNUM; int merge_style = 0, quiet = 0; @@ -68,7 +68,7 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix) } ret = xdl_merge(mmfs + 1, mmfs + 0, names[0], mmfs + 2, names[2], - &xpp, merge_level | merge_style, &result); + &xmp, merge_level | merge_style, &result); for (i = 0; i < 3; i++) free(mmfs[i].ptr); diff --git a/ll-merge.c b/ll-merge.c index f4b0a07377..be2bf433a9 100644 --- a/ll-merge.c +++ b/ll-merge.c @@ -61,7 +61,7 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused, mmfile_t *src2, const char *name2, int virtual_ancestor) { - xpparam_t xpp; + xmparam_t xmp; int style = 0; if (buffer_is_binary(orig->ptr, orig->size) || @@ -76,13 +76,13 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused, virtual_ancestor); } - memset(&xpp, 0, sizeof(xpp)); + memset(&xmp, 0, sizeof(xmp)); if (git_xmerge_style >= 0) style = git_xmerge_style; return xdl_merge(orig, src1, name1, src2, name2, - &xpp, XDL_MERGE_ZEALOUS | style, + &xmp, XDL_MERGE_ZEALOUS | style, result); } diff --git a/merge-file.c b/merge-file.c index 3120a95f78..5c00c7e1c1 100644 --- a/merge-file.c +++ b/merge-file.c @@ -27,12 +27,12 @@ static void free_mmfile(mmfile_t *f) static void *three_way_filemerge(mmfile_t *base, mmfile_t *our, mmfile_t *their, unsigned long *size) { mmbuffer_t res; - xpparam_t xpp; + xmparam_t xmp; int merge_status; - memset(&xpp, 0, sizeof(xpp)); + memset(&xmp, 0, sizeof(xmp)); merge_status = xdl_merge(base, our, ".our", their, ".their", - &xpp, XDL_MERGE_ZEALOUS, &res); + &xmp, XDL_MERGE_ZEALOUS, &res); if (merge_status < 0) return NULL; diff --git a/rerere.c b/rerere.c index d92990a6bb..adb069481c 100644 --- a/rerere.c +++ b/rerere.c @@ -332,7 +332,7 @@ static int merge(const char *name, const char *path) int ret; mmfile_t cur, base, other; mmbuffer_t result = {NULL, 0}; - xpparam_t xpp = {XDF_NEED_MINIMAL}; + xmparam_t xmp = {{XDF_NEED_MINIMAL}}; if (handle_file(path, NULL, rerere_path(name, "thisimage")) < 0) return 1; @@ -342,7 +342,7 @@ static int merge(const char *name, const char *path) read_mmfile(&other, rerere_path(name, "postimage"))) return 1; ret = xdl_merge(&base, &cur, "", &other, "", - &xpp, XDL_MERGE_ZEALOUS, &result); + &xmp, XDL_MERGE_ZEALOUS, &result); if (!ret) { FILE *f = fopen(path, "w"); if (!f) diff --git a/xdiff/xdiff.h b/xdiff/xdiff.h index 4da052a3ff..b265909c60 100644 --- a/xdiff/xdiff.h +++ b/xdiff/xdiff.h @@ -108,9 +108,13 @@ long xdl_mmfile_size(mmfile_t *mmf); int xdl_diff(mmfile_t *mf1, mmfile_t *mf2, xpparam_t const *xpp, xdemitconf_t const *xecfg, xdemitcb_t *ecb); +typedef struct s_xmparam { + xpparam_t xpp; +} xmparam_t; + int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1, mmfile_t *mf2, const char *name2, - xpparam_t const *xpp, int level, mmbuffer_t *result); + xmparam_t const *xmp, int level, mmbuffer_t *result); #ifdef __cplusplus } diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c index 1cb65a9516..5c37b4ed25 100644 --- a/xdiff/xmerge.c +++ b/xdiff/xmerge.c @@ -538,10 +538,11 @@ 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, - xpparam_t const *xpp, int flags, mmbuffer_t *result) { + xmparam_t const *xmp, int flags, mmbuffer_t *result) { xdchange_t *xscr1, *xscr2; xdfenv_t xe1, xe2; int status; + xpparam_t const *xpp = &xmp->xpp; result->ptr = NULL; result->size = 0; -- cgit v1.2.3