#include <string.h>
#include <stdlib.h>
#include <stdio.h>
-#include <stdint.h>
#include "filehandler.h"
#ifndef _FILEHANDLER_H
#define _FILEHANDLER_H
-#include "spandisc.h"
+#include "splitter.h"
void read_input_file(const char *input, medium_t *srcdata);
void write_output_file(const char *output, medium_t* disc);
#ifndef _LIBSPANDISC_H
#define _LIBSPANDISC_H
-#include "spandisc.h"
+#include "splitter.h"
#include "logic.h"
#include "filehandler.h"
-#include "splitter.h"
#endif
#ifndef _LOGIC_H
#define _LOGIC_H
-#include "spandisc.h"
+#include "splitter.h"
typedef void (*status_print_t)(const char *output, medium_t* disc);
extern status_print_t status_print;
+++ /dev/null
-#include <stdlib.h>
-#include <stdint.h>
-#include "spandisc.h"
-
-collection_t* init_collection()
-{
- collection_t* col = malloc(sizeof(collection_t));
-
- col->length = 0;
- col->disc = NULL;
-
- return col;
-}
-
-medium_t* init_medium()
-{
- medium_t* medium = malloc(sizeof(medium_t));
-
- medium->nr = 0;
- medium->freespace = 0;
- medium->length = 0;
- medium->filearray = NULL;
-
- return medium;
-}
-
-void free_file_size(file_size_t* file_size)
-{
- free(file_size->name);
- file_size->name = NULL;
- free(file_size);
- file_size = NULL;
-}
-
-void free_medium(medium_t *medium)
-{
- free(medium->filearray);
- medium->filearray = NULL;
- free(medium);
- medium = NULL;
-}
-
-void free_medium_complete(medium_t* medium)
-{
- for (int i = 0; i < medium->length; i++) {
- free_file_size(medium->filearray[i]);
- medium->filearray[i] = NULL;
- }
-
- free_medium(medium);
- medium = NULL;
-}
-
-void free_collection(collection_t *col)
-{
- for (uint32_t i = 0; i < col->length; i++) {
- free_medium_complete(col->disc[i]);
- col->disc[i] = NULL;
- }
-
- free(col->disc);
- col->disc = NULL;
- free(col);
- col = NULL;
-}
\ No newline at end of file
+++ /dev/null
-#ifndef _SPANDISC_H
-#define _SPANDISC_H
-
-typedef struct {
- char* name;
- uint64_t fsize;
- uint32_t type;
-} file_size_t;
-
-typedef struct {
- int16_t nr;
- uint64_t freespace;
- uint32_t length;
- file_size_t **filearray;
-} medium_t;
-
-typedef struct {
- uint32_t length;
- medium_t **disc;
-} collection_t;
-
-collection_t* init_collection();
-medium_t* init_medium();
-void free_medium(medium_t *medium);
-void free_collection(collection_t *col);
-
-#endif
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
-#include <stdint.h>
#include "splitter.h"
#define BLOCK_SIZE 2048.0
#define S_IFREG 0100000 // bitmask for regular file; man inode
+collection_t* init_collection()
+{
+ collection_t* col = malloc(sizeof(collection_t));
+
+ col->length = 0;
+ col->disc = NULL;
+
+ return col;
+}
+
+medium_t* init_medium()
+{
+ medium_t* medium = malloc(sizeof(medium_t));
+
+ medium->nr = 0;
+ medium->freespace = 0;
+ medium->length = 0;
+ medium->filearray = NULL;
+
+ return medium;
+}
+
+void free_file_size(file_size_t* file_size)
+{
+ free(file_size->name);
+ file_size->name = NULL;
+ free(file_size);
+ file_size = NULL;
+}
+
+void free_medium(medium_t *medium)
+{
+ free(medium->filearray);
+ medium->filearray = NULL;
+ free(medium);
+ medium = NULL;
+}
+
+void free_medium_complete(medium_t* medium)
+{
+ for (int i = 0; i < medium->length; i++) {
+ free_file_size(medium->filearray[i]);
+ medium->filearray[i] = NULL;
+ }
+
+ free_medium(medium);
+ medium = NULL;
+}
+
+void free_collection(collection_t *col)
+{
+ for (uint32_t i = 0; i < col->length; i++) {
+ free_medium_complete(col->disc[i]);
+ col->disc[i] = NULL;
+ }
+
+ free(col->disc);
+ col->disc = NULL;
+ free(col);
+ col = NULL;
+}
+
int cmpfunc(const void *filea, const void *fileb)
{
uint64_t a = (*(const file_size_t**)filea)->fsize;
#ifndef _SPLITTER_H
#define _SPLITTER_H
-#include "spandisc.h"
+#include <stdint.h>
+
+typedef struct {
+ char* name;
+ uint64_t fsize;
+ uint32_t type;
+} file_size_t;
+
+typedef struct {
+ int16_t nr;
+ uint64_t freespace;
+ uint32_t length;
+ file_size_t **filearray;
+} medium_t;
+
+typedef struct {
+ uint32_t length;
+ medium_t **disc;
+} collection_t;
+
+collection_t* init_collection();
+medium_t* init_medium();
+void free_medium(medium_t *medium);
+void free_collection(collection_t *col);
medium_t* splitter(medium_t *srcdata);
medium_t* ignore(medium_t *srcdata);