version 1.41, 2006/12/31 15:38:11 |
version 1.42, 2007/01/01 23:49:06 |
|
|
|
|
static int runflags = 0; |
static int runflags = 0; |
static int lkmode = RCS_LOCK_INVAL; |
static int lkmode = RCS_LOCK_INVAL; |
static char *alist, *comment, *elist, *logmsg, *logstr, *orange; |
static char *alist, *comment, *elist, *logmsg, *logstr, *orange, *state, *statestr; |
static RCSNUM *logrev; |
static RCSNUM *logrev; |
|
|
int |
int |
|
|
|
|
flags = CR_RECURSE_DIRS; |
flags = CR_RECURSE_DIRS; |
|
|
alist = comment = elist = logmsg = logstr = orange = NULL; |
alist = comment = elist = logmsg = logstr = orange = state = statestr = NULL; |
|
|
while ((ch = getopt(argc, argv, cvs_cmd_admin.cmd_opts)) != -1) { |
while ((ch = getopt(argc, argv, cvs_cmd_admin.cmd_opts)) != -1) { |
switch (ch) { |
switch (ch) { |
|
|
verbosity = 0; |
verbosity = 0; |
break; |
break; |
case 's': |
case 's': |
|
statestr = optarg; |
break; |
break; |
case 't': |
case 't': |
break; |
break; |
|
|
if (orange != NULL) |
if (orange != NULL) |
cvs_client_send_request("Argument -o%s", orange); |
cvs_client_send_request("Argument -o%s", orange); |
|
|
|
if (statestr != NULL) |
|
cvs_client_send_request("Argument -s%s", statestr); |
|
|
if (verbosity == 0) |
if (verbosity == 0) |
cvs_client_send_request("Argument -q"); |
cvs_client_send_request("Argument -q"); |
|
|
|
|
(void)rcs_rev_remove(cf->file_rcs, rdp->rd_num); |
(void)rcs_rev_remove(cf->file_rcs, rdp->rd_num); |
} |
} |
} |
} |
|
} |
|
|
|
if (statestr != NULL) { |
|
struct cvs_argvector *sargv; |
|
|
|
sargv = cvs_strsplit(statestr, ":"); |
|
if (sargv->argv[1] != NULL) { |
|
state = xstrdup(sargv->argv[0]); |
|
|
|
if ((logrev = rcsnum_parse(sargv->argv[1])) == NULL) { |
|
cvs_log(LP_ERR, "`%s' bad revision number", statestr); |
|
return; |
|
} |
|
} else { |
|
state = xstrdup(statestr); |
|
logrev = rcsnum_alloc(); |
|
rcsnum_cpy(cf->file_rcs->rf_head, logrev, 0); |
|
} |
|
|
|
if (rcs_state_check(state) < 0) { |
|
cvs_log(LP_ERR, "invalid state `%s'", state); |
|
cvs_argv_destroy(sargv); |
|
rcsnum_free(logrev); |
|
xfree(state); |
|
return; |
|
} |
|
|
|
(void)rcs_state_set(cf->file_rcs, logrev, state); |
|
|
|
cvs_argv_destroy(sargv); |
|
rcsnum_free(logrev); |
|
xfree(state); |
} |
} |
|
|
if (lkmode != RCS_LOCK_INVAL) |
if (lkmode != RCS_LOCK_INVAL) |