diff options
Diffstat (limited to 'composer')
-rw-r--r-- | composer/e-msg-composer.c | 75 |
1 files changed, 49 insertions, 26 deletions
diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index e4eb1ced71..e332cc73a9 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -336,7 +336,7 @@ best_charset (GByteArray *buf, const gchar *default_charset, CamelTransferEncoding *encoding) { - gchar *charset; + const gchar *charset; /* First try US-ASCII */ *encoding = best_encoding (buf, "US-ASCII"); @@ -352,10 +352,12 @@ best_charset (GByteArray *buf, charset = e_composer_get_default_charset (); *encoding = best_encoding (buf, charset); if (*encoding != -1) - return charset; + return g_strdup (charset); /* Try to find something that will work */ - if (!(charset = (gchar *) camel_charset_best ((const gchar *) buf->data, buf->len))) { + charset = camel_charset_best ( + (const gchar *) buf->data, buf->len); + if (charset == NULL) { *encoding = CAMEL_TRANSFER_ENCODING_7BIT; return NULL; } @@ -1502,7 +1504,8 @@ add_signature_delim (EMsgComposer *composer) shell = e_msg_composer_get_shell (composer); shell_settings = e_shell_get_shell_settings (shell); - return !e_shell_settings_get_boolean (shell_settings, "composer-no-signature-delim"); + return !e_shell_settings_get_boolean ( + shell_settings, "composer-no-signature-delim"); } #define CONVERT_SPACES CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES @@ -1546,20 +1549,24 @@ get_signature_html (EMsgComposer *composer) } else { EAccount *account; EAccountIdentity *id; - gchar *organization; - gchar *address; - gchar *name; + gchar *organization = NULL; + gchar *address = NULL; + gchar *name = NULL; account = e_composer_header_table_get_account (table); if (!account) return NULL; id = account->id; - address = id->address ? camel_text_to_html (id->address, CONVERT_SPACES, 0) : NULL; - name = id->name ? camel_text_to_html (id->name, CONVERT_SPACES, 0) : NULL; - organization = - id->organization ? camel_text_to_html ( - id->organization, CONVERT_SPACES, 0) : NULL; + if (id->address != NULL) + address = camel_text_to_html ( + id->address, CONVERT_SPACES, 0); + if (id->name != NULL) + name = camel_text_to_html ( + id->name, CONVERT_SPACES, 0); + if (id->organization != NULL) + organization = camel_text_to_html ( + id->organization, CONVERT_SPACES, 0); text = g_strdup_printf ("%s%s%s%s%s%s%s%s%s", add_delim ? "-- \n<BR>" : "", @@ -3201,7 +3208,10 @@ e_msg_composer_new_with_message (EShell *shell, if (!camel_internet_address_get (iaddr, i, &name, &addr)) continue; - g_hash_table_insert (auto_cc, g_strdup (addr), GINT_TO_POINTER (TRUE)); + g_hash_table_insert ( + auto_cc, + g_strdup (addr), + GINT_TO_POINTER (TRUE)); } } g_object_unref (iaddr); @@ -3216,7 +3226,10 @@ e_msg_composer_new_with_message (EShell *shell, if (!camel_internet_address_get (iaddr, i, &name, &addr)) continue; - g_hash_table_insert (auto_bcc, g_strdup (addr), GINT_TO_POINTER (TRUE)); + g_hash_table_insert ( + auto_bcc, + g_strdup (addr), + GINT_TO_POINTER (TRUE)); } } g_object_unref (iaddr); @@ -3301,8 +3314,9 @@ e_msg_composer_new_with_message (EShell *shell, e_destination_freev (Bccv); /* Restore the format editing preference */ - format = camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Format"); - if (format) { + format = camel_medium_get_header ( + CAMEL_MEDIUM (message), "X-Evolution-Format"); + if (format != NULL) { gchar **flags; while (*format && camel_mime_is_lwsp (*format)) @@ -3369,10 +3383,12 @@ e_msg_composer_new_with_message (EShell *shell, /* Restore the attachments and body text */ content = camel_medium_get_content (CAMEL_MEDIUM (message)); if (CAMEL_IS_MULTIPART (content)) { + CamelMimePart *mime_part; CamelMultipart *multipart; multipart = CAMEL_MULTIPART (content); - content_type = camel_mime_part_get_content_type (CAMEL_MIME_PART (message)); + mime_part = CAMEL_MIME_PART (message); + content_type = camel_mime_part_get_content_type (mime_part); if (CAMEL_IS_MULTIPART_SIGNED (content)) { /* Handle the signed content and configure the @@ -3384,10 +3400,10 @@ e_msg_composer_new_with_message (EShell *shell, /* Decrypt the encrypted content and configure the * composer to encrypt outgoing messages. */ handle_multipart_encrypted ( - composer, CAMEL_MIME_PART (message), - cancellable, 0); + composer, mime_part, cancellable, 0); - } else if (camel_content_type_is (content_type, "multipart", "alternative")) { + } else if (camel_content_type_is ( + content_type, "multipart", "alternative")) { /* This contains the text/plain and text/html * versions of the message body. */ handle_multipart_alternative ( @@ -3399,18 +3415,25 @@ e_msg_composer_new_with_message (EShell *shell, composer, multipart, cancellable, 0); } } else { + CamelMimePart *mime_part; gchar *html; gssize length; - content_type = camel_mime_part_get_content_type (CAMEL_MIME_PART (message)); + mime_part = CAMEL_MIME_PART (message); + content_type = camel_mime_part_get_content_type (mime_part); - if (content_type && ( - camel_content_type_is (content_type, "application", "x-pkcs7-mime") - || camel_content_type_is (content_type, "application", "pkcs7-mime"))) - gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (ACTION (SMIME_ENCRYPT)), TRUE); + if (content_type != NULL && ( + camel_content_type_is ( + content_type, "application", "x-pkcs7-mime") || + camel_content_type_is ( + content_type, "application", "pkcs7-mime"))) + gtk_toggle_action_set_active ( + GTK_TOGGLE_ACTION ( + ACTION (SMIME_ENCRYPT)), TRUE); html = emcu_part_to_html ( - CAMEL_MIME_PART (message), &length, NULL, cancellable); + CAMEL_MIME_PART (message), + &length, NULL, cancellable); e_msg_composer_set_pending_body (composer, html, length); } |