Author: peter Date: 2007-01-23 15:23:34 +0000 (Tue, 23 Jan 2007) New Revision: 24711
Modified: squeeze/trunk/libsqueeze/archive.c squeeze/trunk/src/archive_store.c Log: none utf-8 filenames seem to work Modified: squeeze/trunk/libsqueeze/archive.c =================================================================== --- squeeze/trunk/libsqueeze/archive.c 2007-01-23 14:51:57 UTC (rev 24710) +++ squeeze/trunk/libsqueeze/archive.c 2007-01-23 15:23:34 UTC (rev 24711) @@ -661,8 +661,17 @@ } else { - entry->filename = g_locale_to_utf8(filename, -1, NULL, NULL, NULL); - lsq_archive_iter_set_mime(archive, entry, thunar_vfs_mime_database_get_info_for_name(lsq_mime_database, entry->filename)); + entry->filename = g_strdup(filename); + if(g_utf8_validate (filename, -1, NULL)) + { + lsq_archive_iter_set_mime(archive, entry, thunar_vfs_mime_database_get_info_for_name(lsq_mime_database, entry->filename)); + } + else + { + gchar *utf8_file = g_convert(filename, -1, "UTF-8", "WINDOWS-1252", NULL, NULL, NULL); + lsq_archive_iter_set_mime(archive, entry, thunar_vfs_mime_database_get_info_for_name(lsq_mime_database, utf8_file)); + g_free(utf8_file); + } } return entry; @@ -1136,7 +1145,9 @@ static const gchar * lsq_archive_iter_get_mimetype(const LSQArchive *archive, const LSQArchiveIter *iter) { - return thunar_vfs_mime_info_get_name(((LSQEntry *)iter)->mime_info); + if(((LSQEntry *)iter)->mime_info) + return thunar_vfs_mime_info_get_name(((LSQEntry *)iter)->mime_info); + return NULL; } /** @@ -1595,11 +1606,11 @@ lsq_archive_iter_get_icon_name(const LSQArchive *archive, const LSQArchiveIter *iter, GValue *value, GtkIconTheme *icon_theme) { g_value_init(value, G_TYPE_STRING); + if(!iter->mime_info) + return; const gchar *icon_name = thunar_vfs_mime_info_lookup_icon_name(iter->mime_info, icon_theme); - if(gtk_icon_theme_has_icon(icon_theme, icon_name)) + if(icon_name && gtk_icon_theme_has_icon(icon_theme, icon_name)) g_value_set_string(value, icon_name); - else - g_value_set_string(value, NULL); } void Modified: squeeze/trunk/src/archive_store.c =================================================================== --- squeeze/trunk/src/archive_store.c 2007-01-23 14:51:57 UTC (rev 24710) +++ squeeze/trunk/src/archive_store.c 2007-01-23 15:23:34 UTC (rev 24711) @@ -508,11 +508,8 @@ { if(column < (gint)lsq_archive_n_property(archive)) lsq_archive_iter_get_prop_value(archive, entry, column, value); - else - { - g_value_init(value, G_TYPE_STRING); - g_value_set_string(value, ".."); - } + if(G_VALUE_HOLDS_STRING(value) && !g_utf8_validate(g_value_get_string(value), -1, NULL)) + g_value_take_string(value, g_convert(g_value_get_string(value), -1, "UTF-8", "WINDOWS-1252", NULL, NULL, NULL)); } } else _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits