{
int i = 0;
int k = 0;
- *length = 0;
char *arg = prefix ? prefix : argv[i++];
do {
int bs = 0;
char *ptr = malloc(k + 1);
char *str = ptr;
if (!str) {
+ *length = 0;
return NULL;
}
- *length = k;
i = 0;
arg = prefix ? prefix : argv[i++];
} while ((arg = argv[i++]));
ptr[-1] = '\0';
+ *length = ptr - str - 1;
return str;
}
char *tmp_file = format("%s.tmp", path);
FILE *fp = create_tmp_file(&tmp_file, "w");
char atfile[MAX_PATH + 3];
- fwrite(args, 1, length - 1, fp);
+ fwrite(args, 1, length, fp);
fclose(fp);
if (ferror(fp)) {
cc_log("Error writing @file; this command will probably fail: %s", args);