From: Bastian Dehn Date: Sat, 6 Sep 2025 14:06:54 +0000 (+0200) Subject: change read stat in method X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=41d2435d53d812343fce5abc6df2e53b813bb689;p=discspan.git change read stat in method --- diff --git a/libs/spandisc/src/filehandler.c b/libs/spandisc/src/filehandler.c index 016d8a9..decb478 100644 --- a/libs/spandisc/src/filehandler.c +++ b/libs/spandisc/src/filehandler.c @@ -8,30 +8,38 @@ #define MAX_PATH_LENGTH 255 -void fill_array_from_file(FILE *in, medium_t *srcdata) +void read_file_stat(const char* path, medium_t* srcdata) +{ + struct stat* st = malloc(sizeof(struct stat)); + file_size_t** filearray = srcdata->filearray; + uint32_t length = srcdata->length; + + filearray = realloc(filearray, (length + 1) * sizeof(file_size_t*)); + srcdata->filearray = filearray; + filearray[length] = malloc(sizeof(file_size_t)); + filearray[length]->name = malloc(sizeof(char) * strlen(path) + 1); + + stat(path, st); + strcpy(filearray[length]->name, path); + filearray[length]->type = st->st_mode; + filearray[length]->fsize = st->st_size; + srcdata->length++; + + free(st); + st = NULL; +} + +void fill_array_from_file(FILE* in, medium_t* srcdata) { char* path = malloc(sizeof(char) * MAX_PATH_LENGTH); memset(path, 0, MAX_PATH_LENGTH); - struct stat* st = malloc(sizeof(struct stat)); while (fscanf(in, "%[^\n]\n", path) == 1) { - // Lese Dateieigenschaften in st struct - stat(path, st); - srcdata->filearray = (file_size_t **) - realloc(srcdata->filearray, - (srcdata->length + 1) * sizeof(file_size_t*)); - srcdata->filearray[srcdata->length] = malloc(sizeof(file_size_t)); - srcdata->filearray[srcdata->length]->name = malloc(sizeof(char) * strlen(path) + 1); - strcpy(srcdata->filearray[srcdata->length]->name, path); - srcdata->filearray[srcdata->length]->type = st->st_mode; - srcdata->filearray[srcdata->length]->fsize = st->st_size; - srcdata->length++; + read_file_stat(path, srcdata); } free(path); path = NULL; - free(st); - st = NULL; } void read_input_file(const char *input, medium_t *srcdata)