From: Michael Tremer Date: Thu, 11 Feb 2021 15:33:07 +0000 (+0000) Subject: packages: dump: Process dependencies in a big loop X-Git-Tag: 0.9.28~1285^2~761 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f873877a5095ef5df17190106ed6b9e9f289fd6;p=pakfire.git packages: dump: Process dependencies in a big loop Signed-off-by: Michael Tremer --- diff --git a/src/libpakfire/package.c b/src/libpakfire/package.c index 470c46f9e..6dc7336b0 100644 --- a/src/libpakfire/package.c +++ b/src/libpakfire/package.c @@ -825,40 +825,28 @@ PAKFIRE_EXPORT char* pakfire_package_dump(PakfirePackage pkg, int flags) { const char* buildhost = pakfire_package_get_buildhost(pkg); pakfire_package_dump_add_line(&string, _("Build host"), buildhost); - PakfireRelationList provides = pakfire_package_get_provides(pkg); - if (provides) { - pakfire_package_dump_add_line_relations(&string, _("Provides"), provides); - pakfire_relationlist_unref(provides); - } - - PakfireRelationList requires = pakfire_package_get_requires(pkg); - if (requires) { - pakfire_package_dump_add_line_relations(&string, _("Requires"), requires); - pakfire_relationlist_unref(requires); - } - - PakfireRelationList conflicts = pakfire_package_get_conflicts(pkg); - if (conflicts) { - pakfire_package_dump_add_line_relations(&string, _("Conflicts"), conflicts); - pakfire_relationlist_unref(conflicts); - } - - PakfireRelationList obsoletes = pakfire_package_get_obsoletes(pkg); - if (obsoletes) { - pakfire_package_dump_add_line_relations(&string, _("Obsoletes"), obsoletes); - pakfire_relationlist_unref(obsoletes); - } - - PakfireRelationList recommends = pakfire_package_get_recommends(pkg); - if (recommends) { - pakfire_package_dump_add_line_relations(&string, _("Recommends"), recommends); - pakfire_relationlist_unref(recommends); - } - - PakfireRelationList suggests = pakfire_package_get_suggests(pkg); - if (suggests) { - pakfire_package_dump_add_line_relations(&string, _("Suggests"), suggests); - pakfire_relationlist_unref(suggests); + // Dependencies + + const struct relation { + const char* name; + PakfireRelationList (*get)(PakfirePackage pkg); + } relations[] = { + { _("Provides"), pakfire_package_get_provides, }, + { _("Pre-Requires"), pakfire_package_get_prerequires, }, + { _("Requires"), pakfire_package_get_requires, }, + { _("Conflicts"), pakfire_package_get_conflicts, }, + { _("Obsoletes"), pakfire_package_get_obsoletes, }, + { _("Recommends"), pakfire_package_get_recommends, }, + { _("Suggests"), pakfire_package_get_suggests, }, + { NULL, NULL}, + }; + + for (const struct relation* relation = relations; relation->name; relation++) { + PakfireRelationList list = relation->get(pkg); + if (list) { + pakfire_package_dump_add_line_relations(&string, relation->name, list); + pakfire_relationlist_unref(list); + } } }