From 27bec4237fa34883854d8c83ce1484fcc0aef165 Mon Sep 17 00:00:00 2001 From: Vladimir Nadvornik Date: Mon, 30 Jul 2012 18:21:13 +0200 Subject: [PATCH] prevent crash in g_utf8_collate_key https://sourceforge.net/tracker/?func=detail&aid=3330014&group_id=222125&atid=1054680 --- src/filedata.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/filedata.c b/src/filedata.c index 18437578..c63128e1 100644 --- a/src/filedata.c +++ b/src/filedata.c @@ -247,19 +247,22 @@ gboolean file_data_check_changed_files(FileData *fd) static void file_data_set_collate_keys(FileData *fd) { gchar *caseless_name; + gchar *valid_name; - caseless_name = g_utf8_casefold(fd->name, -1); + valid_name = g_filename_display_name(fd->name); + caseless_name = g_utf8_casefold(valid_name, -1); g_free(fd->collate_key_name); g_free(fd->collate_key_name_nocase); #if 0 && GLIB_CHECK_VERSION(2, 8, 0) - fd->collate_key_name = g_utf8_collate_key_for_filename(fd->name, -1); + fd->collate_key_name = g_utf8_collate_key_for_filename(valid_name, -1); fd->collate_key_name_nocase = g_utf8_collate_key_for_filename(caseless_name, -1); #else - fd->collate_key_name = g_utf8_collate_key(fd->name, -1); + fd->collate_key_name = g_utf8_collate_key(valid_name, -1); fd->collate_key_name_nocase = g_utf8_collate_key(caseless_name, -1); #endif + g_free(valid_name); g_free(caseless_name); } -- 2.20.1