]> git.ipfire.org Git - pakfire.git/commitdiff
packages: dump: Process dependencies in a big loop
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 11 Feb 2021 15:33:07 +0000 (15:33 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 11 Feb 2021 15:33:07 +0000 (15:33 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/package.c

index 470c46f9ea34c3def4aced5af4b049eca7e83c56..6dc7336b0ba1ff54f18efa797438092fec8e6340 100644 (file)
@@ -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);
+                       }
                }
        }