diff options
author | 2010-07-28 21:19:30 +0000 | |
---|---|---|
committer | 2010-07-28 21:19:30 +0000 | |
commit | 72026f1ae0ba0d183d8acb0dfd804d7cdfa7b45e (patch) | |
tree | 22be5f0174528759b848c8af6f9ce7bbec876c68 /usr.bin/cvs/diff.c | |
parent | the default pciide chip needs no additional register restores; tested by jcs on one model (diff) | |
download | wireguard-openbsd-72026f1ae0ba0d183d8acb0dfd804d7cdfa7b45e.tar.xz wireguard-openbsd-72026f1ae0ba0d183d8acb0dfd804d7cdfa7b45e.zip |
Support -U and -C to specify the context length for "cvs diff".
This doesn't alter cvs rdiff, where -U and -C are not support by GNU
cvs.
ok sthen zinovik
Diffstat (limited to 'usr.bin/cvs/diff.c')
-rw-r--r-- | usr.bin/cvs/diff.c | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/usr.bin/cvs/diff.c b/usr.bin/cvs/diff.c index 4900eda2b32..a9ee2ab448f 100644 --- a/usr.bin/cvs/diff.c +++ b/usr.bin/cvs/diff.c @@ -1,4 +1,4 @@ -/* $OpenBSD: diff.c,v 1.157 2010/07/23 21:46:05 ray Exp $ */ +/* $OpenBSD: diff.c,v 1.158 2010/07/28 21:19:30 nicm Exp $ */ /* * Copyright (c) 2008 Tobias Stoeckmann <tobias@openbsd.org> * Copyright (c) 2006 Joris Vink <joris@openbsd.org> @@ -49,7 +49,7 @@ struct cvs_cmd cvs_cmd_diff = { "Show differences between revisions", "[-abcdilNnpRuw] [[-D date] [-r rev] [-D date2 | -r rev2]] " "[-k mode] [file ...]", - "abcfdD:ik:lNnpr:Ruw", + "abcfC:dD:ik:lNnpr:RuU:w", NULL, cvs_diff }; @@ -70,6 +70,7 @@ cvs_diff(int argc, char **argv) { int ch, flags; char *arg = "."; + const char *errstr; struct cvs_recursion cr; flags = CR_RECURSE_DIRS; @@ -91,6 +92,14 @@ cvs_diff(int argc, char **argv) strlcat(diffargs, " -c", sizeof(diffargs)); diff_format = D_CONTEXT; break; + case 'C': + diff_context = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + fatal("context lines %s: %s", errstr, optarg); + strlcat(diffargs, " -C ", sizeof(diffargs)); + strlcat(diffargs, optarg, sizeof(diffargs)); + diff_format = D_CONTEXT; + break; case 'd': strlcat(diffargs, " -d", sizeof(diffargs)); dflags |= D_MINIMAL; @@ -161,6 +170,14 @@ cvs_diff(int argc, char **argv) strlcat(diffargs, " -u", sizeof(diffargs)); diff_format = D_UNIFIED; break; + case 'U': + diff_context = strtonum(optarg, 0, INT_MAX, &errstr); + if (errstr != NULL) + fatal("context lines %s: %s", errstr, optarg); + strlcat(diffargs, " -U ", sizeof(diffargs)); + strlcat(diffargs, optarg, sizeof(diffargs)); + diff_format = D_UNIFIED; + break; case 'V': fatal("the -V option is obsolete " "and should not be used"); @@ -209,13 +226,23 @@ cvs_diff(int argc, char **argv) switch (diff_format) { case D_CONTEXT: - cvs_client_send_request("Argument -c"); + if (cvs_cmdop == CVS_OP_RDIFF) + cvs_client_send_request("Argument -c"); + else { + cvs_client_send_request("Argument -C %d", + diff_context); + } break; case D_RCSDIFF: cvs_client_send_request("Argument -n"); break; case D_UNIFIED: - cvs_client_send_request("Argument -u"); + if (cvs_cmdop == CVS_OP_RDIFF) + cvs_client_send_request("Argument -u"); + else { + cvs_client_send_request("Argument -U %d", + diff_context); + } break; default: break; |