[gcab] trivial: Sort the globbed files to avoid depending on filesystem order



commit 11f9872fd19527074d50c82f6d9ecda0ee683cd2
Author: Richard Hughes <richard hughsie com>
Date:   Wed Dec 13 16:29:11 2017 +0000

    trivial: Sort the globbed files to avoid depending on filesystem order

 libgcab/gcab-folder.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/libgcab/gcab-folder.c b/libgcab/gcab-folder.c
index fc9b389..174a5c6 100644
--- a/libgcab/gcab-folder.c
+++ b/libgcab/gcab-folder.c
@@ -210,6 +210,14 @@ add_file (GCabFolder *self, GCabFile *file, GError **error)
 
 #define FILE_ATTRS "standard::*,time::modified"
 
+static gint
+_sort_cfiles (gconstpointer a, gconstpointer b)
+{
+    GCabFile *file_a = GCAB_FILE (a);
+    GCabFile *file_b = GCAB_FILE (b);
+    return g_strcmp0 (gcab_file_get_name (file_a), gcab_file_get_name (file_b));
+}
+
 static gboolean
 add_file_info (GCabFolder *self, GCabFile *file, GFileInfo *info,
                const gchar *name, gboolean recurse, GError **error)
@@ -235,6 +243,10 @@ add_file_info (GCabFolder *self, GCabFile *file, GFileInfo *info,
                 g_object_unref (info);
                 return FALSE;
             }
+
+            /* sort the files to avoid depending on filesystem order */
+            self->files = g_slist_sort (self->files, _sort_cfiles);
+
             g_object_unref (info);
         }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]