talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 76d08bcbc5cce95e3e546cc718b71e4e972035e0
parent dc2158a308abd87c9ca243e9097d2e202e8514cb
Author: Colin Leroy <colin@colino.net>
Date:   Thu,  5 Dec 2013 12:05:24 +0100

Better fix for bug #3009; conv_filename_to_utf8() converts strings
in local filename encoding to UTF-8 even if local filename encoding
is UTF-8, leading to double UTF-8 encoding.

Diffstat:
Msrc/folder.c | 13++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/folder.c b/src/folder.c @@ -334,9 +334,9 @@ XMLTag *folder_get_xml(Folder *folder) FolderItem *folder_item_new(Folder *folder, const gchar *name, const gchar *path) { FolderItem *item = NULL; - + cm_return_val_if_fail(folder != NULL, NULL); - + if (folder->klass->item_new) { item = folder->klass->item_new(folder); } else { @@ -346,7 +346,14 @@ FolderItem *folder_item_new(Folder *folder, const gchar *name, const gchar *path cm_return_val_if_fail(item != NULL, NULL); item->stype = F_NORMAL; - item->name = conv_filename_to_utf8(name); + + if(!g_utf8_validate(name, -1, NULL)) { + item->name = g_malloc(strlen(name)*2+1); + conv_localetodisp(item->name, strlen(name)*2+1, name); + } else { + item->name = g_strdup(name); + } + item->path = g_strdup(path); item->mtime = 0; item->new_msgs = 0;