=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rcs/rcsprog.c,v retrieving revision 1.38 retrieving revision 1.39 diff -c -r1.38 -r1.39 *** src/usr.bin/rcs/rcsprog.c 2005/11/04 08:19:42 1.38 --- src/usr.bin/rcs/rcsprog.c 2005/11/12 09:42:29 1.39 *************** *** 1,4 **** ! /* $OpenBSD: rcsprog.c,v 1.38 2005/11/04 08:19:42 xsa Exp $ */ /* * Copyright (c) 2005 Jean-Francois Brousseau * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: rcsprog.c,v 1.39 2005/11/12 09:42:29 xsa Exp $ */ /* * Copyright (c) 2005 Jean-Francois Brousseau * All rights reserved. *************** *** 258,264 **** rcs_usage(void) { fprintf(stderr, ! "usage: rcs [-hiLMUV] [-ausers] [-b[rev]] [-cstring]\n" " [-eusers] [-kmode] [-mrev:log] file ...\n"); } --- 258,264 ---- rcs_usage(void) { fprintf(stderr, ! "usage: rcs [-hiLMUV] [-Aoldfile] [-ausers] [-b[rev]] [-cstring]\n" " [-eusers] [-kmode] [-mrev:log] file ...\n"); } *************** *** 272,293 **** rcs_main(int argc, char **argv) { int i, ch, flags, kflag, lkmode; ! char fpath[MAXPATHLEN]; char *logstr, *logmsg; ! char *oldfile, *alist, *comment, *elist, *unp, *sp; mode_t fmode; ! RCSFILE *file; RCSNUM *logrev; kflag = lkmode = -1; fmode = 0; flags = RCS_RDWR; ! logstr = oldfile = alist = comment = elist = NULL; while ((ch = rcs_getopt(argc, argv, "A:a:b::c:e::hik:Lm:MqUV")) != -1) { switch (ch) { case 'A': ! oldfile = rcs_optarg; break; case 'a': alist = rcs_optarg; --- 272,295 ---- rcs_main(int argc, char **argv) { int i, ch, flags, kflag, lkmode; ! char fpath[MAXPATHLEN], ofpath[MAXPATHLEN]; char *logstr, *logmsg; ! char *alist, *comment, *elist, *unp, *sp; mode_t fmode; ! RCSFILE *file, *oldfile; RCSNUM *logrev; + struct rcs_access *acp; kflag = lkmode = -1; fmode = 0; flags = RCS_RDWR; ! logstr = alist = comment = elist = NULL; while ((ch = rcs_getopt(argc, argv, "A:a:b::c:e::hik:Lm:MqUV")) != -1) { switch (ch) { case 'A': ! if (rcs_statfile(rcs_optarg, ofpath, sizeof(ofpath)) < 0) ! exit(1); break; case 'a': alist = rcs_optarg; *************** *** 387,392 **** --- 389,406 ---- } rcsnum_free(logrev); + } + + /* entries to add from */ + if (ofpath != NULL) { + /* XXX */ + if ((oldfile = rcs_open(ofpath, RCS_READ)) == NULL) + exit(1); + + TAILQ_FOREACH(acp, &(oldfile->rf_access), ra_list) + rcs_access_add(file, acp->ra_name); + + rcs_close(oldfile); } /* entries to add to the access list */