-ListNode *newListNode()
-{
- return checked_calloc(sizeof(ListNode));
-}
-
-void addNodeToList(ListNode **node_first, char *key, void *content)
-{
- ListNode *node_new = newListNode();
-
-#if 0
- printf("LIST: adding node with key '%s'\n", key);
-#endif
-
- node_new->key = getStringCopy(key);
- node_new->content = content;
- node_new->next = *node_first;
- *node_first = node_new;
-}
-
-void deleteNodeFromList(ListNode **node_first, char *key,
- void (*destructor_function)(void *))
-{
- if (node_first == NULL || *node_first == NULL)
- return;
-
-#if 0
- printf("[CHECKING LIST KEY '%s' == '%s']\n",
- (*node_first)->key, key);
-#endif
-
- if (strcmp((*node_first)->key, key) == 0)
- {
-#if 0
- printf("[DELETING LIST ENTRY]\n");
-#endif
-
- free((*node_first)->key);
- if (destructor_function)
- destructor_function((*node_first)->content);
- *node_first = (*node_first)->next;
- }
- else
- deleteNodeFromList(&(*node_first)->next, key, destructor_function);
-}
-
-ListNode *getNodeFromKey(ListNode *node_first, char *key)
-{
- if (node_first == NULL)
- return NULL;
-
- if (strcmp(node_first->key, key) == 0)
- return node_first;
- else
- return getNodeFromKey(node_first->next, key);
-}
-
-int getNumNodes(ListNode *node_first)
-{
- return (node_first ? 1 + getNumNodes(node_first->next) : 0);
-}
-
-void dumpList(ListNode *node_first)