aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog18
-rw-r--r--mail/Makefile.am5
-rw-r--r--mail/mail-account-gui.c10
-rw-r--r--mail/mail-display.c4
-rw-r--r--mail/mail-ops.c3
-rw-r--r--mail/mail-send-recv.c2
-rw-r--r--mail/session.c19
7 files changed, 43 insertions, 18 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index bdf9f7dd1b..0a664b9a88 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,21 @@
+2001-04-13 Dan Winship <danw@ximian.com>
+
+ * Makefile.am (evolution_mail_LDADD): Remove some redundant LIBS
+ variables... purify complained that the command line was too
+ long. :-}
+
+ * mail-account-gui.c: Plug leaks.
+
+ * mail-display.c (on_url_requested): close the html stream on
+ error too.
+
+ * mail-ops.c (fetch_mail_fetch): Move a line around that probably
+ doesn't affect anything, but it's correct.
+
+ * session.c (auth_callback): Plug leak.
+
+ * mail-send-recv.c (receive_status): Initialize "now".
+
2001-04-13 Christopher James Lahey <clahey@ximian.com>
* message-list.c (on_cursor_activated_cmd): Only activate the
diff --git a/mail/Makefile.am b/mail/Makefile.am
index 0d7a94fb53..8a666324c2 100644
--- a/mail/Makefile.am
+++ b/mail/Makefile.am
@@ -115,10 +115,7 @@ evolution_mail_LDADD = \
$(top_builddir)/shell/importer/libevolution-importer.la \
$(top_builddir)/widgets/menus/libmenus.la \
$(BONOBO_VFS_GNOME_LIBS) \
- $(EXTRA_GNOME_LIBS) \
- $(GTKHTML_LIBS) \
- $(THREADS_LIBS) \
- $(UNICODE_LIBS)
+ $(GTKHTML_LIBS)
evolution_mail_LDFLAGS = \
-export-dynamic
diff --git a/mail/mail-account-gui.c b/mail/mail-account-gui.c
index abae1d948d..07d84d1138 100644
--- a/mail/mail-account-gui.c
+++ b/mail/mail-account-gui.c
@@ -450,6 +450,8 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string)
if (!gui->source.provider) {
gtk_widget_set_sensitive (main_vbox, FALSE);
+ if (url)
+ camel_url_free (url);
return;
} else
gtk_widget_set_sensitive (main_vbox, TRUE);
@@ -597,6 +599,8 @@ mail_account_gui_build_extra_conf (MailAccountGui *gui, const char *url_string)
done:
gtk_widget_show_all (main_vbox);
+ if (url)
+ camel_url_free (url);
}
static void
@@ -737,6 +741,7 @@ setup_service (MailAccountGuiService *gsvc, MailConfigService *service)
has_auth = TRUE;
}
+ camel_url_free (url);
gtk_toggle_button_set_active (gsvc->remember, service->save_passwd);
@@ -1178,5 +1183,10 @@ mail_account_gui_destroy (MailAccountGui *gui)
gtk_object_unref (GTK_OBJECT (gui->xml));
if (gui->extra_config)
g_hash_table_destroy (gui->extra_config);
+ g_free (gui->drafts_folder.name);
+ g_free (gui->drafts_folder.uri);
+ g_free (gui->sent_folder.name);
+ g_free (gui->sent_folder.uri);
+ g_free (gui);
}
diff --git a/mail/mail-display.c b/mail/mail-display.c
index 55eae01dca..266c46e1fc 100644
--- a/mail/mail-display.c
+++ b/mail/mail-display.c
@@ -862,8 +862,10 @@ on_url_requested (GtkHTML *html, const char *url, GtkHTMLStream *handle,
g_return_if_fail (urls != NULL);
user_data = g_hash_table_lookup (urls, url);
- if (user_data == NULL)
+ if (user_data == NULL) {
+ gtk_html_end (html, handle, GTK_HTML_STREAM_ERROR);
return;
+ }
if (strncmp (url, "cid:", 4) == 0) {
CamelMedium *medium = user_data;
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index e4b5e111d4..c97144e1e0 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -334,9 +334,8 @@ fetch_mail_fetch(struct _mail_msg *mm)
/* if we are not to delete the messages, save the UID cache */
if (!fm->delete && !camel_exception_is_set (&mm->ex))
camel_uid_cache_save (cache);
-
- camel_uid_cache_destroy (cache);
}
+ camel_uid_cache_destroy (cache);
camel_folder_free_uids (folder, folder_uids);
} else {
filter_folder_filter (mm);
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index 2b300272f3..0cf840424d 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -398,7 +398,7 @@ static void
receive_status (CamelFilterDriver *driver, enum camel_filter_status_t status, int pc, const char *desc, void *data)
{
struct _send_info *info = data;
- time_t now;
+ time_t now = time(0);
/* let it flow through to the folder, every now and then too? */
g_hash_table_foreach(info->data->folders, (GHFunc)update_folders, &now);
diff --git a/mail/session.c b/mail/session.c
index 28694f39a1..42125c7b04 100644
--- a/mail/session.c
+++ b/mail/session.c
@@ -124,6 +124,7 @@ auth_callback (CamelAuthCallbackMode mode, char *data, gboolean secret,
{
char *key, *ans, *url;
gboolean accept;
+ gpointer old_key, old_data;
if (service) {
url = camel_url_to_string (service->url, CAMEL_URL_HIDE_PASSWORD | CAMEL_URL_HIDE_PARAMS);
@@ -134,20 +135,18 @@ auth_callback (CamelAuthCallbackMode mode, char *data, gboolean secret,
switch (mode) {
case CAMEL_AUTHENTICATOR_TELL:
+ if (g_hash_table_lookup_extended (passwords, key,
+ &old_key, &old_data)) {
+ g_free (old_data);
+ g_free (key);
+ key = old_key;
+ }
+
if (!data) {
g_hash_table_remove (passwords, key);
g_free (key);
} else {
- gpointer old_key, old_data;
-
- if (g_hash_table_lookup_extended (passwords, key,
- &old_key,
- &old_data)) {
- g_hash_table_insert (passwords, old_key, data);
- g_free (old_data);
- g_free (key);
- } else
- g_hash_table_insert (passwords, key, data);
+ g_hash_table_insert (passwords, key, data);
}
return NULL;