git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH 2/8] xdl_merge(): introduce xmparam_t for merge specific parameters
Date: Sun, 17 Jan 2010 01:38:58 -0800	[thread overview]
Message-ID: <1263721144-18605-3-git-send-email-gitster@pobox.com> (raw)
In-Reply-To: <1263721144-18605-1-git-send-email-gitster@pobox.com>

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 <gitster@pobox.com>
---
 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 afd2ea7..11c3524 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 f4b0a07..be2bf43 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 3120a95..5c00c7e 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 d92990a..adb0694 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 4da052a..b265909 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 1cb65a9..5c37b4e 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;
-- 
1.6.6.405.g80ed6.dirty

  parent reply	other threads:[~2010-01-17  9:39 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-17  9:38 [PATCH 0/8] Rescuing repeated merge of Documentation/git-merge.txt Junio C Hamano
2010-01-17  9:38 ` [PATCH 1/8] git_attr(): fix function signature Junio C Hamano
2010-01-17  9:38 ` Junio C Hamano [this message]
2010-01-17  9:38 ` [PATCH 3/8] xdl_merge(): allow passing down marker_size in xmparam_t Junio C Hamano
2010-01-17  9:39 ` [PATCH 4/8] merge-tree: use ll_merge() not xdl_merge() Junio C Hamano
2010-01-17  9:39 ` [PATCH 5/8] rerere: use ll_merge() instead of using xdl_merge() Junio C Hamano
2010-01-17 11:52   ` Johannes Sixt
2010-01-17 19:01     ` Junio C Hamano
2010-01-17 20:40       ` Johannes Sixt
2010-01-17  9:39 ` [PATCH 6/8] conflict-marker-size: new attribute Junio C Hamano
2010-01-17  9:39 ` [PATCH 7/8] rerere: prepare for customizable conflict marker length Junio C Hamano
2010-01-17  9:39 ` [PATCH 8/8] rerere: honor conflict-marker-size attribute Junio C Hamano
2010-01-17 10:07 ` [PATCH 0/8] Rescuing repeated merge of Documentation/git-merge.txt Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1263721144-18605-3-git-send-email-gitster@pobox.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).