Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/gcompris/file_selector.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gcompris/file_selector.c')
-rw-r--r--src/gcompris/file_selector.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gcompris/file_selector.c b/src/gcompris/file_selector.c
index b3cf781..a13de8c 100644
--- a/src/gcompris/file_selector.c
+++ b/src/gcompris/file_selector.c
@@ -735,11 +735,14 @@ item_event_file_selector(GnomeCanvasItem *item, GdkEvent *event, gpointer data)
/* Extract the mime type */
mimeType = (GcomprisMimeType *)(g_hash_table_lookup(mimetypes_desc_hash, file_type));
- file_type = strdup(mimeType->mimetype);
- if(!g_str_has_suffix(result,mimeType->extension)) {
- gchar *old_result = result;
- result = g_strconcat(result, mimeType->extension, NULL);
- g_free(old_result);
+ g_free(file_type);
+ if(mimeType && mimeType->mimetype) {
+ file_type = strdup(mimeType->mimetype);
+ if(!g_str_has_suffix(result,mimeType->extension)) {
+ gchar *old_result = result;
+ result = g_strconcat(result, mimeType->extension, NULL);
+ g_free(old_result);
+ }
}
} else {
/* LOAD Mode, get the file_type from the extension in the mimetype */
@@ -833,7 +836,7 @@ void parseMime (xmlDocPtr doc, xmlNodePtr xmlnode) {
g_hash_table_insert(mimetypes_hash, gcomprisMime->mimetype, gcomprisMime);
g_hash_table_insert(mimetypes_ext_hash, gcomprisMime->extension, gcomprisMime);
- g_hash_table_insert(mimetypes_desc_hash, gcomprisMime->description, gcomprisMime);
+ g_hash_table_insert(mimetypes_desc_hash, gettext(gcomprisMime->description), gcomprisMime);
return;
}