diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-04-29 03:12:06 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2023-04-29 23:44:05 +0200 |
commit | 4390eddccfb3918291e7b8e4d708411f9b828c04 (patch) | |
tree | e5983b387ae9f9e0f75a6b6c2a83c3ff03a25221 /bin/gensquashfs/src/fstree_from_dir.c | |
parent | f21fa23162d294b1327aaa3528444c1aaceb5b5a (diff) |
gensquashfs: use prefix functionality for glob_files target node
Piece together the prefix path and pass it to the iterator. That way,
we get the full target paths back from the iterator and can use those
directly in the callback for filtering.
We also no longer need the root node for fstree_from_dir (always tree
root) and the callback can no longer return an error state.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'bin/gensquashfs/src/fstree_from_dir.c')
-rw-r--r-- | bin/gensquashfs/src/fstree_from_dir.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/bin/gensquashfs/src/fstree_from_dir.c b/bin/gensquashfs/src/fstree_from_dir.c index b2d27f1..c960430 100644 --- a/bin/gensquashfs/src/fstree_from_dir.c +++ b/bin/gensquashfs/src/fstree_from_dir.c @@ -21,7 +21,7 @@ static sqfs_u32 clamp_timestamp(sqfs_s64 ts) return ts; } -int fstree_from_dir(fstree_t *fs, tree_node_t *root, dir_iterator_t *dir, +int fstree_from_dir(fstree_t *fs, dir_iterator_t *dir, scan_node_callback cb, void *user) { for (;;) { @@ -38,12 +38,13 @@ int fstree_from_dir(fstree_t *fs, tree_node_t *root, dir_iterator_t *dir, return -1; } - n = fstree_get_node_by_path(fs, root, ent->name, false, true); + n = fstree_get_node_by_path(fs, fs->root, ent->name, + false, true); if (n == NULL) ret = 1; if (ret == 0 && cb != NULL) - ret = cb(user, root, ent); + ret = cb(user, ent); if (ret < 0) { free(ent); @@ -72,7 +73,7 @@ int fstree_from_dir(fstree_t *fs, tree_node_t *root, dir_iterator_t *dir, sb.st_mode = ent->mode; sb.st_mtime = clamp_timestamp(ent->mtime); - n = fstree_add_generic_at(fs, root, ent->name, &sb, extra); + n = fstree_add_generic(fs, ent->name, &sb, extra); free(extra); free(ent); |