aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog11
-rw-r--r--mail/mail-accounts.c5
-rw-r--r--mail/mail-config.c2
-rw-r--r--mail/mail-config.h9
-rw-r--r--mail/mail-ops.c49
5 files changed, 42 insertions, 34 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index d907c82976..3b2ac73b54 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,11 @@
+2001-10-04 Jeffrey Stedfast <fejj@ximian.com>
+
+ * mail-accounts.c (images_radio_toggled): Ignore the signal if the
+ radio button is not "on". This fixes bug #10532 because the on/off
+ signals don't always come in the off->on order.
+
+ * mail-ops.c (mail_send_message): Reduced some redundancy.
+
2001-10-04 Dan Winship <danw@ximian.com>
* mail-format.c (write_address): Fix so that an email address with
@@ -19,7 +27,8 @@
2001-10-04 Jeffrey Stedfast <fejj@ximian.com>
- * mail-account-gui.c (mail_account_gui_save): Added some more NULL checks.
+ * mail-account-gui.c (mail_account_gui_save): Added some more NULL
+ checks.
2001-10-04 <NotZed@Ximian.com>
diff --git a/mail/mail-accounts.c b/mail/mail-accounts.c
index 0bc9191743..bd125de1fa 100644
--- a/mail/mail-accounts.c
+++ b/mail/mail-accounts.c
@@ -656,7 +656,10 @@ static void
images_radio_toggled (GtkWidget *radio, gpointer data)
{
MailAccountsDialog *dialog = data;
-
+
+ if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio)))
+ return;
+
if (radio == (GtkWidget *)dialog->images_always)
mail_config_set_http_mode (MAIL_CONFIG_HTTP_ALWAYS);
else if (radio == (GtkWidget *)dialog->images_sometimes)
diff --git a/mail/mail-config.c b/mail/mail-config.c
index 17a3a25550..aa94a2c8e3 100644
--- a/mail/mail-config.c
+++ b/mail/mail-config.c
@@ -560,7 +560,7 @@ config_read (void)
/* HTTP images */
config->http_mode = bonobo_config_get_long_with_default (config->db,
- "/Mail/Display/http_images", MAIL_CONFIG_HTTP_SOMETIMES, NULL);
+ "/Mail/Display/http_images", MAIL_CONFIG_HTTP_NEVER, NULL);
/* Forwarding */
config->default_forward_style = bonobo_config_get_long_with_default (
diff --git a/mail/mail-config.h b/mail/mail-config.h
index 1264a8cbc3..ad79825865 100644
--- a/mail/mail-config.h
+++ b/mail/mail-config.h
@@ -69,17 +69,20 @@ typedef struct {
} MailConfigAccount;
typedef enum {
- MAIL_CONFIG_HTTP_NEVER, MAIL_CONFIG_HTTP_SOMETIMES,
+ MAIL_CONFIG_HTTP_NEVER,
+ MAIL_CONFIG_HTTP_SOMETIMES,
MAIL_CONFIG_HTTP_ALWAYS
} MailConfigHTTPMode;
typedef enum {
- MAIL_CONFIG_FORWARD_ATTACHED, MAIL_CONFIG_FORWARD_INLINE,
+ MAIL_CONFIG_FORWARD_ATTACHED,
+ MAIL_CONFIG_FORWARD_INLINE,
MAIL_CONFIG_FORWARD_QUOTED
} MailConfigForwardStyle;
typedef enum {
- MAIL_CONFIG_DISPLAY_NORMAL, MAIL_CONFIG_DISPLAY_FULL_HEADERS,
+ MAIL_CONFIG_DISPLAY_NORMAL,
+ MAIL_CONFIG_DISPLAY_FULL_HEADERS,
MAIL_CONFIG_DISPLAY_SOURCE,
MAIL_CONFIG_DISPLAY_MAX
} MailConfigDisplayStyle;
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 371a12f626..009581b6d9 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -403,10 +403,10 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte
{
CamelMessageInfo *info;
CamelTransport *xport = NULL;
+ char *transport_url = NULL;
+ char *sent_folder_uri = NULL;
CamelFolder *folder;
- const char *version, *header;
- gchar *acct_header;
- char *transport_url = NULL, *sent_folder_uri = NULL;
+ const char *version;
XEvolution *xev;
if (SUB_VERSION[0] == '\0')
@@ -416,39 +416,36 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte
camel_medium_add_header (CAMEL_MEDIUM (message), "X-Mailer", version);
camel_mime_message_set_date (message, CAMEL_MESSAGE_DATE_CURRENT, 0);
- /* Get information about the account this was composed by. */
- acct_header = g_strdup (camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Account"));
- if (acct_header) {
+ xev = mail_tool_remove_xevolution_headers (message);
+
+ if (xev->transport) {
+ transport_url = g_strstrip (g_strdup (xev->transport));
+ } else if (xev->account) {
const MailConfigAccount *account;
+ char *name;
+
+ name = g_strstrip (g_strdup (xev->account));
+ account = mail_config_get_account_by_name (name);
+ g_free (name);
- account = mail_config_get_account_by_name (acct_header);
- if (account) {
+ if (account && account->transport && account->transport->url)
transport_url = g_strdup (account->transport->url);
- sent_folder_uri = g_strdup (account->sent_folder_uri);
- }
- }
-
- if (!transport_url) {
- header = camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Transport");
- if (header)
- transport_url = g_strstrip (g_strdup (header));
}
- if (!sent_folder_uri) {
- header = camel_medium_get_header (CAMEL_MEDIUM (message), "X-Evolution-Fcc");
- if (header)
- sent_folder_uri = g_strstrip (g_strdup (header));
- }
+ if (xev->fcc)
+ sent_folder_uri = g_strstrip (g_strdup (xev->fcc));
xport = camel_session_get_transport (session, transport_url ? transport_url : destination, ex);
g_free (transport_url);
if (!xport) {
+ mail_tool_restore_xevolution_headers (message, xev);
+ mail_tool_destroy_xevolution (xev);
g_free (sent_folder_uri);
return;
}
- xev = mail_tool_remove_xevolution_headers (message);
camel_transport_send (xport, CAMEL_MEDIUM (message), ex);
+
mail_tool_restore_xevolution_headers (message, xev);
mail_tool_destroy_xevolution (xev);
@@ -462,12 +459,6 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte
info = camel_message_info_new ();
info->flags = CAMEL_MESSAGE_SEEN;
- /* Re-attach account header */
- if (acct_header) {
- camel_medium_add_header (CAMEL_MEDIUM (message), "X-Evolution-Account", acct_header);
- g_free (acct_header);
- }
-
if (driver) {
camel_filter_driver_filter_message (driver, message, info,
NULL, NULL, NULL, "", ex);
@@ -483,6 +474,8 @@ mail_send_message(CamelMimeMessage *message, const char *destination, CamelFilte
g_free (description);
camel_message_info_free (info);
+ g_free (sent_folder_uri);
+
return;
}
}