version 1.37, 2005/11/25 13:50:01 |
version 1.38, 2005/11/29 10:55:37 |
|
|
#include "rcs.h" |
#include "rcs.h" |
#include "rcsprog.h" |
#include "rcsprog.h" |
|
|
|
#define CO_OPTSTRING "f::k:l::M::p::q::r::s:Tu::Vw::x:" |
|
|
static int checkout_state(RCSFILE *, RCSNUM *, const char *, int, |
static int checkout_state(RCSFILE *, RCSNUM *, const char *, int, |
const char *, const char *); |
const char *, const char *); |
|
|
|
|
RCSFILE *file; |
RCSFILE *file; |
char fpath[MAXPATHLEN], buf[16]; |
char fpath[MAXPATHLEN], buf[16]; |
char *username; |
char *username; |
const char *state = NULL; |
const char *state; |
time_t rcs_mtime = -1; |
time_t rcs_mtime = -1; |
|
|
flags = 0; |
flags = 0; |
kflag = RCS_KWEXP_ERR; |
kflag = RCS_KWEXP_ERR; |
rev = RCS_HEAD_REV; |
rev = RCS_HEAD_REV; |
frev = NULL; |
frev = NULL; |
|
state = username = NULL; |
|
|
if ((username = getlogin()) == NULL) { |
while ((ch = rcs_getopt(argc, argv, CO_OPTSTRING)) != -1) { |
cvs_log(LP_ERRNO, "failed to get username"); |
|
exit (1); |
|
} |
|
|
|
while ((ch = rcs_getopt(argc, argv, "f::k:l::M::p::q::r::s:Tu::Vx:")) != -1) { |
|
switch (ch) { |
switch (ch) { |
case 'f': |
case 'f': |
rcs_set_rev(rcs_optarg, &rev); |
rcs_set_rev(rcs_optarg, &rev); |
|
|
case 'V': |
case 'V': |
printf("%s\n", rcs_version); |
printf("%s\n", rcs_version); |
exit(0); |
exit(0); |
|
case 'w': |
|
username = rcs_optarg; |
|
break; |
case 'x': |
case 'x': |
rcs_suffixes = rcs_optarg; |
rcs_suffixes = rcs_optarg; |
break; |
break; |
|
|
exit (1); |
exit (1); |
} |
} |
|
|
|
if ((username == NULL) && ((username = getlogin()) == NULL)) { |
|
cvs_log(LP_ERRNO, "failed to get username"); |
|
exit (1); |
|
} |
|
|
for (i = 0; i < argc; i++) { |
for (i = 0; i < argc; i++) { |
if (rcs_statfile(argv[i], fpath, sizeof(fpath)) < 0) |
if (rcs_statfile(argv[i], fpath, sizeof(fpath)) < 0) |
continue; |
continue; |
|
|
fprintf(stderr, |
fprintf(stderr, |
"usage: co [-V] [-ddate] [-f[rev]] [-I[rev]] [-kmode] [-l[rev]]\n" |
"usage: co [-V] [-ddate] [-f[rev]] [-I[rev]] [-kmode] [-l[rev]]\n" |
" [-M[rev]] [-mmsg] [-p[rev]] [-q[rev]] [-r[rev]]\n" |
" [-M[rev]] [-mmsg] [-p[rev]] [-q[rev]] [-r[rev]]\n" |
" [-sstate] [-u[rev]] [-wuser] [-xsuffixes] [-ztz] file ...\n"); |
" [-sstate] [-u[rev]] [-w[user]] [-xsuffixes] [-ztz] file ...\n"); |
} |
} |
|
|
/* |
/* |
|
|
cvs_log(LP_ERR, "%s: No revision on branch has state %s", |
cvs_log(LP_ERR, "%s: No revision on branch has state %s", |
rfp->rf_path, state); |
rfp->rf_path, state); |
return (-1); |
return (-1); |
} |
} else { |
else { |
|
if (((tstate = rcs_state_get(rfp, rev)) != NULL) |
if (((tstate = rcs_state_get(rfp, rev)) != NULL) |
&& (strcmp(state, tstate) == 0)) |
&& (strcmp(state, tstate) == 0)) |
return (checkout_rev(rfp, rev, dst, flags, username)); |
return (checkout_rev(rfp, rev, dst, flags, username)); |