X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/d45b1de81aa47cef4ca098a4b2725d855b154162..38a0a95ff69327042421b9ee6982e386175f141b:/src/src/tree.c diff --git a/src/src/tree.c b/src/src/tree.c index 17216052b..219a53580 100644 --- a/src/src/tree.c +++ b/src/src/tree.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/tree.c,v 1.3 2006/02/07 11:19:00 ph10 Exp $ */ +/* $Cambridge: exim/src/src/tree.c,v 1.4 2006/09/19 11:28:45 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -342,4 +342,26 @@ return NULL; } + +/************************************************* +* Walk tree recursively and execute function * +*************************************************/ + +/* +Arguments: + p root of the tree + f function to execute for each name-value-pair + ctx context data for f +*/ + +void +tree_walk(tree_node *p, void (*f)(uschar*, uschar*, void*), void *ctx) +{ +if (p == NULL) return; +f(p->name, p->data.ptr, ctx); +if (p->left != NULL) tree_walk(p->left, f, ctx); +if (p->right != NULL) tree_walk(p->right, f, ctx); +} + + /* End of tree.c */