]> gitweb.hhaalo.de Git - discspan.git/commitdiff
change read stat in method
authorBastian Dehn <hhaalo@arcor.de>
Sat, 6 Sep 2025 14:06:54 +0000 (16:06 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 6 Sep 2025 14:06:54 +0000 (16:06 +0200)
libs/spandisc/src/filehandler.c

index 016d8a981f7737c1aabcb41660b77e69ef502f19..decb4783439abe4e3d842fddabdee30aea8b0403 100644 (file)
@@ -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)