]> gitweb.hhaalo.de Git - discspan.git/commitdiff
add: ignore none files and directories
authorBastian Dehn <hhaalo@arcor.de>
Sun, 8 Aug 2021 11:11:13 +0000 (13:11 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 8 Aug 2021 11:11:13 +0000 (13:11 +0200)
discspan.h
filehandler.c
splitter.c

index fb8d10f75f02e33bb4a46f2c47639686632d6bf4..611a78d3e8a20c55ebd832db72e0edead0805c22 100644 (file)
@@ -4,6 +4,7 @@
 typedef struct {
        char name[255];
        unsigned long long fsize;
+       unsigned int type;
 } file_size_t;
 
 typedef struct {
index ade08ba07b679d4f9e288459d615903147d2cc1d..13e8785a79b2c80a8f075e8d7484fb56ab48ba75 100644 (file)
@@ -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;
        }
 }
index 87ee066d83ad107de5e0e72d2ab578dbb98f4ca9..8a6d3959b8c2647841cd1339d412d23ea1265407 100644 (file)
@@ -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;