=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/rcs/co.c,v retrieving revision 1.32 retrieving revision 1.33 diff -c -r1.32 -r1.33 *** src/usr.bin/rcs/co.c 2005/11/23 08:42:23 1.32 --- src/usr.bin/rcs/co.c 2005/11/23 09:05:02 1.33 *************** *** 1,4 **** ! /* $OpenBSD: co.c,v 1.32 2005/11/23 08:42:23 xsa Exp $ */ /* * Copyright (c) 2005 Joris Vink * All rights reserved. --- 1,4 ---- ! /* $OpenBSD: co.c,v 1.33 2005/11/23 09:05:02 xsa Exp $ */ /* * Copyright (c) 2005 Joris Vink * All rights reserved. *************** *** 42,49 **** int checkout_main(int argc, char **argv) { ! int i, ch; ! int flags; RCSNUM *frev, *rev; RCSFILE *file; char fpath[MAXPATHLEN], buf[16]; --- 42,48 ---- int checkout_main(int argc, char **argv) { ! int i, ch, flags, kflag; RCSNUM *frev, *rev; RCSFILE *file; char fpath[MAXPATHLEN], buf[16]; *************** *** 51,56 **** --- 50,56 ---- const char *state = NULL; flags = 0; + kflag = RCS_KWEXP_ERR; rev = RCS_HEAD_REV; frev = NULL; *************** *** 59,70 **** exit (1); } ! while ((ch = rcs_getopt(argc, argv, "f::l::M::p::q::r::s:u::Vx:")) != -1) { switch (ch) { case 'f': rcs_set_rev(rcs_optarg, &rev); flags |= FORCE; break; case 'l': rcs_set_rev(rcs_optarg, &rev); flags |= CO_LOCK; --- 59,79 ---- exit (1); } ! while ((ch = rcs_getopt(argc, argv, "f::k:l::M::p::q::r::s:u::Vx:")) != -1) { switch (ch) { case 'f': rcs_set_rev(rcs_optarg, &rev); flags |= FORCE; break; + case 'k': + kflag = rcs_kflag_get(rcs_optarg); + if (RCS_KWEXP_INVAL(kflag)) { + cvs_log(LP_ERR, + "invalid RCS keyword expansion mode"); + (usage)(); + exit(1); + } + break; case 'l': rcs_set_rev(rcs_optarg, &rev); flags |= CO_LOCK; *************** *** 133,138 **** --- 142,150 ---- frev = rev; rcsnum_tostr(frev, buf, sizeof(buf)); + + if (kflag != RCS_KWEXP_ERR) + rcs_kwexp_set(file, kflag); if (flags & CO_STATE) { if (checkout_state(file, frev, argv[i], flags,