aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog7
-rw-r--r--camel/camel-filter-driver.c13
2 files changed, 15 insertions, 5 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 89c56e8228..c5dc946aac 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,10 @@
+2001-06-26 Jeffrey Stedfast <fejj@ximian.com>
+
+ * camel-filter-driver.c (open_folder): Since we want an error
+ opening a folder to result in the message being copied to Inbox
+ (assuming no other filters get a chance to `move` it), don't
+ record any exceptions that may occur in this function.
+
2001-06-26 Dan Winship <danw@ximian.com>
* providers/imap/camel-imap-folder.c (camel_imap_folder_selected,
diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c
index c998577395..cc3b63f440 100644
--- a/camel/camel-filter-driver.c
+++ b/camel/camel-filter-driver.c
@@ -501,13 +501,16 @@ open_folder (CamelFilterDriver *driver, const char *folder_url)
{
struct _CamelFilterDriverPrivate *p = _PRIVATE (driver);
CamelFolder *camelfolder;
+ CamelException ex;
/* we have a lookup table of currently open folders */
camelfolder = g_hash_table_lookup (p->folders, folder_url);
if (camelfolder)
return camelfolder;
- camelfolder = p->get_folder (driver, folder_url, p->data, p->ex);
+ camel_exception_init (&ex);
+ camelfolder = p->get_folder (driver, folder_url, p->data, &ex);
+ camel_exception_clear (&ex);
if (camelfolder) {
g_hash_table_insert (p->folders, g_strdup (folder_url), camelfolder);
@@ -667,7 +670,7 @@ camel_filter_driver_filter_mbox (CamelFilterDriver *driver, const char *mbox, co
msg = camel_mime_message_new ();
if (camel_mime_part_construct_from_parser (CAMEL_MIME_PART (msg), mp) == -1) {
- report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Failed message %d"), i);
+ report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Failed on message %d"), i);
camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot open message"));
camel_object_unref (CAMEL_OBJECT (msg));
goto fail;
@@ -677,7 +680,7 @@ camel_filter_driver_filter_mbox (CamelFilterDriver *driver, const char *mbox, co
original_source_url ? original_source_url : source_url, ex);
camel_object_unref (CAMEL_OBJECT (msg));
if (camel_exception_is_set (ex) || status == -1) {
- report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Failed message %d"), i);
+ report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Failed on message %d"), i);
goto fail;
}
@@ -686,12 +689,12 @@ camel_filter_driver_filter_mbox (CamelFilterDriver *driver, const char *mbox, co
/* skip over the FROM_END state */
camel_mime_parser_step (mp, 0, 0);
}
-
+
if (p->defaultfolder) {
report_status(driver, CAMEL_FILTER_STATUS_PROGRESS, 100, _("Syncing folder"));
camel_folder_sync(p->defaultfolder, FALSE, ex);
}
-
+
report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Complete"));
return 0;