diff options
author | Richard Hughes <richard@hughsie.com> | 2017-12-13 16:29:11 +0000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2017-12-14 12:16:08 +0000 |
commit | 11f9872fd19527074d50c82f6d9ecda0ee683cd2 (patch) | |
tree | 0729cc309d12105ff203ee8c8c3b36b3a559d468 | |
parent | b5a370a05da6d5ef2d7969c7ce0bd850b46388b4 (diff) | |
download | gcab-11f9872fd19527074d50c82f6d9ecda0ee683cd2.tar.gz |
trivial: Sort the globbed files to avoid depending on filesystem order
-rw-r--r-- | 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); } |