version 1.12, 2004/12/30 20:37:56 |
version 1.13, 2005/01/24 17:42:26 |
|
|
int |
int |
cvs_add(int argc, char **argv) |
cvs_add(int argc, char **argv) |
{ |
{ |
int i, ch; |
int i, ch, kflag; |
char *kflag, *msg; |
char buf[16], *koptstr; |
struct cvsroot *root; |
struct cvsroot *root; |
|
|
kflag = msg = NULL; |
kflag = RCS_KWEXP_DEFAULT; |
|
cvs_msg = NULL; |
|
|
while ((ch = getopt(argc, argv, "k:m:")) != -1) { |
while ((ch = getopt(argc, argv, "k:m:")) != -1) { |
switch (ch) { |
switch (ch) { |
case 'k': |
case 'k': |
kflag = optarg; |
koptstr = optarg; |
|
kflag = rcs_kflag_get(koptstr); |
|
if (RCS_KWEXP_INVAL(kflag)) { |
|
cvs_log(LP_ERR, |
|
"invalid RCS keyword expansion mode"); |
|
rcs_kflag_usage(); |
|
return (EX_USAGE); |
|
} |
|
printf("kopt = `%s'\n", koptstr); |
break; |
break; |
case 'm': |
case 'm': |
msg = optarg; |
if ((cvs_msg = strdup(optarg)) == NULL) { |
|
cvs_log(LP_ERRNO, "failed to copy message"); |
|
return (EX_DATAERR); |
|
} |
break; |
break; |
default: |
default: |
return (EX_USAGE); |
return (EX_USAGE); |
|
|
|
|
argc -= optind; |
argc -= optind; |
argv += optind; |
argv += optind; |
|
|
if (argc == 0) |
if (argc == 0) |
return (EX_USAGE); |
return (EX_USAGE); |
|
|
|
|
"or set the CVSROOT environment variable."); |
"or set the CVSROOT environment variable."); |
return (EX_USAGE); |
return (EX_USAGE); |
} |
} |
if ((root->cr_method != CVS_METHOD_LOCAL) && (cvs_connect(root) < 0)) |
if (root->cr_method != CVS_METHOD_LOCAL) { |
return (EX_PROTOCOL); |
if (cvs_connect(root) < 0) |
|
return (EX_PROTOCOL); |
|
if (kflag != RCS_KWEXP_DEFAULT) { |
|
strlcpy(buf, "-k", sizeof(buf)); |
|
strlcat(buf, koptstr, sizeof(buf)); |
|
if (cvs_sendarg(root, buf, 0) < 0) |
|
return (EX_PROTOCOL); |
|
} |
|
} |
|
|
cvs_file_examine(cvs_files, cvs_add_file, NULL); |
cvs_file_examine(cvs_files, cvs_add_file, NULL); |
|
|