aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2011-02-02 01:09:00 +0800
committerMilan Crha <mcrha@redhat.com>2011-02-02 01:09:00 +0800
commita10247b540f298d0ae6360b5d31f7f47a733adf8 (patch)
tree1be8b726e04b120e370dffbe862fb74f97b2cc46 /mail
parenta9fb511ced4cfaffb7109e58a9db66e6279e309c (diff)
downloadgsoc2013-evolution-a10247b540f298d0ae6360b5d31f7f47a733adf8.tar.gz
gsoc2013-evolution-a10247b540f298d0ae6360b5d31f7f47a733adf8.tar.zst
gsoc2013-evolution-a10247b540f298d0ae6360b5d31f7f47a733adf8.zip
Bug #635144 - Using external editor duplicates signature
Diffstat (limited to 'mail')
-rw-r--r--mail/em-composer-utils.c23
-rw-r--r--mail/em-utils.c12
-rw-r--r--mail/em-utils.h2
3 files changed, 14 insertions, 23 deletions
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 1b5b380f76..3f0c4b155a 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -1415,14 +1415,13 @@ forward_non_attached (EShell *shell,
flags |= EM_FORMAT_QUOTE_CITE;
for (i = 0; i < messages->len; i++) {
- gssize len;
guint32 validity_found = 0;
message = messages->pdata[i];
subject = mail_tool_generate_forward_subject (message);
forward = quoting_text (QUOTING_FORWARD);
- text = em_utils_message_to_html (message, forward, flags, &len, NULL, NULL, &validity_found);
+ text = em_utils_message_to_html (message, forward, flags, NULL, NULL, &validity_found);
if (text) {
composer = create_new_composer (shell, subject, from_uri);
@@ -1431,7 +1430,7 @@ forward_non_attached (EShell *shell,
if (CAMEL_IS_MULTIPART (camel_medium_get_content ((CamelMedium *)message)))
e_msg_composer_add_message_attachments (composer, message, FALSE);
- e_msg_composer_set_body_text (composer, text, len);
+ e_msg_composer_set_body_text (composer, text, TRUE);
if (uids && uids->pdata[i])
e_msg_composer_set_source_headers (
@@ -2460,8 +2459,7 @@ composer_set_body (EMsgComposer *composer,
gchar *text, *credits, *original;
CamelMimePart *part;
GConfClient *client;
- gssize len = 0;
- gboolean start_bottom;
+ gboolean start_bottom, has_body_text = FALSE;
guint32 validity_found = 0;
const gchar *key;
@@ -2482,8 +2480,9 @@ composer_set_body (EMsgComposer *composer,
break;
case E_MAIL_REPLY_STYLE_OUTLOOK:
original = quoting_text (QUOTING_ORIGINAL);
- text = em_utils_message_to_html (message, original, EM_FORMAT_QUOTE_HEADERS, &len, source, start_bottom ? "<BR>" : NULL, &validity_found);
- e_msg_composer_set_body_text (composer, text, len);
+ text = em_utils_message_to_html (message, original, EM_FORMAT_QUOTE_HEADERS, source, start_bottom ? "<BR>" : NULL, &validity_found);
+ e_msg_composer_set_body_text (composer, text, TRUE);
+ has_body_text = text && *text;
g_free (text);
g_free (original);
emu_update_composers_security (composer, validity_found);
@@ -2493,15 +2492,16 @@ composer_set_body (EMsgComposer *composer,
default:
/* do what any sane user would want when replying... */
credits = attribution_format (message);
- text = em_utils_message_to_html (message, credits, EM_FORMAT_QUOTE_CITE, &len, source, start_bottom ? "<BR>" : NULL, &validity_found);
+ text = em_utils_message_to_html (message, credits, EM_FORMAT_QUOTE_CITE, source, start_bottom ? "<BR>" : NULL, &validity_found);
g_free (credits);
- e_msg_composer_set_body_text (composer, text, len);
+ e_msg_composer_set_body_text (composer, text, TRUE);
+ has_body_text = text && *text;
g_free (text);
emu_update_composers_security (composer, validity_found);
break;
}
- if (len > 0 && start_bottom) {
+ if (has_body_text && start_bottom) {
GtkhtmlEditor *editor = GTKHTML_EDITOR (composer);
/* If we are placing signature on top, then move cursor to the end,
@@ -2531,11 +2531,10 @@ gchar *
em_utils_construct_composer_text (CamelMimeMessage *message, EMFormat *source)
{
gchar *text, *credits;
- gssize len = 0;
gboolean start_bottom = 0;
credits = attribution_format (message);
- text = em_utils_message_to_html (message, credits, EM_FORMAT_QUOTE_CITE, &len, source, start_bottom ? "<BR>" : NULL, NULL);
+ text = em_utils_message_to_html (message, credits, EM_FORMAT_QUOTE_CITE, source, start_bottom ? "<BR>" : NULL, NULL);
g_free (credits);
return text;
diff --git a/mail/em-utils.c b/mail/em-utils.c
index 0753a75947..ad75c4829f 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -1266,7 +1266,6 @@ em_utils_get_proxy_uri (const gchar *pUri)
* @message:
* @credits:
* @flags: EMFormatQuote flags
- * @len:
* @source:
* @append: Text to append, can be NULL.
* @validity_found: if not NULL, then here will be set what validities
@@ -1276,13 +1275,12 @@ em_utils_get_proxy_uri (const gchar *pUri)
* Convert a message to html, quoting if the @credits attribution
* string is given.
*
- * Return value: The html version.
+ * Return value: The html version as a NULL terminated string.
**/
gchar *
em_utils_message_to_html (CamelMimeMessage *message,
const gchar *credits,
guint32 flags,
- gssize *len,
EMFormat *source,
const gchar *append,
guint32 *validity_found)
@@ -1290,7 +1288,6 @@ em_utils_message_to_html (CamelMimeMessage *message,
EMFormatQuote *emfq;
CamelStream *mem;
GByteArray *buf;
- gchar *text;
buf = g_byte_array_new ();
mem = camel_stream_mem_new ();
@@ -1324,12 +1321,7 @@ em_utils_message_to_html (CamelMimeMessage *message,
camel_stream_write(mem, "", 1, NULL, NULL);
g_object_unref (mem);
- text = (gchar *)buf->data;
- if (len)
- *len = buf->len-1;
- g_byte_array_free (buf, FALSE);
-
- return text;
+ return (gchar *) g_byte_array_free (buf, FALSE);
}
/* ********************************************************************** */
diff --git a/mail/em-utils.h b/mail/em-utils.h
index 698ff3f0e6..2b45b37037 100644
--- a/mail/em-utils.h
+++ b/mail/em-utils.h
@@ -70,7 +70,7 @@ gboolean em_utils_folder_is_outbox (CamelFolder *folder, const gchar *uri);
gchar *em_utils_get_proxy_uri (const gchar *uri);
/* FIXME: should this have an override charset? */
-gchar *em_utils_message_to_html (CamelMimeMessage *msg, const gchar *credits, guint32 flags, gssize *len, struct _EMFormat *source, const gchar *append, guint32 *validity_found);
+gchar *em_utils_message_to_html (CamelMimeMessage *msg, const gchar *credits, guint32 flags, struct _EMFormat *source, const gchar *append, guint32 *validity_found);
void em_utils_expunge_folder (GtkWidget *parent, EMailSession *session, CamelFolder *folder);
void em_utils_empty_trash (GtkWidget *parent, EMailSession *session);