pakfire_package_dump_add_line(str, key, buffer);
}
+static int pakfire_sort_dependencies(const void* p1, const void* p2) {
+ const char* dep1 = *(const char**)p1;
+ const char* dep2 = *(const char**)p2;
+
+ return strcmp(dep1, dep2);
+}
+
PAKFIRE_EXPORT char* pakfire_package_dump(PakfirePackage pkg, int flags) {
char* string = "";
};
for (const struct relation* relation = relations; relation->name; relation++) {
- char** list = relation->get(pkg);
- if (list) {
- for (char** dep = list; *dep; dep++) {
+ char** deps = relation->get(pkg);
+ if (deps) {
+ size_t count = 0;
+
+ // Count elements in the list
+ for (char** dep = deps; *dep; dep++)
+ count++;
+
+ // Sort the list
+ qsort(deps, count, sizeof(*deps), pakfire_sort_dependencies);
+
+ // Write it to the console
+ for (char** dep = deps; *dep; dep++) {
pakfire_package_dump_add_line(&string, relation->name, *dep);
free(*dep);
}
- free(list);
+ free(deps);
}
}
}