diff options
author | Aleksey Veresov <aleksey@veresov.pro> | 2019-11-27 21:33:06 +0300 |
---|---|---|
committer | Aleksey Veresov <aleksey@veresov.pro> | 2019-11-27 21:33:06 +0300 |
commit | ea25abb295d9b4fbaf0ac23af8ffe71247970f1b (patch) | |
tree | 67cba7b2e5f2c759eaa816de51bd35f3b32d1421 /src/file.c | |
parent | 88081d9a4376b1ee4feed3bc843c46096e087b1e (diff) | |
download | magi-ea25abb295d9b4fbaf0ac23af8ffe71247970f1b.tar magi-ea25abb295d9b4fbaf0ac23af8ffe71247970f1b.tar.xz magi-ea25abb295d9b4fbaf0ac23af8ffe71247970f1b.zip |
.
Diffstat (limited to 'src/file.c')
-rw-r--r-- | src/file.c | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -0,0 +1,40 @@ +#include "file.h" + +#include <stdlib.h> +#include <string.h> + + +int magi_file_list_add(struct magi_file_list ** list, struct magi_file * item) +{ + struct magi_file_list * node = malloc(sizeof(*node)); + if (node) { + node->next = *list; + node->item = *item; + *list = node; + } + return node; +} + +struct magi_file * magi_file_list_get(struct magi_file_list * list, + const char * name) +{ + if (!list || !name) { + return 0; + } else if (!strcmp(list->item.param_name, name)) { + return &list->item; + } else { + return magi_file_list_get(list->next, name); + } +} + +void magi_file_list_destroy(struct magi_file_list * list) +{ + if (list) { + magi_file_list_destroy(list->next); + free(list->next); + free(list->item.param_name); + free(list->item.file_name); + magi_param_list_destroy(list->item.params); + free(list->item.params); + } +} |