X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/df04890c398664e60aedbddb8d646cb1d353383f..b4f579d134197249b448cb5d8abf801ba4c729bb:/src/src/tree.c diff --git a/src/src/tree.c b/src/src/tree.c index 3b6c3603b..ff792bb6e 100644 --- a/src/src/tree.c +++ b/src/src/tree.c @@ -362,4 +362,27 @@ tree_walk(p->right, f, ctx); } + +/* Add a node to a tree, ignoring possibility of duplicates */ + +static void +tree_add_var(uschar * name, uschar * val, void * ctx) +{ +tree_node ** root = ctx; +tree_node * node = store_get(sizeof(tree_node) + Ustrlen(name)); +Ustrcpy(node->name, name); +node->data.ptr = val; +(void) tree_insertnode(root, node); +} + +/* Duplicate a tree */ + +void +tree_dup(tree_node ** dstp, tree_node * src) +{ +tree_walk(src, tree_add_var, dstp); +} + + + /* End of tree.c */