Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
xmerge: make return value from xdl_merge() more usable.
author
Junio C Hamano
<junkio@cox.net>
Wed, 29 Nov 2006 20:06:49 +0000
(12:06 -0800)
committer
Junio C Hamano
<junkio@cox.net>
Sun, 3 Dec 2006 01:28:19 +0000
(17:28 -0800)
The callers would want to know if the resulting merge is clean;
do not discard that information away after calling xdl_do_merge().
Signed-off-by: Junio C Hamano <junkio@cox.net>
xdiff/xmerge.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
857b933
)
diff --git
a/xdiff/xmerge.c
b/xdiff/xmerge.c
index 7b85aa59062e5f6e617f62ef1003c4f9dd13de18..286f177b542811f67fc77f633445a12cb1b5f198 100644
(file)
--- a/
xdiff/xmerge.c
+++ b/
xdiff/xmerge.c
@@
-384,6
+384,7
@@
int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1,
xpparam_t const *xpp, int level, mmbuffer_t *result) {
xdchange_t *xscr1, *xscr2;
xdfenv_t xe1, xe2;
xpparam_t const *xpp, int level, mmbuffer_t *result) {
xdchange_t *xscr1, *xscr2;
xdfenv_t xe1, xe2;
+ int status;
result->ptr = NULL;
result->size = 0;
result->ptr = NULL;
result->size = 0;
@@
-404,6
+405,7
@@
int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1,
xdl_free_env(&xe2);
return -1;
}
xdl_free_env(&xe2);
return -1;
}
+ status = 0;
if (xscr1 || xscr2) {
if (!xscr1) {
result->ptr = xdl_malloc(mf2->size);
if (xscr1 || xscr2) {
if (!xscr1) {
result->ptr = xdl_malloc(mf2->size);
@@
-413,14
+415,10
@@
int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1,
result->ptr = xdl_malloc(mf1->size);
memcpy(result->ptr, mf1->ptr, mf1->size);
result->size = mf1->size;
result->ptr = xdl_malloc(mf1->size);
memcpy(result->ptr, mf1->ptr, mf1->size);
result->size = mf1->size;
- } else if (xdl_do_merge(&xe1, xscr1, name1,
- &xe2, xscr2, name2,
- level, xpp, result) < 0) {
- xdl_free_script(xscr1);
- xdl_free_script(xscr2);
- xdl_free_env(&xe1);
- xdl_free_env(&xe2);
- return -1;
+ } else {
+ status = xdl_do_merge(&xe1, xscr1, name1,
+ &xe2, xscr2, name2,
+ level, xpp, result);
}
xdl_free_script(xscr1);
xdl_free_script(xscr2);
}
xdl_free_script(xscr1);
xdl_free_script(xscr2);
@@
-428,6
+426,5
@@
int xdl_merge(mmfile_t *orig, mmfile_t *mf1, const char *name1,
xdl_free_env(&xe1);
xdl_free_env(&xe2);
xdl_free_env(&xe1);
xdl_free_env(&xe2);
- return
0
;
+ return
status
;
}
}
-