Fix for bug #63377 and prevention of similar cases.
2004-09-01 Jeffrey Stedfast <fejj@novell.com> Fix for bug #63377 and prevention of similar cases. * em-format.c (emf_finalise): Free the default_charset. (emf_format_clone): Clone the default_charset - this prevents the particular crash described in bug #63377. * em-utils.c (em_utils_message_to_html): If source is NULL, set our own default charset (from the user's gconf key) on the formatter to make sure there's always a source charset for conversion to UTF-8. svn path=/trunk/; revision=27122
This commit is contained in:
committed by
Jeffrey Stedfast
parent
36d36f1611
commit
bb38060bed
@ -1,3 +1,16 @@
|
||||
2004-09-01 Jeffrey Stedfast <fejj@novell.com>
|
||||
|
||||
Fix for bug #63377 and prevention of similar cases.
|
||||
|
||||
* em-format.c (emf_finalise): Free the default_charset.
|
||||
(emf_format_clone): Clone the default_charset - this prevents the
|
||||
particular crash described in bug #63377.
|
||||
|
||||
* em-utils.c (em_utils_message_to_html): If source is NULL, set
|
||||
our own default charset (from the user's gconf key) on the
|
||||
formatter to make sure there's always a source charset for
|
||||
conversion to UTF-8.
|
||||
|
||||
2004-08-30 Jeffrey Stedfast <fejj@novell.com>
|
||||
|
||||
* em-folder-tree.c (emft_popup_delete_folder): Set the store and
|
||||
|
||||
@ -137,6 +137,7 @@ emf_finalise(GObject *o)
|
||||
em_format_clear_headers(emf);
|
||||
camel_cipher_validity_free(emf->valid);
|
||||
g_free(emf->charset);
|
||||
g_free (emf->default_charset);
|
||||
g_string_free(emf->part_id, TRUE);
|
||||
|
||||
/* FIXME: check pending jobs */
|
||||
@ -595,7 +596,9 @@ emf_format_clone(EMFormat *emf, CamelFolder *folder, const char *uid, CamelMimeM
|
||||
emf->mode = emfsource->mode;
|
||||
g_free(emf->charset);
|
||||
emf->charset = g_strdup(emfsource->charset);
|
||||
|
||||
g_free (emf->default_charset);
|
||||
emf->default_charset = g_strdup (emfsource->default_charset);
|
||||
|
||||
em_format_clear_headers(emf);
|
||||
for (h = (struct _EMFormatHeader *)emfsource->header_list.head; h->next; h = h->next)
|
||||
em_format_add_header(emf, h->name, h->flags);
|
||||
|
||||
@ -1458,6 +1458,18 @@ em_utils_message_to_html(CamelMimeMessage *message, const char *credits, guint32
|
||||
|
||||
emfq = em_format_quote_new(credits, (CamelStream *)mem, flags);
|
||||
em_format_set_session((EMFormat *)emfq, session);
|
||||
|
||||
if (!source) {
|
||||
GConfClient *gconf;
|
||||
char *charset;
|
||||
|
||||
gconf = gconf_client_get_default ();
|
||||
charset = gconf_client_get_string (gconf, "/apps/evolution/mail/display/charset", NULL);
|
||||
em_format_set_default_charset ((EMFormat *) emfq, charset);
|
||||
g_object_unref (gconf);
|
||||
g_free (charset);
|
||||
}
|
||||
|
||||
em_format_format_clone((EMFormat *)emfq, NULL, NULL, message, source);
|
||||
g_object_unref (emfq);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user