diff options
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 14 | ||||
-rw-r--r-- | em-format/em-format.c | 7 | ||||
-rw-r--r-- | em-format/em-format.h | 2 | ||||
-rw-r--r-- | mail/em-composer-utils.c | 6 | ||||
-rw-r--r-- | mail/em-format-html-display.c | 18 | ||||
-rw-r--r-- | mail/em-utils.c | 8 | ||||
-rw-r--r-- | plugins/groupwise-features/install-shared.c | 14 | ||||
-rw-r--r-- | plugins/mail-to-task/mail-to-task.c | 6 |
8 files changed, 46 insertions, 29 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index 0b1701de6f..d6d13d5c01 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -2917,7 +2917,8 @@ comp_editor_get_mime_attach_list (CompEditor *editor) EAttachment *attachment; CamelDataWrapper *wrapper; CamelMimePart *mime_part; - CamelStreamMem *mstream; + CamelStream *mem_stream; + GByteArray *mem_bytes; guchar *buffer = NULL; const gchar *desc, *disp; gint column_id; @@ -2934,15 +2935,16 @@ comp_editor_get_mime_attach_list (CompEditor *editor) cal_mime_attach = g_malloc0 (sizeof (struct CalMimeAttach)); wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (mime_part)); - mstream = (CamelStreamMem *) camel_stream_mem_new (); + mem_bytes = g_byte_array_new (); + mem_stream = camel_stream_mem_new_with_byte_array (mem_bytes); - camel_data_wrapper_decode_to_stream (wrapper, (CamelStream *) mstream); - buffer = g_memdup (mstream->buffer->data, mstream->buffer->len); + camel_data_wrapper_decode_to_stream (wrapper, mem_stream); + buffer = g_memdup (mem_bytes->data, mem_bytes->len); camel_mime_part_set_content_id (mime_part, NULL); cal_mime_attach->encoded_data = (gchar *)buffer; - cal_mime_attach->length = mstream->buffer->len; + cal_mime_attach->length = mem_bytes->len; cal_mime_attach->filename = g_strdup (camel_mime_part_get_filename (mime_part)); desc = camel_mime_part_get_description (mime_part); if (!desc || *desc == '\0') @@ -2957,7 +2959,7 @@ comp_editor_get_mime_attach_list (CompEditor *editor) attach_list = g_slist_append (attach_list, cal_mime_attach); - camel_object_unref (mstream); + camel_object_unref (mem_stream); } diff --git a/em-format/em-format.c b/em-format/em-format.c index a2034b4b20..93eab4d61e 100644 --- a/em-format/em-format.c +++ b/em-format/em-format.c @@ -1229,6 +1229,7 @@ em_format_format_text(EMFormat *emf, CamelStream *stream, CamelDataWrapper *dw) const gchar *charset = NULL; CamelMimeFilterWindows *windows = NULL; CamelStream *mem_stream = NULL; + GByteArray *mem_bytes; gsize size; gsize max; GConfClient *gconf; @@ -1261,7 +1262,8 @@ em_format_format_text(EMFormat *emf, CamelStream *stream, CamelDataWrapper *dw) charset = emf->default_charset; } - mem_stream = (CamelStream *)camel_stream_mem_new (); + mem_bytes = g_byte_array_new (); + mem_stream = camel_stream_mem_new_with_byte_array (mem_bytes); filter_stream = camel_stream_filter_new_with_stream(mem_stream); if ((filter = camel_mime_filter_charset_new_convert(charset, "UTF-8"))) { @@ -1288,11 +1290,12 @@ em_format_format_text(EMFormat *emf, CamelStream *stream, CamelDataWrapper *dw) camel_stream_write_to_stream(mem_stream, (CamelStream *)stream); camel_stream_flush((CamelStream *)stream); } else { - ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_optional(emf, stream, (CamelMimePart *)dw, mem_stream); + ((EMFormatClass *)G_OBJECT_GET_CLASS(emf))->format_optional(emf, stream, (CamelMimePart *)dw, mem_bytes); } if (windows) camel_object_unref(windows); + camel_object_unref (mem_stream); } /** diff --git a/em-format/em-format.h b/em-format/em-format.h index 4d8beaa228..c5bf16026b 100644 --- a/em-format/em-format.h +++ b/em-format/em-format.h @@ -255,7 +255,7 @@ struct _EMFormatClass { gboolean (*busy)(EMFormat *); /* Shows optional way to open messages */ - void (*format_optional)(EMFormat *, CamelStream *, CamelMimePart *, CamelStream* ); + void (*format_optional)(EMFormat *, CamelStream *, CamelMimePart *, const GByteArray *mem_bytes); /* signals */ /* complete, alternative to polling busy, for asynchronous work */ diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c index 63d0811fc5..d44c0ca584 100644 --- a/mail/em-composer-utils.c +++ b/mail/em-composer-utils.c @@ -925,6 +925,7 @@ traverse_parts (GSList *clues, CamelMimeMessage *message, CamelDataWrapper *cont CamelMimePart *part = CAMEL_MIME_PART (content); CamelContentType *type; CamelStream *mem; + GByteArray *mem_bytes; gchar *str; content = camel_medium_get_content_object (CAMEL_MEDIUM (part)); @@ -940,10 +941,11 @@ traverse_parts (GSList *clues, CamelMimeMessage *message, CamelDataWrapper *cont if (!camel_content_type_is (type, "text", "*")) return; - mem = camel_stream_mem_new (); + mem_bytes = g_byte_array_new (); + mem = camel_stream_mem_new_with_byte_array (mem_bytes); camel_data_wrapper_decode_to_stream (content, mem); - str = g_strndup ((const gchar *)((CamelStreamMem *) mem)->buffer->data, ((CamelStreamMem *) mem)->buffer->len); + str = g_strndup ((const gchar *)mem_bytes->data, mem_bytes->len); camel_object_unref (mem); if (replace_variables (clues, message, &str)) { diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c index 14a74af12d..479e8e38d2 100644 --- a/mail/em-format-html-display.c +++ b/mail/em-format-html-display.c @@ -151,8 +151,8 @@ struct _attach_puri { GtkImage *image; GtkWidget *event_box; - /* Optional Text Mem Stream */ - CamelStreamMem *mstream; + /* Optional Text Data */ + GByteArray *mem_bytes; /* Signed / Encrypted */ camel_cipher_validity_sign_t sign; @@ -472,7 +472,7 @@ static void efhd_format_optional (EMFormat *emf, CamelStream *fstream, CamelMimePart *part, - CamelStream *mstream) + const GByteArray *mem_bytes) { gchar *classid, *html; struct _attach_puri *info; @@ -494,7 +494,9 @@ efhd_format_optional (EMFormat *emf, info->snoop_mime_type = "text/plain"; info->attachment = e_attachment_new (); e_attachment_set_mime_part (info->attachment, info->puri.part); - info->mstream = (CamelStreamMem *) mstream; + info->mem_bytes = g_byte_array_new (); + g_byte_array_append (info->mem_bytes, mem_bytes ? mem_bytes->data : (const guint8 *) "", mem_bytes ? mem_bytes->len : 1); + if (emf->valid) { info->sign = emf->valid->sign.status; info->encrypt = emf->valid->encrypt.status; @@ -1038,9 +1040,11 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE); gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (view)); - gtk_text_buffer_set_text (buffer, (gchar *)info->mstream->buffer->data, info->mstream->buffer->len); - camel_object_unref(info->mstream); - info->mstream = NULL; + if (info->mem_bytes) { + gtk_text_buffer_set_text (buffer, (gchar *)info->mem_bytes->data, info->mem_bytes->len); + g_byte_array_free (info->mem_bytes, TRUE); + } + info->mem_bytes = NULL; gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroll), GTK_SHADOW_IN); diff --git a/mail/em-utils.c b/mail/em-utils.c index 692e46171d..e7db6d9a39 100644 --- a/mail/em-utils.c +++ b/mail/em-utils.c @@ -637,12 +637,14 @@ void em_utils_selection_set_mailbox(GtkSelectionData *data, CamelFolder *folder, GPtrArray *uids) { CamelStream *stream; + GByteArray *mem_bytes; - stream = camel_stream_mem_new(); + mem_bytes = g_byte_array_new (); + stream = camel_stream_mem_new_with_byte_array (mem_bytes); if (em_utils_write_messages_to_stream(folder, uids, stream) == 0) gtk_selection_data_set(data, data->target, 8, - ((CamelStreamMem *)stream)->buffer->data, - ((CamelStreamMem *)stream)->buffer->len); + mem_bytes->data, + mem_bytes->len); camel_object_unref(stream); } diff --git a/plugins/groupwise-features/install-shared.c b/plugins/groupwise-features/install-shared.c index b570d6486d..e01221f257 100644 --- a/plugins/groupwise-features/install-shared.c +++ b/plugins/groupwise-features/install-shared.c @@ -194,7 +194,8 @@ org_gnome_popup_wizard (EPlugin *ep, EMEventTargetMessage *target) const gchar *name; const gchar *email; CamelMimeMessage *msg = (CamelMimeMessage *) target->message; - CamelStreamMem *content; + CamelStream *mem_content; + GByteArray *mem_bytes; CamelDataWrapper *dw; gchar *start_message; @@ -213,9 +214,10 @@ org_gnome_popup_wizard (EPlugin *ep, EMEventTargetMessage *target) return; } - content = (CamelStreamMem *)camel_stream_mem_new(); - camel_data_wrapper_write_to_stream(dw, (CamelStream *)content); - camel_stream_write((CamelStream *)content, "", 1); + mem_bytes = g_byte_array_new (); + mem_content = camel_stream_mem_new_with_byte_array (mem_bytes); + camel_data_wrapper_write_to_stream(dw, mem_content); + camel_stream_write (mem_content, "", 1); from_addr = camel_mime_message_get_from ((CamelMimeMessage *)target->message); if (from_addr && camel_internet_address_get(from_addr, 0, &name, &email)) { @@ -226,7 +228,7 @@ org_gnome_popup_wizard (EPlugin *ep, EMEventTargetMessage *target) "Message from '%s'\n\n\n" "%s\n\n\n" "Click 'Apply' to install the shared folder\n\n"), - name, name, content->buffer->data); + name, name, mem_bytes->data); page = gtk_label_new (start_message); gtk_label_set_line_wrap (GTK_LABEL (page), TRUE); @@ -252,7 +254,7 @@ org_gnome_popup_wizard (EPlugin *ep, EMEventTargetMessage *target) } else g_warning ("Could not get the sender name"); - camel_object_unref(content); + camel_object_unref (mem_content); } } diff --git a/plugins/mail-to-task/mail-to-task.c b/plugins/mail-to-task/mail-to-task.c index 17bc6a995b..d7ef652ca6 100644 --- a/plugins/mail-to-task/mail-to-task.c +++ b/plugins/mail-to-task/mail-to-task.c @@ -182,6 +182,7 @@ set_description (ECalComponent *comp, CamelMimeMessage *message) CamelStream *mem; CamelContentType *type; CamelMimePart *mime_part = CAMEL_MIME_PART (message); + GByteArray *mem_bytes; ECalComponentText text; GSList sl; gchar *str, *convert_str = NULL; @@ -208,10 +209,11 @@ set_description (ECalComponent *comp, CamelMimeMessage *message) if (!camel_content_type_is (type, "text", "plain")) return; - mem = camel_stream_mem_new (); + mem_bytes = g_byte_array_new (); + mem = camel_stream_mem_new_with_byte_array (mem_bytes); camel_data_wrapper_decode_to_stream (content, mem); - str = g_strndup ((const gchar *)((CamelStreamMem *) mem)->buffer->data, ((CamelStreamMem *) mem)->buffer->len); + str = g_strndup ((const gchar *) mem_bytes->data, mem_bytes->len); camel_object_unref (mem); /* convert to UTF-8 string */ |