From b364827a5b99e3b02862f36be4c03826e72aefba Mon Sep 17 00:00:00 2001 From: "Bernhard M. Wiedemann" Date: Wed, 15 Aug 2018 03:11:21 +0200 Subject: [PATCH] updateiconcache: Sort list of entries because filesystem readdir order is indeterministic. Without this patch, building openSUSE's balsa package had variations between builds in /usr/share/balsa/icon-theme.cache --- gtk/updateiconcache.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gtk/updateiconcache.c b/gtk/updateiconcache.c index cc681c16be..507c790b41 100644 --- a/gtk/updateiconcache.c +++ b/gtk/updateiconcache.c @@ -595,6 +595,7 @@ scan_directory (const gchar *base_path, { GHashTable *dir_hash; GDir *dir; + GList *list = NULL, *iterator = NULL; const gchar *name; gchar *dir_path; gboolean dir_added = FALSE; @@ -612,6 +613,13 @@ scan_directory (const gchar *base_path, while ((name = g_dir_read_name (dir))) { + list = g_list_prepend (list, g_strdup (name)); + } + list = g_list_sort (list, (GCompareFunc) strcmp); + for (iterator = list; iterator; iterator = iterator->next) + { + name = iterator->data; + gchar *path; gboolean retval; int flags = 0; @@ -690,6 +698,7 @@ scan_directory (const gchar *base_path, g_free (path); } + g_list_free_full (list, g_free); g_dir_close (dir); /* Move dir into the big file hash */