version 1.13, 2004/12/21 18:32:10 |
version 1.14, 2005/01/13 18:47:31 |
|
|
cvs_commit(int argc, char **argv) |
cvs_commit(int argc, char **argv) |
{ |
{ |
int i, ch, flags; |
int i, ch, flags; |
char *msg, *mfile; |
char *mfile; |
struct cvs_flist cl; |
struct cvs_flist cl; |
struct cvsroot *root; |
struct cvsroot *root; |
|
|
flags = CF_RECURSE|CF_IGNORE|CF_SORT; |
flags = CF_RECURSE|CF_IGNORE|CF_SORT; |
mfile = NULL; |
mfile = NULL; |
msg = NULL; |
|
TAILQ_INIT(&cl); |
TAILQ_INIT(&cl); |
|
|
while ((ch = getopt(argc, argv, "F:flm:Rr:")) != -1) { |
while ((ch = getopt(argc, argv, "F:flm:Rr:")) != -1) { |
|
|
flags &= ~CF_RECURSE; |
flags &= ~CF_RECURSE; |
break; |
break; |
case 'm': |
case 'm': |
msg = optarg; |
cvs_msg = strdup(optarg); |
|
if (cvs_msg == NULL) { |
|
cvs_log(LP_ERRNO, "failed to copy message"); |
|
return (EX_DATAERR); |
|
} |
break; |
break; |
case 'R': |
case 'R': |
flags |= CF_RECURSE; |
flags |= CF_RECURSE; |
|
|
} |
} |
} |
} |
|
|
if ((msg != NULL) && (mfile != NULL)) { |
if ((cvs_msg != NULL) && (mfile != NULL)) { |
cvs_log(LP_ERR, "the -F and -m flags are mutually exclusive"); |
cvs_log(LP_ERR, "the -F and -m flags are mutually exclusive"); |
return (EX_USAGE); |
return (EX_USAGE); |
} |
} |
|
|
if ((mfile != NULL) && (msg = cvs_logmsg_open(mfile)) == NULL) |
if ((mfile != NULL) && (cvs_msg = cvs_logmsg_open(mfile)) == NULL) |
return (EX_DATAERR); |
return (EX_DATAERR); |
|
|
argc -= optind; |
argc -= optind; |
|
|
if (TAILQ_EMPTY(&cl)) |
if (TAILQ_EMPTY(&cl)) |
return (0); |
return (0); |
|
|
if (msg == NULL) { |
if (cvs_msg == NULL) { |
msg = cvs_logmsg_get(CVS_FILE_NAME(cvs_files), NULL, &cl, NULL); |
cvs_msg = cvs_logmsg_get(CVS_FILE_NAME(cvs_files), |
if (msg == NULL) |
NULL, &cl, NULL); |
|
if (cvs_msg == NULL) |
return (1); |
return (1); |
} |
} |
|
|
|
|
return (EX_USAGE); |
return (EX_USAGE); |
} |
} |
if ((root->cr_method != CVS_METHOD_LOCAL) && |
if ((root->cr_method != CVS_METHOD_LOCAL) && |
((cvs_connect(root) < 0) || (cvs_logmsg_send(root, msg) < 0))) |
((cvs_connect(root) < 0) || (cvs_logmsg_send(root, cvs_msg) < 0))) |
return (EX_PROTOCOL); |
return (EX_PROTOCOL); |
|
|
cvs_file_examine(cvs_files, cvs_commit_file, &cl); |
cvs_file_examine(cvs_files, cvs_commit_file, &cl); |