diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-04-28 12:22:18 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-04-29 00:26:32 +0200 |
commit | 11e36726f61e8615bb873c2d322d85dafcd73e7b (patch) | |
tree | c186f6411409bc735342643b44667a14895d6f6e /include/util | |
parent | ea8ed35e8665be75923bb483c377421d24ae2faf (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.h | 22 |
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); |