From 9d1d9ec6dfd525a392ac158609da6153f6525046 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Sat, 29 Apr 2023 01:21:39 +0200 Subject: libutil: Add an option to the dir_tree_iterator_t to add a path prefix Signed-off-by: David Oberhollenzer --- lib/util/src/dir_tree_iterator.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'lib/util/src/dir_tree_iterator.c') diff --git a/lib/util/src/dir_tree_iterator.c b/lib/util/src/dir_tree_iterator.c index ccc63ac..37ddbea 100644 --- a/lib/util/src/dir_tree_iterator.c +++ b/lib/util/src/dir_tree_iterator.c @@ -165,6 +165,22 @@ retry: } } + if (it->cfg.prefix != NULL) { + size_t slen = strlen(ent->name), len = strlen(it->cfg.prefix); + void *new = realloc(ent, sizeof(*ent) + len + 1 + slen + 1); + + if (new == NULL) { + ret = SQFS_ERROR_ALLOC; + goto fail; + } + + ent = new; + memmove(ent->name + len + 1, ent->name, slen + 1); + memcpy(ent->name, it->cfg.prefix, len); + ent->name[len] = '/'; + plen += len + 1; + } + if (!(it->cfg.flags & DIR_SCAN_KEEP_TIME)) ent->mtime = it->cfg.def_mtime; -- cgit v1.2.3