version 1.93, 2006/05/27 08:12:29 |
version 1.94, 2006/05/28 23:16:31 |
|
|
int |
int |
checkout_main(int argc, char **argv) |
checkout_main(int argc, char **argv) |
{ |
{ |
int fd, i, ch, flags, kflag, status, warg; |
int fd, i, ch, flags, kflag, status; |
RCSNUM *rev; |
RCSNUM *rev; |
RCSFILE *file; |
RCSFILE *file; |
|
const char *author, *date, *state; |
char fpath[MAXPATHLEN]; |
char fpath[MAXPATHLEN]; |
char *author, *date, *rev_str, *username, *state; |
char *rev_str, *username; |
time_t rcs_mtime = -1; |
time_t rcs_mtime = -1; |
|
|
warg = flags = status = 0; |
flags = status = 0; |
kflag = RCS_KWEXP_ERR; |
kflag = RCS_KWEXP_ERR; |
rev = RCS_HEAD_REV; |
rev = RCS_HEAD_REV; |
rev_str = NULL; |
rev_str = NULL; |
state = NULL; |
author = date = state = NULL; |
author = NULL; |
|
date = NULL; |
|
|
|
while ((ch = rcs_getopt(argc, argv, CO_OPTSTRING)) != -1) { |
while ((ch = rcs_getopt(argc, argv, CO_OPTSTRING)) != -1) { |
switch (ch) { |
switch (ch) { |
case 'd': |
case 'd': |
date = xstrdup(rcs_optarg); |
date = rcs_optarg; |
break; |
break; |
case 'f': |
case 'f': |
rcs_setrevstr(&rev_str, rcs_optarg); |
rcs_setrevstr(&rev_str, rcs_optarg); |
|
|
rcs_setrevstr(&rev_str, rcs_optarg); |
rcs_setrevstr(&rev_str, rcs_optarg); |
break; |
break; |
case 's': |
case 's': |
state = xstrdup(rcs_optarg); |
state = rcs_optarg; |
flags |= CO_STATE; |
flags |= CO_STATE; |
break; |
break; |
case 'T': |
case 'T': |
|
|
if (rcs_optarg == NULL) { |
if (rcs_optarg == NULL) { |
if ((author = getlogin()) == NULL) |
if ((author = getlogin()) == NULL) |
err(1, "getlogin"); |
err(1, "getlogin"); |
} else { |
} else |
author = xstrdup(rcs_optarg); |
author = rcs_optarg; |
warg = 1; |
|
} |
|
flags |= CO_AUTHOR; |
flags |= CO_AUTHOR; |
break; |
break; |
case 'x': |
case 'x': |
|
|
rcs_set_mtime(file, rcs_mtime); |
rcs_set_mtime(file, rcs_mtime); |
rcs_close(file); |
rcs_close(file); |
} |
} |
|
|
if (author != NULL && warg) |
|
xfree(author); |
|
|
|
if (date != NULL) |
|
xfree(date); |
|
|
|
if (state != NULL) |
|
xfree(state); |
|
|
|
return (status); |
return (status); |
} |
} |