commit:     7bbb7d1237d4fc6380c29059c7b0531d2adf0ee4
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 29 15:03:18 2021 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Apr 29 15:03:18 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=7bbb7d12

libq/tree: return all pkgs found in Packages file, whether or not existant

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 libq/tree.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/libq/tree.c b/libq/tree.c
index e692ee9..f66059b 100644
--- a/libq/tree.c
+++ b/libq/tree.c
@@ -1374,18 +1374,13 @@ tree_foreach_packages(tree_ctx *ctx, tree_pkg_cb 
callback, void *priv)
                                                cat->pkg_ctxs = NULL;
                                                tree_close_cat(cat);
                                        }
-                                       pkg.cat_ctx = cat = tree_open_cat(ctx, 
atom->CATEGORY);
+                                       cat = tree_open_cat(ctx, 
atom->CATEGORY);
                                        if (cat == NULL) {
-                                               /* probably dir doesn't exist 
or something, skip
-                                                * this one */
-                                               memset(&meta, 0, sizeof(meta));
-                                               if (len > 0) {  /* hop over \n 
*/
-                                                       p++;
-                                                       len--;
-                                               }
-                                               ctx->pkgs = c;
-                                               continue;
+                                               /* probably dir doesn't exist 
or something,
+                                                * generate a dummy cat */
+                                               cat = tree_open_cat(ctx, ".");
                                        }
+                                       pkg.cat_ctx = cat;
                                        cat->pkg_ctxs = (tree_pkg_ctx **)atom;  
/* for name */
                                }
                                pkgnamelen = snprintf(pkgname, sizeof(pkgname),

Reply via email to