version 1.2, 2005/10/06 02:12:53 |
version 1.3, 2005/10/06 11:46:03 |
|
|
|
|
extern char *__progname; |
extern char *__progname; |
static int rcsclean_file(char *, RCSNUM *); |
static int rcsclean_file(char *, RCSNUM *); |
|
static int nflag = 0; |
|
static int kflag = RCS_KWEXP_ERR; |
|
|
int |
int |
rcsclean_main(int argc, char **argv) |
rcsclean_main(int argc, char **argv) |
|
|
|
|
rev = RCS_HEAD_REV; |
rev = RCS_HEAD_REV; |
|
|
while ((ch = getopt(argc, argv, "qr:V")) != -1) { |
while ((ch = getopt(argc, argv, "k:nqr:V")) != -1) { |
switch (ch) { |
switch (ch) { |
|
case 'k': |
|
kflag = rcs_kflag_get(optarg); |
|
if (RCS_KWEXP_INVAL(kflag)) { |
|
cvs_log(LP_ERR, |
|
"invalid RCS keyword expansion mode"); |
|
(usage)(); |
|
exit(1); |
|
} |
|
break; |
|
case 'n': |
|
nflag = 1; |
|
break; |
case 'q': |
case 'q': |
verbose = 0; |
verbose = 0; |
break; |
break; |
|
|
RCSNUM *frev; |
RCSNUM *frev; |
BUF *b1, *b2; |
BUF *b1, *b2; |
char *s1, *s2, *c1, *c2; |
char *s1, *s2, *c1, *c2; |
|
struct stat st; |
|
|
match = 1; |
match = 1; |
|
|
|
if (stat(fname, &st) == -1) |
|
return (-1); |
|
|
if (rcs_statfile(fname, fpath, sizeof(fpath)) < 0) |
if (rcs_statfile(fname, fpath, sizeof(fpath)) < 0) |
return (-1); |
return (-1); |
|
|
if ((file = rcs_open(fpath, RCS_RDWR)) == NULL) |
if ((file = rcs_open(fpath, RCS_RDWR)) == NULL) |
return (-1); |
return (-1); |
|
|
|
if (!RCS_KWEXP_INVAL(kflag)) |
|
rcs_kwexp_set(file, kflag); |
|
|
if (rev == RCS_HEAD_REV) |
if (rev == RCS_HEAD_REV) |
frev = file->rf_head; |
frev = file->rf_head; |
else |
else |
|
|
if (match) { |
if (match) { |
if (verbose) |
if (verbose) |
printf("rm -f %s\n", fname); |
printf("rm -f %s\n", fname); |
(void)unlink(fname); |
if (nflag == 0) |
|
(void)unlink(fname); |
} |
} |
|
|
rcs_close(file); |
rcs_close(file); |