diff options
author | Fabian Groffen <grobian@gentoo.org> | 2019-07-13 12:03:47 +0200 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2019-07-13 12:03:47 +0200 |
commit | 264be8b792d2ddd131d1a52cc1773c60c52a1a51 (patch) | |
tree | a6d38b5b6d387003e44bd6edafc2baa4bc7dbd7a /qpkg.c | |
parent | libq/tree: greatly simplify tree_get_vdb_atoms (diff) | |
download | portage-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.c | 28 |
1 files changed, 9 insertions, 19 deletions
@@ -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); } } |