From: Colin Clark Date: Sat, 5 Sep 2020 12:58:49 +0000 (+0100) Subject: Plugins sort order X-Git-Tag: v1.6~22 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=432e5651675b77af9ae4c066f08c666225bf70b3 Plugins sort order Use caseless and natural sort order when displaying the plugins menu. --- diff --git a/src/editors.c b/src/editors.c index 192a0df6..2d3fc352 100644 --- a/src/editors.c +++ b/src/editors.c @@ -501,12 +501,27 @@ static gint editor_sort(gconstpointer a, gconstpointer b) { const EditorDescription *ea = a; const EditorDescription *eb = b; + gchar *caseless_name_ea; + gchar *caseless_name_eb; + gchar *collate_key_ea; + gchar *collate_key_eb; gint ret; ret = strcmp(ea->menu_path, eb->menu_path); if (ret != 0) return ret; - return g_utf8_collate(ea->name, eb->name); + caseless_name_ea = g_utf8_casefold(ea->name, -1); + caseless_name_eb = g_utf8_casefold(eb->name, -1); + collate_key_ea = g_utf8_collate_key_for_filename(caseless_name_ea, -1); + collate_key_eb = g_utf8_collate_key_for_filename(caseless_name_eb, -1); + ret = g_strcmp0(collate_key_ea, collate_key_eb); + + g_free(collate_key_ea); + g_free(collate_key_eb); + g_free(caseless_name_ea); + g_free(caseless_name_eb); + + return ret; } GList *editor_list_get(void)