summaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/rcs/rcsmerge.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/usr.bin/rcs/rcsmerge.c b/usr.bin/rcs/rcsmerge.c
index 3f5d14f00e6..0819ca30849 100644
--- a/usr.bin/rcs/rcsmerge.c
+++ b/usr.bin/rcs/rcsmerge.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rcsmerge.c,v 1.33 2006/04/24 13:32:10 jmc Exp $ */
+/* $OpenBSD: rcsmerge.c,v 1.34 2006/04/25 03:25:42 ray Exp $ */
/*
* Copyright (c) 2005, 2006 Xavier Santolaria <xsa@openbsd.org>
* All rights reserved.
@@ -43,7 +43,7 @@ rcsmerge_main(int argc, char **argv)
rev1 = rev2 = NULL;
rev_str1 = rev_str2 = NULL;
- while ((ch = rcs_getopt(argc, argv, "AEek:p::q::r:TVx::z:")) != -1) {
+ while ((ch = rcs_getopt(argc, argv, "AEek:p::q::r::TVx::z:")) != -1) {
switch (ch) {
case 'A': case 'E': case 'e':
break;
@@ -64,7 +64,8 @@ rcsmerge_main(int argc, char **argv)
flags |= QUIET;
break;
case 'r':
- rcs_setrevstr2(&rev_str1, &rev_str2, rcs_optarg);
+ rcs_setrevstr2(&rev_str1, &rev_str2,
+ rcs_optarg ? rcs_optarg : "");
break;
case 'T':
/*
@@ -122,9 +123,13 @@ rcsmerge_main(int argc, char **argv)
rev2 = NULL;
}
- if ((rev1 = rcs_getrevnum(rev_str1, file)) == NULL)
+ if (strcmp(rev_str1, "") == 0) {
+ rev1 = rcsnum_alloc();
+ rcsnum_cpy(file->rf_head, rev1, 0);
+ } else if ((rev1 = rcs_getrevnum(rev_str1, file)) == NULL)
fatal("invalid revision: %s", rev_str1);
- if (rev_str2 != NULL) {
+
+ if (rev_str2 != NULL && strcmp(rev_str2, "") != 0) {
if ((rev2 = rcs_getrevnum(rev_str2, file)) == NULL)
fatal("invalid revision: %s", rev_str2);
} else {