aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog5
-rw-r--r--mail/mail-ops.c64
2 files changed, 31 insertions, 38 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 4dd70f0cea..6cec9d3e68 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,8 @@
+2000-07-10 Jeffrey Stedfast <fejj@helixcode.com>
+
+ * mail-ops.c (real_fetch_mail): Fixed movemail so that it too would
+ deliver to Inbox.
+
2000-07-09 Dan Winship <danw@helixcode.com>
* message-list.c (get_message_info): Don't g_warn if the user
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 7c0086e8ab..ad789dcd14 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -134,9 +134,9 @@ real_fetch_mail (gpointer user_data)
rfm_t *info;
FolderBrowser *fb = NULL;
CamelException *ex;
- CamelStore*store = NULL, *dest_store = NULL;
- CamelFolder *folder = NULL, *dest_folder;
- char *url = NULL;
+ CamelStore *store = NULL, *dest_store = NULL;
+ CamelFolder *folder = NULL, *dest_folder = NULL;
+ char *url = NULL, *dest_url, *dest_mbox;
FilterDriver *filter = NULL;
char *userrules, *systemrules;
char *tmp_mbox = NULL, *source;
@@ -144,12 +144,27 @@ real_fetch_mail (gpointer user_data)
info = (rfm_t *) user_data;
fb = info->fb;
- dest_store = fb->folder->parent_store; /* default destination store */
- dest_folder = fb->folder; /* default destination folder */
url = info->source_url;
-
+
ex = camel_exception_new ();
+ dest_url = g_strdup_printf ("mbox://%s/local/Inbox", evolution_dir);
+ dest_store = camel_session_get_store (session, dest_url, ex);
+ g_free (dest_url);
+ if (!dest_store) {
+ async_mail_exception_dialog ("Unable to get new mail", ex, fb);
+ goto cleanup;
+ }
+
+ dest_mbox = g_strdup_printf ("%s/local/Inbox/mbox", evolution_dir);
+ dest_folder = camel_store_get_folder (dest_store,
+ strrchr (dest_mbox, '/') + 1,
+ FALSE, ex);
+ if (!dest_folder) {
+ async_mail_exception_dialog ("Unable to get new mail", ex, fb);
+ goto cleanup;
+ }
+
tmp_mbox = g_strdup_printf ("%s/local/Inbox/movemail", evolution_dir);
/* If using IMAP, don't do anything... */
@@ -198,33 +213,7 @@ real_fetch_mail (gpointer user_data)
}
} else {
CamelFolder *sourcefolder;
- char *dest_mbox, *dest_url;
- dest_url = g_strdup_printf ("mbox://%s/local/Inbox", evolution_dir);
- dest_store = camel_session_get_store (session, dest_url, ex);
- g_free (dest_url);
- if (!dest_store) {
- async_mail_exception_dialog ("Unable to get new mail", ex, fb);
- goto cleanup;
- }
-
- dest_mbox = g_strdup_printf ("%s/local/Inbox/mbox", evolution_dir);
- dest_folder = camel_store_get_folder (dest_store,
- strrchr (dest_mbox, '/') + 1,
- FALSE, ex);
- if (!dest_folder) {
- camel_service_disconnect (CAMEL_SERVICE (dest_store), ex);
- gtk_object_unref (GTK_OBJECT (dest_store));
- async_mail_exception_dialog ("Unable to get new mail", ex, fb);
- goto cleanup;
- }
-
- store = camel_session_get_store (session, url, ex);
- if (!store) {
- gtk_object_unref (GTK_OBJECT (dest_folder));
- async_mail_exception_dialog ("Unable to get new mail", ex, fb);
- goto cleanup;
- }
camel_service_connect (CAMEL_SERVICE (store), ex);
if (camel_exception_get_id (ex) != CAMEL_EXCEPTION_NONE) {
gtk_object_unref (GTK_OBJECT (dest_folder));
@@ -252,7 +241,6 @@ real_fetch_mail (gpointer user_data)
strrchr (tmp_mbox, '/') + 1,
TRUE, ex);
if (camel_exception_get_id (ex) != CAMEL_EXCEPTION_NONE) {
- gtk_object_unref (GTK_OBJECT (dest_folder));
async_mail_exception_dialog ("Unable to move mail", ex, fb);
goto cleanup;
}
@@ -268,7 +256,6 @@ real_fetch_mail (gpointer user_data)
async_mail_exception_dialog ("Unable to read message", ex, fb);
gtk_object_unref (GTK_OBJECT (msg));
gtk_object_unref (GTK_OBJECT (sourcefolder));
- gtk_object_unref (GTK_OBJECT (dest_folder));
goto cleanup;
}
@@ -278,7 +265,6 @@ real_fetch_mail (gpointer user_data)
async_mail_exception_dialog ("Unable to write message", ex, fb);
gtk_object_unref (GTK_OBJECT (msg));
gtk_object_unref (GTK_OBJECT (sourcefolder));
- gtk_object_unref (GTK_OBJECT (dest_folder));
goto cleanup;
}
@@ -330,17 +316,19 @@ real_fetch_mail (gpointer user_data)
gtk_signal_disconnect (GTK_OBJECT (dest_folder), handler_id);
cleanup:
- g_free(tmp_mbox);
+ g_free (tmp_mbox);
if (filter)
gtk_object_unref (GTK_OBJECT (filter));
if (url)
g_free (url);
+ if (dest_url)
+ g_free (dest_url);
if (folder) {
camel_folder_sync (folder, TRUE, ex);
gtk_object_unref (GTK_OBJECT (folder));
}
- if (dest_folder != fb->folder) {
+ if (dest_folder) {
camel_folder_sync (dest_folder, TRUE, ex);
gtk_object_unref (GTK_OBJECT (dest_folder));
}
@@ -348,7 +336,7 @@ real_fetch_mail (gpointer user_data)
camel_service_disconnect (CAMEL_SERVICE (store), ex);
gtk_object_unref (GTK_OBJECT (store));
}
- if (dest_store != fb->folder->parent_store) {
+ if (dest_store && dest_store != fb->folder->parent_store) {
camel_service_disconnect (CAMEL_SERVICE (dest_store), ex);
gtk_object_unref (GTK_OBJECT (dest_store));
}