version 1.87, 2005/12/03 15:07:20 |
version 1.88, 2005/12/10 20:27:45 |
|
|
|
|
cvs_getopt(i, targv); |
cvs_getopt(i, targv); |
cvs_freeargv(targv, i); |
cvs_freeargv(targv, i); |
free(targv); |
xfree(targv); |
} |
} |
} |
} |
|
|
|
|
if (cvs_files != NULL) |
if (cvs_files != NULL) |
cvs_file_free(cvs_files); |
cvs_file_free(cvs_files); |
if (cvs_msg != NULL) |
if (cvs_msg != NULL) |
free(cvs_msg); |
xfree(cvs_msg); |
|
|
return (ret); |
return (ret); |
} |
} |
|
|
* argument processing. |
* argument processing. |
*/ |
*/ |
*lp = ' '; |
*lp = ' '; |
cvs_defargs = strdup(p); |
cvs_defargs = xstrdup(p); |
if (cvs_defargs == NULL) |
|
cvs_log(LP_ERRNO, |
|
"failed to copy global arguments"); |
|
} else { |
} else { |
lp++; |
lp++; |
cmdp = cvs_findcmd(p); |
cmdp = cvs_findcmd(p); |
|
|
continue; |
continue; |
} |
} |
|
|
cmdp->cmd_defargs = strdup(lp); |
cmdp->cmd_defargs = xstrdup(lp); |
if (cmdp->cmd_defargs == NULL) |
|
cvs_log(LP_ERRNO, |
|
"failed to copy default arguments for %s", |
|
cmdp->cmd_name); |
|
} |
} |
} |
} |
if (ferror(fp)) { |
if (ferror(fp)) { |
|
|
if (strcmp(vp->cv_name, var) == 0) |
if (strcmp(vp->cv_name, var) == 0) |
break; |
break; |
|
|
valcp = strdup(val); |
valcp = xstrdup(val); |
if (valcp == NULL) { |
|
cvs_log(LP_ERRNO, "failed to allocate variable"); |
|
return (-1); |
|
} |
|
|
|
if (vp == NULL) { |
if (vp == NULL) { |
vp = (struct cvs_var *)malloc(sizeof(*vp)); |
vp = (struct cvs_var *)xmalloc(sizeof(*vp)); |
if (vp == NULL) { |
|
cvs_log(LP_ERRNO, "failed to allocate variable"); |
|
free(valcp); |
|
return (-1); |
|
} |
|
memset(vp, 0, sizeof(*vp)); |
memset(vp, 0, sizeof(*vp)); |
|
|
vp->cv_name = strdup(var); |
vp->cv_name = xstrdup(var); |
if (vp->cv_name == NULL) { |
|
cvs_log(LP_ERRNO, "failed to allocate variable"); |
|
free(valcp); |
|
free(vp); |
|
return (-1); |
|
} |
|
|
|
TAILQ_INSERT_TAIL(&cvs_variables, vp, cv_link); |
TAILQ_INSERT_TAIL(&cvs_variables, vp, cv_link); |
|
|
} else /* free the previous value */ |
} else /* free the previous value */ |
free(vp->cv_val); |
xfree(vp->cv_val); |
|
|
vp->cv_val = valcp; |
vp->cv_val = valcp; |
|
|
|
|
TAILQ_FOREACH(vp, &cvs_variables, cv_link) |
TAILQ_FOREACH(vp, &cvs_variables, cv_link) |
if (strcmp(vp->cv_name, var) == 0) { |
if (strcmp(vp->cv_name, var) == 0) { |
TAILQ_REMOVE(&cvs_variables, vp, cv_link); |
TAILQ_REMOVE(&cvs_variables, vp, cv_link); |
free(vp->cv_name); |
xfree(vp->cv_name); |
free(vp->cv_val); |
xfree(vp->cv_val); |
free(vp); |
xfree(vp); |
return (0); |
return (0); |
} |
} |
|
|