diff options
author | 2008-02-04 15:07:32 +0000 | |
---|---|---|
committer | 2008-02-04 15:07:32 +0000 | |
commit | 37fdff3fa60fdd1baf6bc6082eee5bd7ac3b858c (patch) | |
tree | 350e7b1ef9932579794369472f743922e60b92d2 /usr.bin/cvs/diff.c | |
parent | specify that MakeWhatis and pkg-config fall outside the scope of this document (diff) | |
download | wireguard-openbsd-37fdff3fa60fdd1baf6bc6082eee5bd7ac3b858c.tar.xz wireguard-openbsd-37fdff3fa60fdd1baf6bc6082eee5bd7ac3b858c.zip |
Added -k flag support for all commands which support it.
OK joris@
Diffstat (limited to 'usr.bin/cvs/diff.c')
-rw-r--r-- | usr.bin/cvs/diff.c | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/usr.bin/cvs/diff.c b/usr.bin/cvs/diff.c index e51d27ad80d..97bb3066192 100644 --- a/usr.bin/cvs/diff.c +++ b/usr.bin/cvs/diff.c @@ -1,4 +1,4 @@ -/* $OpenBSD: diff.c,v 1.125 2008/02/03 18:18:44 tobias Exp $ */ +/* $OpenBSD: diff.c,v 1.126 2008/02/04 15:07:33 tobias Exp $ */ /* * Copyright (c) 2006 Joris Vink <joris@openbsd.org> * @@ -29,10 +29,11 @@ void cvs_diff_local(struct cvs_file *); -static int Nflag = 0; -static int force_head = 0; -static char *rev1 = NULL; -static char *rev2 = NULL; +static int Nflag = 0; +static int force_head = 0; +static char *koptstr; +static char *rev1 = NULL; +static char *rev2 = NULL; struct cvs_cmd cvs_cmd_diff = { CVS_OP_DIFF, CVS_USE_WDIR, "diff", @@ -40,7 +41,7 @@ struct cvs_cmd cvs_cmd_diff = { "Show differences between revisions", "[-cilNnpRu] [[-D date] [-r rev] [-D date2 | -r rev2]] " "[-k mode] [file ...]", - "cfD:iklNnpr:Ru", + "cfD:ik:lNnpr:Ru", NULL, cvs_diff }; @@ -51,7 +52,7 @@ struct cvs_cmd cvs_cmd_rdiff = { "Show differences between revisions", "[-flR] [-c | -u] [-s | -t] [-V ver] -D date | -r rev\n" "[-D date2 | -r rev2] [-k mode] module ...", - "cfD:klr:Ru", + "cfD:k:lr:RuV:", NULL, cvs_diff }; @@ -80,6 +81,15 @@ cvs_diff(int argc, char **argv) strlcat(diffargs, " -i", sizeof(diffargs)); diff_iflag = 1; break; + case 'k': + koptstr = optarg; + kflag = rcs_kflag_get(koptstr); + if (RCS_KWEXP_INVAL(kflag)) { + cvs_log(LP_ERR, + "invalid RCS keyword expension mode"); + fatal("%s", cvs_cmd_add.cmd_synopsis); + } + break; case 'l': flags &= ~CR_RECURSE_DIRS; break; @@ -111,6 +121,9 @@ cvs_diff(int argc, char **argv) strlcat(diffargs, " -u", sizeof(diffargs)); diff_format = D_UNIFIED; break; + case 'V': + fatal("the -V option is obsolete " + "and should not be used"); default: fatal("%s", cvs_cmd_diff.cmd_synopsis); } @@ -141,6 +154,9 @@ cvs_diff(int argc, char **argv) if (!(flags & CR_RECURSE_DIRS)) cvs_client_send_request("Argument -l"); + if (kflag) + cvs_client_send_request("Argument -k%s", koptstr); + switch (diff_format) { case D_CONTEXT: cvs_client_send_request("Argument -c"); @@ -239,6 +255,9 @@ cvs_diff_local(struct cvs_file *cf) return; } + if (kflag) + rcs_kwexp_set(cf->file_rcs, kflag); + if (rev1 != NULL) if ((diff_rev1 = rcs_translate_tag(rev1, cf->file_rcs)) == NULL) { |