=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rcs/rcsclean.c,v retrieving revision 1.10 retrieving revision 1.11 diff -c -r1.10 -r1.11 *** src/usr.bin/rcs/rcsclean.c 2005/10/19 18:28:13 1.10 --- src/usr.bin/rcs/rcsclean.c 2005/10/29 09:27:02 1.11 *************** *** 1,4 **** ! /* $OpenBSD: rcsclean.c,v 1.10 2005/10/19 18:28:13 xsa Exp $ */ /* * Copyright (c) 2005 Joris Vink * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcsclean.c,v 1.11 2005/10/29 09:27:02 xsa Exp $ */ /* * Copyright (c) 2005 Joris Vink * All rights reserved. *************** *** 41,46 **** --- 41,47 ---- static int rcsclean_file(char *, RCSNUM *); static int nflag = 0; static int kflag = RCS_KWEXP_ERR; + static int uflag = 0; int rcsclean_main(int argc, char **argv) *************** *** 52,58 **** rev = RCS_HEAD_REV; ! while ((ch = rcs_getopt(argc, argv, "k:nqr:V")) != -1) { switch (ch) { case 'k': kflag = rcs_kflag_get(rcs_optarg); --- 53,59 ---- rev = RCS_HEAD_REV; ! while ((ch = rcs_getopt(argc, argv, "k:nqr:uV")) != -1) { switch (ch) { case 'k': kflag = rcs_kflag_get(rcs_optarg); *************** *** 72,77 **** --- 73,81 ---- case 'r': rcs_set_rev(rcs_optarg, &rev); break; + case 'u': + uflag = 1; + break; case 'V': printf("%s\n", rcs_version); exit(0); *************** *** 109,115 **** rcsclean_usage(void) { fprintf(stderr, ! "usage: rcsclean [-nqV] [-kmode] [-rrev] [file] ...\n"); } static int --- 113,119 ---- rcsclean_usage(void) { fprintf(stderr, ! "usage: rcsclean [-nquV] [-kmode] [-rrev] [file] ...\n"); } static int *************** *** 117,123 **** { int match; RCSFILE *file; ! char fpath[MAXPATHLEN]; RCSNUM *frev; BUF *b1, *b2; char *s1, *s2, *c1, *c2; --- 121,127 ---- { int match; RCSFILE *file; ! char fpath[MAXPATHLEN], numb[64]; RCSNUM *frev; BUF *b1, *b2; char *s1, *s2, *c1, *c2; *************** *** 171,179 **** free(c2); if (match == 1) { if (verbose == 1) printf("rm -f %s\n", fname); ! if (nflag == 0) (void)unlink(fname); } --- 175,194 ---- free(c2); if (match == 1) { + if (uflag == 1) { + if ((verbose == 1) && (nflag == 0)) { + printf("rcs -u%s %s\n", + rcsnum_tostr(frev, numb, sizeof(numb)), + fpath); + } + + (void)rcs_lock_remove(file, frev); + } + if (verbose == 1) printf("rm -f %s\n", fname); ! ! if ((nflag == 0) && (TAILQ_EMPTY(&(file->rf_locks)))) (void)unlink(fname); }