From bafffedd0cf97e00f409dd294fe30a3b0ad4323b Mon Sep 17 00:00:00 2001 From: morgan Date: Mon, 3 Aug 2026 20:52:22 -0700 Subject: [PATCH] guess were doing link lists now, for real though --- include/element_list.h | 17 +++++++++++++++++ src/element_list.c | 21 +++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 include/element_list.h create mode 100644 src/element_list.c diff --git a/include/element_list.h b/include/element_list.h new file mode 100644 index 0000000..51f9cd4 --- /dev/null +++ b/include/element_list.h @@ -0,0 +1,17 @@ +#ifndef __ELEMENT_LIST_H__ +#define __ELEMENT_LIST_H__ + + +typedef struct element_list_node element_list_node_t; + +struct element_list_node { + element_list_node_t *first; + element_list_node_t *last; + element_list_node_t *next; + element_list_node_t *prev; + cfglr_element_t *element; +}; + +element_list_node_t *element_list_add(element_list_node_t *list, element_list_node_t *node); + +#endif diff --git a/src/element_list.c b/src/element_list.c new file mode 100644 index 0000000..74b7620 --- /dev/null +++ b/src/element_list.c @@ -0,0 +1,21 @@ +#include "configulator.h" +#include "element_list.h" + + +element_list_node_t *element_list_add(element_list_node_t *list, element_list_node_t *node) { + element_list_node_t *last = list->last; + + node->first = list->first; + node->prev = last; + + last->next = node; + + element_list_node_t *next = node; + + while(next) { + next->last = node; + next = next->prev; + } + + return node; +}