From 7d01bbb78c11cb54c96cf9708916a116190364cb Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sun, 14 May 2023 03:37:36 +0200 Subject: libio: Move skip function into dir_iterator_t base interface For regular iterator types, it's a no-op, for the tree iterator, it skips the sub tree. Signed-off-by: David Oberhollenzer --- lib/io/src/unix/dir_iterator.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/io/src/unix') diff --git a/lib/io/src/unix/dir_iterator.c b/lib/io/src/unix/dir_iterator.c index d67fe83..d2727ad 100644 --- a/lib/io/src/unix/dir_iterator.c +++ b/lib/io/src/unix/dir_iterator.c @@ -121,6 +121,11 @@ static int dir_next(dir_iterator_t *base, dir_entry_t **out) return it->state; } +static void dir_ignore_subdir(dir_iterator_t *it) +{ + (void)it; +} + static int dir_open_subdir(dir_iterator_t *base, dir_iterator_t **out) { const unix_dir_iterator_t *it = (const unix_dir_iterator_t *)base; @@ -160,6 +165,7 @@ static int dir_open_subdir(dir_iterator_t *base, dir_iterator_t **out) ((dir_iterator_t *)sub)->next = dir_next; ((dir_iterator_t *)sub)->read_link = dir_read_link; ((dir_iterator_t *)sub)->open_subdir = dir_open_subdir; + ((dir_iterator_t *)sub)->ignore_subdir = dir_ignore_subdir; *out = (dir_iterator_t *)sub; return 0; @@ -199,6 +205,7 @@ dir_iterator_t *dir_iterator_create(const char *path) ((dir_iterator_t *)it)->next = dir_next; ((dir_iterator_t *)it)->read_link = dir_read_link; ((dir_iterator_t *)it)->open_subdir = dir_open_subdir; + ((dir_iterator_t *)it)->ignore_subdir = dir_ignore_subdir; return (dir_iterator_t *)it; } -- cgit v1.2.3