commit: 2d78938f5d4c3be536e7484c0f23be64b124db05
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 2 13:23:35 2020 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Jan 2 13:23:35 2020 +0000
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=2d78938f
qdepends: use tree_foreach_pkg query selection on forward queries
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
qdepends.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/qdepends.c b/qdepends.c
index 44821b6..6f580a9 100644
--- a/qdepends.c
+++ b/qdepends.c
@@ -375,14 +375,28 @@ int qdepends_main(int argc, char **argv)
array_for_each(overlays, n, overlay) {
t = tree_open(portroot, overlay);
if (t != NULL) {
- ret = tree_foreach_pkg_sorted(t,
- qdepends_results_cb, &state,
NULL);
+ if (!(state.qmode & QMODE_REVERSE) &&
array_cnt(atoms) > 0) {
+ array_for_each(atoms, i, atom) {
+ ret = tree_foreach_pkg_sorted(t,
+
qdepends_results_cb, &state, atom);
+ }
+ } else {
+ ret = tree_foreach_pkg_sorted(t,
+ qdepends_results_cb,
&state, NULL);
+ }
tree_close(t);
}
}
} else {
- ret = tree_foreach_pkg_fast(state.vdb,
- qdepends_results_cb, &state, NULL);
+ if (!(state.qmode & QMODE_REVERSE) && array_cnt(atoms) > 0) {
+ array_for_each(atoms, i, atom) {
+ ret = tree_foreach_pkg_fast(state.vdb,
+ qdepends_results_cb, &state,
atom);
+ }
+ } else {
+ ret = tree_foreach_pkg_fast(state.vdb,
+ qdepends_results_cb, &state, NULL);
+ }
}
if (state.vdb != NULL)