summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin
diff options
context:
space:
mode:
authorrgrimes <rgrimes@FreeBSD.org>1994-05-14 10:51:13 +0000
committerrgrimes <rgrimes@FreeBSD.org>1994-05-14 10:51:13 +0000
commit9a996abd909a8c645ba2e82f530242775088259b (patch)
treee04d973baed7c907e159e5a3c800c0de4c9101b8 /gnu/usr.bin
parent71e82a4ceb37d33e88db86328b55d37a04bc3600 (diff)
downloadFreeBSD-src-9a996abd909a8c645ba2e82f530242775088259b.zip
FreeBSD-src-9a996abd909a8c645ba2e82f530242775088259b.tar.gz
Add -K option to pass keywordlists to rcs so we can disable and enable
specific keyword expansion on cvs co and cvs patch commands.
Diffstat (limited to 'gnu/usr.bin')
-rw-r--r--gnu/usr.bin/cvs/cvs/checkout.c10
-rw-r--r--gnu/usr.bin/cvs/cvs/cvs.h3
-rw-r--r--gnu/usr.bin/cvs/cvs/patch.c24
-rw-r--r--gnu/usr.bin/cvs/cvs/update.c20
4 files changed, 46 insertions, 11 deletions
diff --git a/gnu/usr.bin/cvs/cvs/checkout.c b/gnu/usr.bin/cvs/cvs/checkout.c
index ad5a5b8..2ec55e6a 100644
--- a/gnu/usr.bin/cvs/cvs/checkout.c
+++ b/gnu/usr.bin/cvs/cvs/checkout.c
@@ -70,6 +70,7 @@ static char *checkout_usage[] =
"\t-r rev\tCheck out revision or tag. (implies -P)\n",
"\t-D date\tCheck out revisions as of date. (implies -P)\n",
"\t-d dir\tCheck out into dir instead of module name.\n",
+ "\t-K key\tUse RCS key -K option on checkout.\n",
"\t-k kopt\tUse RCS kopt -k option on checkout.\n",
"\t-j rev\tMerge in changes made between current revision and rev.\n",
NULL
@@ -100,6 +101,7 @@ static char *date = NULL;
static char *join_rev1 = NULL;
static char *join_rev2 = NULL;
static char *preload_update_dir = NULL;
+static char *K_flag = NULL;
int
checkout (argc, argv)
@@ -129,7 +131,7 @@ checkout (argc, argv)
}
else
{
- valid_options = "ANnk:d:flRpQqcsr:D:j:P";
+ valid_options = "ANnk:d:flRpQqcsr:D:j:PK:";
valid_usage = checkout_usage;
}
@@ -207,6 +209,9 @@ checkout (argc, argv)
else
join_rev1 = optarg;
break;
+ case 'K':
+ K_flag = optarg;
+ break;
case '?':
default:
usage (valid_usage);
@@ -597,6 +602,7 @@ checkout_proc (pargc, argv, where, mwhere, mfile, shorten,
force_tag_match, 0 /* !local */ ,
1 /* update -d */ , aflag, checkout_prune_dirs,
pipeout, which, join_rev1, join_rev2,
+ K_flag,
preload_update_dir);
free (preload_update_dir);
preload_update_dir = oldupdate;
@@ -639,7 +645,7 @@ checkout_proc (pargc, argv, where, mwhere, mfile, shorten,
err += do_update (*pargc - 1, argv + 1, options, tag, date,
force_tag_match, local_specified, 1 /* update -d */,
aflag, checkout_prune_dirs, pipeout, which, join_rev1,
- join_rev2, preload_update_dir);
+ join_rev2, K_flag, preload_update_dir);
free (preload_update_dir);
preload_update_dir = oldupdate;
return (err);
diff --git a/gnu/usr.bin/cvs/cvs/cvs.h b/gnu/usr.bin/cvs/cvs/cvs.h
index ec47581..836c5fb 100644
--- a/gnu/usr.bin/cvs/cvs/cvs.h
+++ b/gnu/usr.bin/cvs/cvs/cvs.h
@@ -348,7 +348,8 @@ int do_recursion (int (*xfileproc) (), int (*xfilesdoneproc) (),
int do_update (int argc, char *argv[], char *xoptions, char *xtag,
char *xdate, int xforce, int local, int xbuild,
int xaflag, int xprune, int xpipeout, int which,
- char *xjoin_rev1, char *xjoin_rev2, char *preload_update_dir);
+ char *xjoin_rev1, char *xjoin_rev2,
+ char *xK_flag, char *preload_update_dir);
void history_write (int type, char *update_dir, char *revs, char *name,
char *repository);
int start_recursion (int (*fileproc) (), int (*filesdoneproc) (),
diff --git a/gnu/usr.bin/cvs/cvs/patch.c b/gnu/usr.bin/cvs/cvs/patch.c
index 11134a7..abc02fd 100644
--- a/gnu/usr.bin/cvs/cvs/patch.c
+++ b/gnu/usr.bin/cvs/cvs/patch.c
@@ -43,6 +43,8 @@ static char *rev1 = NULL;
static char *rev2 = NULL;
static char *date1 = NULL;
static char *date2 = NULL;
+static char *K_flag1 = NULL;
+static char *K_flag2 = NULL;
static char tmpfile1[L_tmpnam+1], tmpfile2[L_tmpnam+1], tmpfile3[L_tmpnam+1];
static int unidiff = 0;
@@ -60,6 +62,7 @@ static char *patch_usage[] =
"\t-D date\tDate.\n",
"\t-r rev\tRevision - symbolic or numeric.\n",
"\t-V vers\tUse RCS Version \"vers\" for keyword expansion.\n",
+ "\t-K key\tUse RCS key -K option on checkout.\n",
NULL
};
@@ -77,7 +80,7 @@ patch (argc, argv)
usage (patch_usage);
optind = 1;
- while ((c = gnu_getopt (argc, argv, "V:k:cuftsQqlRD:r:")) != -1)
+ while ((c = gnu_getopt (argc, argv, "V:k:cuftsQqlRD:r:K:")) != -1)
{
switch (c)
{
@@ -139,6 +142,14 @@ patch (argc, argv)
case 'c': /* Context diff */
unidiff = 0;
break;
+ case 'K':
+ if (K_flag2 != NULL)
+ error (1, 0, "no more than two -K flags can be specified");
+ if (K_flag1 != NULL)
+ K_flag2 = optarg;
+ else
+ K_flag1 = optarg;
+ break;
case '?':
default:
usage (patch_usage);
@@ -149,6 +160,11 @@ patch (argc, argv)
argv += optind;
/* Sanity checks */
+ /* Check for dummy -K flags */
+ if (K_flag1 && K_flag1[0] != 'e' && K_flag1[0] != 'i')
+ error (1, 0, "-K flag does not start e or i");
+ if (K_flag2 && K_flag2[0] != 'e' && K_flag2[0] != 'i')
+ error (1, 0, "-K flag does not start e or i");
if (argc < 1)
usage (patch_usage);
@@ -364,7 +380,8 @@ patch_fileproc (file, update_dir, repository, entries, srcfiles)
}
if (vers_tag != NULL)
{
- run_setup ("%s%s %s -p -q -r%s", Rcsbin, RCS_CO, options, vers_tag);
+ run_setup ("%s%s %s -p -q -r%s %s%s", Rcsbin, RCS_CO, options,
+ vers_tag, K_flag1 ? "-K" : "", K_flag1 ? K_flag1 : "");
run_arg (rcsfile->path);
if ((retcode = run_exec (RUN_TTY, tmpfile1, RUN_TTY, RUN_NORMAL)) != 0)
{
@@ -382,7 +399,8 @@ patch_fileproc (file, update_dir, repository, entries, srcfiles)
}
if (vers_head != NULL)
{
- run_setup ("%s%s %s -p -q -r%s", Rcsbin, RCS_CO, options, vers_head);
+ run_setup ("%s%s %s -p -q -r%s %s%s", Rcsbin, RCS_CO, options,
+ vers_head, K_flag2 ? "-K" : "", K_flag2 ? K_flag2 : "");
run_arg (rcsfile->path);
if ((retcode = run_exec (RUN_TTY, tmpfile2, RUN_TTY, RUN_NORMAL)) != 0)
{
diff --git a/gnu/usr.bin/cvs/cvs/update.c b/gnu/usr.bin/cvs/cvs/update.c
index c25bc75..f3d886a 100644
--- a/gnu/usr.bin/cvs/cvs/update.c
+++ b/gnu/usr.bin/cvs/cvs/update.c
@@ -75,6 +75,7 @@ static char *tag = NULL;
static char *date = NULL;
static char *join_rev1, *date_rev1;
static char *join_rev2, *date_rev2;
+static char *K_flag;
static int aflag = 0;
static int force_tag_match = 1;
static int update_build_dirs = 0;
@@ -99,6 +100,7 @@ static char *update_usage[] =
"\t-D date\tSet date to update from.\n",
"\t-j rev\tMerge in changes made between current revision and rev.\n",
"\t-I ign\tMore files to ignore (! to reset).\n",
+ "\t-K key\tUse RCS key -K option on checkout.\n",
NULL
};
@@ -121,7 +123,7 @@ update (argc, argv)
/* parse the args */
optind = 1;
- while ((c = gnu_getopt (argc, argv, "ApPflRQqdk:r:D:j:I:")) != -1)
+ while ((c = gnu_getopt (argc, argv, "ApPflRQqdk:r:D:j:I:K:")) != -1)
{
switch (c)
{
@@ -175,6 +177,9 @@ update (argc, argv)
else
join_rev1 = optarg;
break;
+ case 'K':
+ K_flag = optarg;
+ break;
case '?':
default:
usage (update_usage);
@@ -209,7 +214,8 @@ update (argc, argv)
/* call the command line interface */
err = do_update (argc, argv, options, tag, date, force_tag_match,
local, update_build_dirs, aflag, update_prune_dirs,
- pipeout, which, join_rev1, join_rev2, (char *) NULL);
+ pipeout, which, join_rev1, join_rev2,
+ K_flag, (char *) NULL);
/* free the space Make_Date allocated if necessary */
if (date != NULL)
@@ -223,7 +229,8 @@ update (argc, argv)
*/
int
do_update (argc, argv, xoptions, xtag, xdate, xforce, local, xbuild, xaflag,
- xprune, xpipeout, which, xjoin_rev1, xjoin_rev2, preload_update_dir)
+ xprune, xpipeout, which, xjoin_rev1, xjoin_rev2,
+ xK_flag, preload_update_dir)
int argc;
char *argv[];
char *xoptions;
@@ -238,6 +245,7 @@ do_update (argc, argv, xoptions, xtag, xdate, xforce, local, xbuild, xaflag,
int which;
char *xjoin_rev1;
char *xjoin_rev2;
+ char *xK_flag;
char *preload_update_dir;
{
int err = 0;
@@ -253,6 +261,8 @@ do_update (argc, argv, xoptions, xtag, xdate, xforce, local, xbuild, xaflag,
update_prune_dirs = xprune;
pipeout = xpipeout;
+ K_flag = xK_flag;
+
/* setup the join support */
join_rev1 = xjoin_rev1;
join_rev2 = xjoin_rev2;
@@ -650,8 +660,8 @@ checkout_file (file, repository, entries, srcfiles, vers_ts, update_dir)
(void) unlink_file (backup);
}
- run_setup ("%s%s -q -r%s %s", Rcsbin, RCS_CO, vers_ts->vn_rcs,
- vers_ts->options);
+ run_setup ("%s%s -q -r%s %s %s%s", Rcsbin, RCS_CO, vers_ts->vn_rcs,
+ vers_ts->options, K_flag ? "-K" : "", K_flag ? K_flag : "");
/*
* if we are checking out to stdout, print a nice message to stderr, and
OpenPOWER on IntegriCloud