version 1.76, 2006/03/29 09:16:53 |
version 1.77, 2006/04/05 01:38:56 |
|
|
{ |
{ |
int i, ret; |
int i, ret; |
char *argv[1024], **copy; |
char *argv[1024], **copy; |
size_t size; |
|
|
|
ret = cvs_getargv(line, argv, 1024); |
ret = cvs_getargv(line, argv, 1024); |
if (ret == -1) |
if (ret == -1) |
return (NULL); |
return (NULL); |
|
|
size = (ret + 1) * sizeof(char *); |
copy = xcalloc(ret + 1, sizeof(char *)); |
copy = (char **)xmalloc(size); |
|
memset(copy, 0, size); |
|
|
|
for (i = 0; i < ret; i++) |
for (i = 0; i < ret; i++) |
copy[i] = argv[i]; |
copy[i] = argv[i]; |
|
|
struct cvs_lines *lines; |
struct cvs_lines *lines; |
struct cvs_line *lp; |
struct cvs_line *lp; |
|
|
lines = (struct cvs_lines *)xmalloc(sizeof(*lines)); |
lines = xmalloc(sizeof(*lines)); |
TAILQ_INIT(&(lines->l_lines)); |
TAILQ_INIT(&(lines->l_lines)); |
lines->l_nblines = 0; |
lines->l_nblines = 0; |
lines->l_data = xstrdup(fcont); |
lines->l_data = xstrdup(fcont); |
|
|
lp = (struct cvs_line *)xmalloc(sizeof(*lp)); |
lp = xmalloc(sizeof(*lp)); |
lp->l_line = NULL; |
lp->l_line = NULL; |
lp->l_lineno = 0; |
lp->l_lineno = 0; |
TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); |
TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); |
|
|
for (dcp = lines->l_data; *dcp != '\0';) { |
for (dcp = lines->l_data; *dcp != '\0';) { |
lp = (struct cvs_line *)xmalloc(sizeof(*lp)); |
lp = xmalloc(sizeof(*lp)); |
lp->l_line = dcp; |
lp->l_line = dcp; |
lp->l_lineno = ++(lines->l_nblines); |
lp->l_lineno = ++(lines->l_nblines); |
TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); |
TAILQ_INSERT_TAIL(&(lines->l_lines), lp, l_list); |
|
|
char *cp, *p; |
char *cp, *p; |
|
|
cp = xstrdup(str); |
cp = xstrdup(str); |
av = xmalloc(sizeof(struct cvs_argvector)); |
av = xmalloc(sizeof(*av)); |
av->str = cp; |
av->str = cp; |
av->argv = (char **)xcalloc(i + 1, sizeof(char *)); |
av->argv = xcalloc(i + 1, sizeof(*(av->argv))); |
|
|
while ((p = strsep(&cp, sep)) != NULL) { |
while ((p = strsep(&cp, sep)) != NULL) { |
av->argv[i++] = p; |
av->argv[i++] = p; |
nargv = (char **)xrealloc((void *)av->argv, |
nargv = xrealloc(av->argv, |
i + 1, sizeof(char *)); |
i + 1, sizeof(*(av->argv))); |
av->argv = nargv; |
av->argv = nargv; |
} |
} |
av->argv[i] = NULL; |
av->argv[i] = NULL; |