PakfireRelation pakfire_relationlist_get(PakfireRelationList relationlist, int index);
+void pakfire_relationlist_sort(PakfireRelationList list);
+
#ifdef PAKFIRE_PRIVATE
int pakfire_relationlist_from_queue(PakfireRelationList* list, Pakfire pakfire, Queue q);
pakfire_relationlist_get;
pakfire_relationlist_ref;
pakfire_relationlist_size;
+ pakfire_relationlist_sort;
pakfire_relationlist_unref;
# request
}
static void pakfire_package_dump_add_line_relations(char** str, const char* key, PakfireRelationList deps) {
+ pakfire_relationlist_sort(deps);
+
size_t size = pakfire_relationlist_size(deps);
for (unsigned int i = 0; i < size; i++) {
PakfireRelation relation = pakfire_relationlist_get(deps, i);
#include <errno.h>
#include <stdlib.h>
+#include <string.h>
#include <solv/pooltypes.h>
#include <solv/queue.h>
Queue* pakfire_relationlist_get_queue(PakfireRelationList list) {
return &list->queue;
}
+
+static int __sort(const void* _rel1, const void* _rel2, void* _pool) {
+ const char* s1 = pool_dep2str((Pool*)_pool, *(Id*)_rel1);
+ const char* s2 = pool_dep2str((Pool*)_pool, *(Id*)_rel2);
+
+ return strcmp(s1, s2);
+}
+
+PAKFIRE_EXPORT void pakfire_relationlist_sort(PakfireRelationList list) {
+ Pool* pool = pakfire_get_solv_pool(list->pakfire);
+
+ qsort_r(list->queue.elements, list->queue.count, sizeof(*list->queue.elements),
+ __sort, pool);
+}