From 4ec70528ea81baa081b4ce41e25624958b14fc4b Mon Sep 17 00:00:00 2001 From: Simon Zheng Date: Mon, 6 Mar 2006 10:45:57 +0000 Subject: Fixes bug #332140 2006-03-06 Simon Zheng Fixes bug #332140 * gui/dialogs/comp-editor.c: (get_attachment_list): * gui/e-cal-popup.c: (temp_save_part): Transfer filenames from utf-8 to glib encoding before really saving files. svn path=/trunk/; revision=31663 --- calendar/ChangeLog | 8 ++++++++ calendar/gui/dialogs/comp-editor.c | 6 ++++-- calendar/gui/e-cal-popup.c | 18 +++++++++++------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index d35d230142..bec1704aee 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,11 @@ +2006-03-06 Simon Zheng + + Fixes bug #332140 + * gui/dialogs/comp-editor.c: (get_attachment_list): + * gui/e-cal-popup.c: (temp_save_part): + Transfer filenames from utf-8 to glib encoding before really + saving files. + 2006-03-06 Simon Zheng Fixes #311482 diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index cc19b006f8..f6fa0e9730 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -634,7 +634,7 @@ get_attachment_list (CompEditor *editor) CamelDataWrapper *wrapper; CamelStream *stream; char *attach_file_url; - char *safe_fname; + char *safe_fname, *utf8_safe_fname; char *filename; wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (p->data)); @@ -642,7 +642,9 @@ get_attachment_list (CompEditor *editor) /* Extract the content from the stream and write it down * as a mime part file into the directory denoting the * calendar source */ - safe_fname = camel_file_util_safe_filename(camel_mime_part_get_filename ((CamelMimePart *)p->data)); + utf8_safe_fname = camel_file_util_safe_filename (camel_mime_part_get_filename ((CamelMimePart *) p->data)); + safe_fname = g_filename_from_utf8 ((const char *) utf8_safe_fname, -1, NULL, NULL, NULL); + g_free (utf8_safe_fname); filename = g_strdup_printf ("%s-%s", comp_uid, safe_fname); diff --git a/calendar/gui/e-cal-popup.c b/calendar/gui/e-cal-popup.c index c4cc57ee9c..7e1d1ca040 100644 --- a/calendar/gui/e-cal-popup.c +++ b/calendar/gui/e-cal-popup.c @@ -91,7 +91,7 @@ static char * temp_save_part(CamelMimePart *part, char *path, gboolean file) { const char *filename; - char *tmpdir, *mfilename = NULL; + char *tmpdir, *utf8_mfilename = NULL, *mfilename = NULL; CamelStream *stream; CamelDataWrapper *wrapper; @@ -106,9 +106,11 @@ temp_save_part(CamelMimePart *part, char *path, gboolean file) /* This is the default filename used for temporary file creation */ filename = _("Unknown"); } else { - mfilename = g_strdup(filename); - e_filename_make_safe(mfilename); - filename = mfilename; + utf8_mfilename = g_strdup (filename); + e_filename_make_safe (utf8_mfilename); + mfilename = g_filename_from_utf8 ((const char *) utf8_mfilename, -1, NULL, NULL, NULL); + g_free (utf8_mfilename); + filename = (const char *) mfilename; } path = g_build_filename(tmpdir, filename, NULL); @@ -121,9 +123,11 @@ temp_save_part(CamelMimePart *part, char *path, gboolean file) /* This is the default filename used for temporary file creation */ filename = _("Unknown"); } else { - mfilename = g_strdup(filename); - e_filename_make_safe(mfilename); - filename = mfilename; + utf8_mfilename = g_strdup (filename); + e_filename_make_safe (utf8_mfilename); + mfilename = g_filename_from_utf8 ((const char *)utf8_mfilename, -1, NULL, NULL, NULL); + g_free (utf8_mfilename); + filename = (const char *) mfilename; } path = g_build_filename(tmpdir, filename, NULL); -- cgit v1.2.3