aboutsummaryrefslogtreecommitdiff
path: root/bin/gensquashfs/src/fstree_from_dir.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-04-29 03:12:06 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2023-04-29 23:44:05 +0200
commit4390eddccfb3918291e7b8e4d708411f9b828c04 (patch)
treee5983b387ae9f9e0f75a6b6c2a83c3ff03a25221 /bin/gensquashfs/src/fstree_from_dir.c
parentf21fa23162d294b1327aaa3528444c1aaceb5b5a (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.c9
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);