aboutsummaryrefslogtreecommitdiffstats
path: root/filter/tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'filter/tree.c')
-rw-r--r--filter/tree.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/filter/tree.c b/filter/tree.c
index 2bbc84bb..5da86b9d 100644
--- a/filter/tree.c
+++ b/filter/tree.c
@@ -170,3 +170,14 @@ tree_format(const struct f_tree *t, buffer *buf)
buffer_puts(buf, "]");
}
+
+void
+tree_walk(const struct f_tree *t, void (*hook)(const struct f_tree *, void *), void *data)
+{
+ if (!t)
+ return;
+
+ tree_walk(t->left, hook, data);
+ hook(t, data);
+ tree_walk(t->right, hook, data);
+}