aboutsummaryrefslogtreecommitdiff
path: root/include/util
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-04-28 12:22:18 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-04-29 00:26:32 +0200
commit11e36726f61e8615bb873c2d322d85dafcd73e7b (patch)
treec186f6411409bc735342643b44667a14895d6f6e /include/util
parentea8ed35e8665be75923bb483c377421d24ae2faf (diff)
Move type based filtering to libutil dir_tree_iterator_t
Limited unit testing for the flags is added, particularly the abillity to recurse into sub-directories, but not report the parents as individual entries. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'include/util')
-rw-r--r--include/util/dir_tree_iterator.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/include/util/dir_tree_iterator.h b/include/util/dir_tree_iterator.h
index 953459f..3c624c9 100644
--- a/include/util/dir_tree_iterator.h
+++ b/include/util/dir_tree_iterator.h
@@ -9,7 +9,27 @@
#include "util/dir_iterator.h"
-dir_iterator_t *dir_tree_iterator_create(const char *path);
+enum {
+ DIR_SCAN_NO_SOCK = 0x0001,
+ DIR_SCAN_NO_SLINK = 0x0002,
+ DIR_SCAN_NO_FILE = 0x0004,
+ DIR_SCAN_NO_BLK = 0x0008,
+ DIR_SCAN_NO_DIR = 0x0010,
+ DIR_SCAN_NO_CHR = 0x0020,
+ DIR_SCAN_NO_FIFO = 0x0040,
+
+ DIR_SCAN_KEEP_TIME = 0x0100,
+ DIR_SCAN_ONE_FILESYSTEM = 0x0200,
+ DIR_SCAN_NO_RECURSION = 0x0400,
+};
+
+typedef struct {
+ sqfs_u32 flags;
+ sqfs_s64 def_mtime;
+} dir_tree_cfg_t;
+
+dir_iterator_t *dir_tree_iterator_create(const char *path,
+ const dir_tree_cfg_t *cfg);
void dir_tree_iterator_skip(dir_iterator_t *it);