]> git.ipfire.org Git - pakfire.git/commitdiff
libpakfire: filelist: Implement sorting filelists
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 24 Jan 2021 16:41:23 +0000 (16:41 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 24 Jan 2021 16:41:23 +0000 (16:41 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
configure.ac
src/libpakfire/filelist.c

index 6a0b97946e6120be55b42eb325e0f8d0a4d4f521..1969fdd67dee38787594a13d18268469d643aa2a 100644 (file)
@@ -144,6 +144,7 @@ AC_CHECK_FUNCS([ \
        secure_getenv \
        strcmp \
        strdup \
+       qsort \
        unshare
 ])
 
index 35720800a41efa111ce35b609a2802e8633b417d..aed051174675b0082564366fc3e46c498b72db6f 100644 (file)
@@ -120,8 +120,19 @@ PAKFIRE_EXPORT int pakfire_filelist_append(PakfireFilelist list, PakfireFile fil
        return 0;
 }
 
+static int __sort(const void* ptr1, const void* ptr2) {
+       PakfireFile file1 = (PakfireFile)ptr1;
+       PakfireFile file2 = (PakfireFile)ptr2;
+
+       return pakfire_file_cmp(file1, file2);
+}
+
 PAKFIRE_EXPORT void pakfire_filelist_sort(PakfireFilelist list) {
-       // XXX TODO
+       // Nothing to do on empty list
+       if (pakfire_filelist_is_empty(list))
+               return;
+
+       qsort(list->elements, list->size, sizeof(*list->elements), __sort);
 }
 
 static int pakfire_filelist_parse_line(PakfireFile* file, char* line, unsigned int format) {