From 432e5651675b77af9ae4c066f08c666225bf70b3 Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Sat, 5 Sep 2020 13:58:49 +0100 Subject: [PATCH] Plugins sort order Use caseless and natural sort order when displaying the plugins menu. --- src/editors.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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) -- 2.20.1