From: Vladimir Nadvornik Date: Mon, 30 Jul 2012 16:21:13 +0000 (+0200) Subject: prevent crash in g_utf8_collate_key X-Git-Tag: 1.1~12 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=27bec4237fa34883854d8c83ce1484fcc0aef165 prevent crash in g_utf8_collate_key https://sourceforge.net/tracker/?func=detail&aid=3330014&group_id=222125&atid=1054680 --- 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); }