Bug #598877 - Crash while sending mail, in report_status function

This commit is contained in:
Milan Crha
2009-11-05 21:01:18 +01:00
parent 4fd8fbc29a
commit f2e75c5d13
2 changed files with 34 additions and 4 deletions

View File

@ -429,6 +429,28 @@ mail_fetch_mail (const gchar *source, gint keep, const gchar *type, CamelOperati
mail_msg_unordered_push (m);
}
static gchar *
escape_percent_sign (const gchar *str)
{
GString *res;
if (!str)
return NULL;
res = g_string_sized_new (strlen (str));
while (*str) {
if (*str == '%') {
g_string_append (res, "%%");
} else {
g_string_append_c (res, *str);
}
str++;
}
return g_string_free (res, FALSE);
}
/* ********************************************************************** */
/* sending stuff */
/* ** SEND MAIL *********************************************************** */
@ -502,8 +524,14 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u
sent_folder_uri = g_strstrip(g_strdup(tmp));
}
/* let the dialog know the right account it is using; percentage is ignored */
report_status (m, CAMEL_FILTER_STATUS_ACTION, 0, transport_url ? transport_url : destination);
if (transport_url || destination) {
gchar *escaped = escape_percent_sign (transport_url ? transport_url : destination);
/* let the dialog know the right account it is using; percentage is ignored */
report_status (m, CAMEL_FILTER_STATUS_ACTION, 0, escaped);
g_free (escaped);
}
/* Check for email sending */
from = (CamelAddress *) camel_internet_address_new ();

View File

@ -359,7 +359,7 @@ format_url (const gchar *internal_url, const gchar *account_name)
else
pretty_url = g_strdup_printf("<b>%s (%s)</b>", account_name, url->protocol);
}
else {
else if (url) {
if (url->host && *url->host)
pretty_url = g_strdup_printf("<b>%s</b>: %s", url->protocol, url->host);
else if (url->path)
@ -367,7 +367,9 @@ format_url (const gchar *internal_url, const gchar *account_name)
else
pretty_url = g_strdup_printf("<b>%s</b>", url->protocol);
}
camel_url_free(url);
if (url)
camel_url_free(url);
return pretty_url;
}