version 1.26, 2005/05/20 00:07:19 |
version 1.27, 2005/05/20 10:40:22 |
|
|
char linebuf[256], qbuf[128], *lp, *cp, *arg; |
char linebuf[256], qbuf[128], *lp, *cp, *arg; |
|
|
strlcpy(linebuf, line, sizeof(linebuf)); |
strlcpy(linebuf, line, sizeof(linebuf)); |
memset(argv, 0, sizeof(argv)); |
memset(argv, 0, argvlen * sizeof(char *)); |
argc = 0; |
argc = 0; |
|
|
/* build the argument vector */ |
/* build the argument vector */ |
|
|
{ |
{ |
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); |
|
|
copy = (char **)malloc((ret + 1) * sizeof(char *)); |
size = (ret + 1) * sizeof(char *); |
|
copy = (char **)malloc(size); |
if (copy == NULL) { |
if (copy == NULL) { |
cvs_log(LP_ERRNO, "failed to allocate argument vector"); |
cvs_log(LP_ERRNO, "failed to allocate argument vector"); |
|
cvs_freeargv(argv, ret); |
return (NULL); |
return (NULL); |
} |
} |
memset(copy, 0, sizeof(copy)); |
memset(copy, 0, size); |
|
|
for (i = 0; i < ret; i++) |
for (i = 0; i < ret; i++) |
copy[i] = argv[i]; |
copy[i] = argv[i]; |