130 node->
next = new_node;
#define ARRAY_FOREACH(elem, head)
Iterate over all elements of the array.
#define ARRAY_SIZE(head)
The number of elements stored.
#define ARRAY_FREE(head)
Release all memory.
#define ARRAY_GET(head, idx)
Return the element at index.
void * mutt_mem_calloc(size_t nmemb, size_t size)
Allocate zeroed memory on the heap.
Convenience wrapper for the library headers.
struct ExpandoNode * node_new(void)
Create a new empty ExpandoNode.
void node_tree_free(struct ExpandoNode **ptr)
Free a tree of ExpandoNodes.
struct ExpandoNode * node_get_child(const struct ExpandoNode *node, int index)
Get a child of an ExpandoNode.
void node_append(struct ExpandoNode **root, struct ExpandoNode *new_node)
Append an ExpandoNode to an existing node.
struct ExpandoNode * node_last(struct ExpandoNode *node)
Find the last Node in a tree.
void node_free(struct ExpandoNode **ptr)
Free an ExpandoNode and its private data.
void * ndata
Private node data.
struct ExpandoFormat * format
Formatting info.
struct ExpandoNode * next
Linked list.
void(* ndata_free)(void **ptr)
Function to free the private node data.
struct ExpandoNodeArray children
Children nodes.