From ad6188f911af896c9c77e9215bea3c5c2a4e6cc3 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Fri, 13 Sep 2019 18:50:34 +0300 Subject: Project name and license are added. Minor changes. --- src/param.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/param.c (limited to 'src/param.c') diff --git a/src/param.c b/src/param.c new file mode 100644 index 0000000..ebd2216 --- /dev/null +++ b/src/param.c @@ -0,0 +1,51 @@ +#include "param.h" + +#include "log.h" +#include +#include + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Parameter + */ +int magi_param_list_add(struct magi_param_list **list, struct magi_param *item) +{ + struct magi_param_list *old = *list; + int ok = 1; + *list = malloc(sizeof(**list)); + if (*list) { + (*list)->next = old; + (*list)->item = *item; + } else { + ok = 0; + magi_log("[param:list] Cannot allocate new list node."); + *list = old; + } + return ok; +} + +struct magi_param *magi_param_list_get( + struct magi_param_list *list, + const char *name +) +{ + struct magi_param *item = 0; + if (list && name) { + if (!strcmp(list->item.name, name)) { + item = &list->item; + } else { + item = magi_param_list_get(list->next, name); + } + } + return item; +} + +void magi_param_list_destroy(struct magi_param_list *list) +{ + if (list) { + magi_param_list_destroy(list->next); + free(list->next); + free(list->item.name); + free(list->item.data); + } +} -- cgit v1.2.3