aboutsummaryrefslogtreecommitdiff
path: root/lib/io/src/dir_tree_iterator.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/io/src/dir_tree_iterator.c')
-rw-r--r--lib/io/src/dir_tree_iterator.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/io/src/dir_tree_iterator.c b/lib/io/src/dir_tree_iterator.c
index 85b1c9f..604efd5 100644
--- a/lib/io/src/dir_tree_iterator.c
+++ b/lib/io/src/dir_tree_iterator.c
@@ -265,6 +265,13 @@ static int open_subdir(dir_iterator_t *base, dir_iterator_t **out)
return it->top->dir->open_subdir(it->top->dir, out);
}
+static void ignore_subdir(dir_iterator_t *base)
+{
+ dir_tree_iterator_t *it = (dir_tree_iterator_t *)base;
+
+ pop(it);
+}
+
dir_iterator_t *dir_tree_iterator_create(const char *path,
const dir_tree_cfg_t *cfg)
{
@@ -295,16 +302,10 @@ dir_iterator_t *dir_tree_iterator_create(const char *path,
((dir_iterator_t *)it)->next = next;
((dir_iterator_t *)it)->read_link = read_link;
((dir_iterator_t *)it)->open_subdir = open_subdir;
+ ((dir_iterator_t *)it)->ignore_subdir = ignore_subdir;
return (dir_iterator_t *)it;
fail:
free(it);
return NULL;
}
-
-void dir_tree_iterator_skip(dir_iterator_t *base)
-{
- dir_tree_iterator_t *it = (dir_tree_iterator_t *)base;
-
- pop(it);
-}