From: Bastian Dehn Date: Sun, 8 Aug 2021 11:11:13 +0000 (+0200) Subject: add: ignore none files and directories X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=543eb3d92ae01027573d680b0902fd9fecab5e69;p=discspan.git add: ignore none files and directories --- diff --git a/discspan.h b/discspan.h index fb8d10f..611a78d 100644 --- a/discspan.h +++ b/discspan.h @@ -4,6 +4,7 @@ typedef struct { char name[255]; unsigned long long fsize; + unsigned int type; } file_size_t; typedef struct { diff --git a/filehandler.c b/filehandler.c index ade08ba..13e8785 100644 --- a/filehandler.c +++ b/filehandler.c @@ -31,6 +31,7 @@ void fill_array_from_file(FILE *in, medium_t *srcdata) // Lese Dateieigenschaften in st struct stat(pfad, &st); strcpy(srcdata->filearray[lines].name, pfad); + srcdata->filearray[lines].type = st.st_mode; srcdata->filearray[lines++].fsize = st.st_size; } } diff --git a/splitter.c b/splitter.c index 87ee066..8a6d395 100644 --- a/splitter.c +++ b/splitter.c @@ -4,6 +4,8 @@ #include "discspan.h" #include "splitter.h" +#define S_IFREG 0100000 // bitmask for regular file; man inode + medium_t init_empty_medium(medium_t srcdata) { medium_t empty; @@ -35,6 +37,11 @@ int bigger_file_ignore_medium(medium_t *disc, file_size_t file) int retvalue = 0; unsigned long long filesize = ceil(file.fsize /2048.0) * 2048; + if ((file.type & S_IFREG) == S_IFREG) + retvalue = 0; + else + retvalue = 1; + if (disc->freespace < filesize) retvalue = 1;