summaryrefslogtreecommitdiff
path: root/usr.bin/rcs
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/rcs')
-rw-r--r--usr.bin/rcs/diff.h7
-rw-r--r--usr.bin/rcs/rcsmerge.c10
2 files changed, 13 insertions, 4 deletions
diff --git a/usr.bin/rcs/diff.h b/usr.bin/rcs/diff.h
index fdf7cfa821e..f41171f1f41 100644
--- a/usr.bin/rcs/diff.h
+++ b/usr.bin/rcs/diff.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: diff.h,v 1.2 2006/05/05 15:47:36 xsa Exp $ */
+/* $OpenBSD: diff.h,v 1.3 2006/05/08 18:36:04 xsa Exp $ */
/*
* Copyright (C) Caldera International Inc. 2001-2002.
* All rights reserved.
@@ -87,6 +87,11 @@
#define D_DIFFER 1 /* Files are different */
#define D_ERROR 2 /* An error occurred */
+/*
+ * Status values for rcs_diff3() return values
+ */
+#define D_OVERLAPS 1 /* Overlaps during merge */
+
struct rcs_lines;
BUF *rcs_diff3(RCSFILE *, char *, RCSNUM *, RCSNUM *, int);
diff --git a/usr.bin/rcs/rcsmerge.c b/usr.bin/rcs/rcsmerge.c
index fd114ed5029..24499f1db96 100644
--- a/usr.bin/rcs/rcsmerge.c
+++ b/usr.bin/rcs/rcsmerge.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsmerge.c,v 1.40 2006/05/08 11:56:16 xsa Exp $ */
+/* $OpenBSD: rcsmerge.c,v 1.41 2006/05/08 18:36:04 xsa Exp $ */
/*
* Copyright (c) 2005, 2006 Xavier Santolaria <xsa@openbsd.org>
* All rights reserved.
@@ -32,7 +32,7 @@
int
rcsmerge_main(int argc, char **argv)
{
- int fd, i, ch, flags, kflag;
+ int fd, i, ch, flags, kflag, status;
char *fcont, fpath[MAXPATHLEN], r1[16], r2[16], *rev_str1, *rev_str2;
RCSFILE *file;
RCSNUM *rev1, *rev2;
@@ -40,6 +40,7 @@ rcsmerge_main(int argc, char **argv)
flags = 0;
kflag = RCS_KWEXP_ERR;
+ status = 0;
rev1 = rev2 = NULL;
rev_str1 = rev_str2 = NULL;
@@ -159,6 +160,9 @@ rcsmerge_main(int argc, char **argv)
continue;
}
+ if (diff3_conflicts != 0)
+ status = D_OVERLAPS;
+
if (flags & PIPEOUT) {
rcs_buf_putc(bp, '\0');
fcont = rcs_buf_release(bp);
@@ -174,7 +178,7 @@ rcsmerge_main(int argc, char **argv)
rcs_close(file);
}
- return (0);
+ return (status);
}
void