#include "discspan.h"
#include "splitter.h"
-void writeOutputFile(const char *outputPath, file_size_t *disc, int length)
+void writeOutputFile(const char *outputPath, file_size_handler_t disc)
{
FILE *out = fopen(outputPath, "w");
- for (int i = 0; i < length; i++) {
- fprintf(out, "%s\n", disc[i].name);
+ for (int i = 0; i < disc.length; i++) {
+ fprintf(out, "%s\n", disc.filearray[i].name);
}
fclose(out);
{
file_size_t *rest = (file_size_t *)
malloc(handler->length * sizeof(file_size_t));
- file_size_t *disc = (file_size_t *)
- malloc(handler->length * sizeof(file_size_t));
+
+ file_size_handler_t disc;
+ disc.length = handler->length;
+ disc.filearray = (file_size_t *)
+ malloc(disc.length * sizeof(file_size_t));
unsigned long long filesize = 0;
int restcount = 0;
if (splitgroesse >= filesize) {
splitgroesse -= filesize;
- disc[disccount++] = handler->filearray[i];
+ disc.filearray[disccount++] = handler->filearray[i];
} else {
rest[restcount++] = handler->filearray[i];
}
}
- writeOutputFile(output, disc, disccount);
+ disc.length = disccount;
+ disc.filearray = (file_size_t *)
+ realloc(disc.filearray, disc.length * sizeof(file_size_t));
+
+ writeOutputFile(output, disc);
onPrintEvent(output, splitgroesse);
restcount * sizeof(file_size_t));
handler->length = restcount;
- free(disc);
+ free(disc.filearray);
free(rest);
}