aboutsummaryrefslogtreecommitdiff
path: root/qpkg.c
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2019-07-13 12:03:47 +0200
committerFabian Groffen <grobian@gentoo.org>2019-07-13 12:03:47 +0200
commit264be8b792d2ddd131d1a52cc1773c60c52a1a51 (patch)
treea6d38b5b6d387003e44bd6edafc2baa4bc7dbd7a /qpkg.c
parentlibq/tree: greatly simplify tree_get_vdb_atoms (diff)
downloadportage-utils-264be8b792d2ddd131d1a52cc1773c60c52a1a51.tar.gz
portage-utils-264be8b792d2ddd131d1a52cc1773c60c52a1a51.tar.bz2
portage-utils-264be8b792d2ddd131d1a52cc1773c60c52a1a51.zip
libq/tree: rename tree_get_vdb_atoms to tree_get_atoms
in qmerge take advantage of tree_get_atoms to fold the packages for all trees (overlays) next to vdb contents into one using the same code that builds the vdb list Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Diffstat (limited to 'qpkg.c')
-rw-r--r--qpkg.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/qpkg.c b/qpkg.c
index 4063af25..2c5a6c36 100644
--- a/qpkg.c
+++ b/qpkg.c
@@ -123,21 +123,6 @@ qpkg_clean_dir(char *dirp, set *vdb)
return num_all_bytes;
}
-static int
-qpkg_cb(tree_pkg_ctx *pkg_ctx, void *priv)
-{
- set *vdb = (set *)priv;
- char buf[_Q_PATH_MAX];
-
- if (tree_get_atom(pkg_ctx, false) == NULL)
- return 0;
-
- snprintf(buf, sizeof(buf), "%s/%s", pkg_ctx->cat_ctx->name, pkg_ctx->name);
- vdb = add_set(buf, vdb);
-
- return 1;
-}
-
/* figure out what dirs we want to process for cleaning and display results. */
static int
qpkg_clean(char *dirp)
@@ -146,23 +131,28 @@ qpkg_clean(char *dirp)
size_t disp_units = 0;
uint64_t num_all_bytes;
struct dirent **dnames;
- set *vdb;
+ set *vdb = NULL;
+ tree_ctx *t;
if (chdir(dirp) != 0)
return 1;
if ((count = scandir(".", &dnames, filter_hidden, alphasort)) < 0)
return 1;
- vdb = tree_get_vdb_atoms(portroot, portvdb, 1);
+ t = tree_open_vdb(portroot, portvdb);
+ if (t != NULL) {
+ vdb = tree_get_atoms(t, true, vdb);
+ tree_close(t);
+ }
if (eclean) {
size_t n;
const char *overlay;
array_for_each(overlays, n, overlay) {
- tree_ctx *t = tree_open(portroot, overlay);
+ t = tree_open(portroot, overlay);
if (t != NULL) {
- tree_foreach_pkg_fast(t, qpkg_cb, vdb, NULL);
+ vdb = tree_get_atoms(t, true, vdb);
tree_close(t);
}
}