version 1.9, 2006/05/15 06:58:03 |
version 1.10, 2006/06/03 03:05:10 |
|
|
merge_diff3(char **av, int flags) |
merge_diff3(char **av, int flags) |
{ |
{ |
int argc; |
int argc; |
char *data, *patch; |
|
char *argv[5], *dp13, *dp23, *path1, *path2, *path3; |
char *argv[5], *dp13, *dp23, *path1, *path2, *path3; |
BUF *b1, *b2, *b3, *d1, *d2, *diffb; |
BUF *b1, *b2, *b3, *d1, *d2, *diffb; |
|
|
|
|
rcs_buf_putc(diffb, '\0'); |
rcs_buf_putc(diffb, '\0'); |
rcs_buf_putc(b1, '\0'); |
rcs_buf_putc(b1, '\0'); |
|
|
patch = rcs_buf_release(diffb); |
if ((diffb = rcs_patchfile(b1, diffb, ed_patch_lines)) == NULL) |
data = rcs_buf_release(b1); |
|
diffb = b1 = NULL; |
|
|
|
if ((diffb = rcs_patchfile(data, patch, ed_patch_lines)) == NULL) |
|
goto out; |
goto out; |
|
|
if (!(flags & QUIET) && diff3_conflicts != 0) |
if (!(flags & QUIET) && diff3_conflicts != 0) |
warnx("warning: overlaps or other problems during merge"); |
warnx("warning: overlaps or other problems during merge"); |
|
|
xfree(data); |
|
xfree(patch); |
|
out: |
out: |
if (b1 != NULL) |
|
rcs_buf_free(b1); |
|
if (b2 != NULL) |
if (b2 != NULL) |
rcs_buf_free(b2); |
rcs_buf_free(b2); |
if (b3 != NULL) |
if (b3 != NULL) |
|
|
rcs_diff3(RCSFILE *rf, char *workfile, RCSNUM *rev1, RCSNUM *rev2, int verbose) |
rcs_diff3(RCSFILE *rf, char *workfile, RCSNUM *rev1, RCSNUM *rev2, int verbose) |
{ |
{ |
int argc; |
int argc; |
char *data, *patch; |
|
char *argv[5], r1[16], r2[16]; |
char *argv[5], r1[16], r2[16]; |
char *dp13, *dp23, *path1, *path2, *path3; |
char *dp13, *dp23, *path1, *path2, *path3; |
BUF *b1, *b2, *b3, *d1, *d2, *diffb; |
BUF *b1, *b2, *b3, *d1, *d2, *diffb; |
|
|
rcs_buf_putc(diffb, '\0'); |
rcs_buf_putc(diffb, '\0'); |
rcs_buf_putc(b1, '\0'); |
rcs_buf_putc(b1, '\0'); |
|
|
patch = rcs_buf_release(diffb); |
if ((diffb = rcs_patchfile(b1, diffb, ed_patch_lines)) == NULL) |
data = rcs_buf_release(b1); |
|
diffb = b1 = NULL; |
|
|
|
if ((diffb = rcs_patchfile(data, patch, ed_patch_lines)) == NULL) |
|
goto out; |
goto out; |
|
|
if (verbose == 1 && diff3_conflicts != 0) |
if (verbose == 1 && diff3_conflicts != 0) |
warnx("warning: overlaps or other problems during merge"); |
warnx("warning: overlaps or other problems during merge"); |
|
|
xfree(data); |
|
xfree(patch); |
|
|
|
out: |
out: |
if (b1 != NULL) |
|
rcs_buf_free(b1); |
|
if (b2 != NULL) |
if (b2 != NULL) |
rcs_buf_free(b2); |
rcs_buf_free(b2); |
if (b3 != NULL) |
if (b3 != NULL) |