From 11e36726f61e8615bb873c2d322d85dafcd73e7b Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Fri, 28 Apr 2023 12:22:18 +0200 Subject: 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 --- include/util/dir_tree_iterator.h | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'include') 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); -- cgit v1.2.3