diff options
author | Jeffrey Stedfast <fejj@ximian.com> | 2001-06-26 08:18:23 +0800 |
---|---|---|
committer | Jeffrey Stedfast <fejj@src.gnome.org> | 2001-06-26 08:18:23 +0800 |
commit | 3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3 (patch) | |
tree | 9ca85931cb4c9f5847a06daa68b4154a3c477e52 /camel/camel-filter-driver.c | |
parent | b44b57aa7e6be672c60b095e65525ed42d6cc94a (diff) | |
download | gsoc2013-evolution-3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3.tar gsoc2013-evolution-3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3.tar.gz gsoc2013-evolution-3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3.tar.bz2 gsoc2013-evolution-3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3.tar.lz gsoc2013-evolution-3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3.tar.xz gsoc2013-evolution-3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3.tar.zst gsoc2013-evolution-3570cc5bbf3c5d3b10d578a0f8444d95e57eb4d3.zip |
g_strdup() the message source here or we will have problems later when we
2001-06-25 Jeffrey Stedfast <fejj@ximian.com>
* camel-filter-search.c (get_source): g_strdup() the message
source here or we will have problems later when we go to free the
result ;-)
svn path=/trunk/; revision=10498
Diffstat (limited to 'camel/camel-filter-driver.c')
-rw-r--r-- | camel/camel-filter-driver.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c index 4284af1f8e..c998577395 100644 --- a/camel/camel-filter-driver.c +++ b/camel/camel-filter-driver.c @@ -757,7 +757,7 @@ camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folde for (i = 0; i < uids->len; i++) { int pc = (100 * i)/uids->len; - + report_status (driver, CAMEL_FILTER_STATUS_START, pc, _("Getting message %d of %d"), i+1, uids->len); @@ -779,7 +779,7 @@ camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folde if (camel_folder_has_summary_capability (folder)) camel_folder_free_message_info (folder, info); - + if (camel_exception_is_set (ex) || status == -1) { report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Failed at message %d of %d"), i+1, uids->len); @@ -789,19 +789,20 @@ camel_filter_driver_filter_folder (CamelFilterDriver *driver, CamelFolder *folde if (remove) camel_folder_set_message_flags (folder, uids->pdata[i], - CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN); + CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN, + CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN); camel_object_unref (CAMEL_OBJECT (message)); } - + if (freeuids) camel_folder_free_uids (folder, uids); if (p->defaultfolder) { - report_status(driver, CAMEL_FILTER_STATUS_PROGRESS, 100, _("Syncing folder")); + report_status (driver, CAMEL_FILTER_STATUS_PROGRESS, 100, _("Syncing folder")); camel_folder_sync (p->defaultfolder, FALSE, ex); } - + if (i == uids->len) report_status (driver, CAMEL_FILTER_STATUS_END, 100, _("Complete")); @@ -844,7 +845,7 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver, CamelMimeMessage struct _filter_rule *node; gboolean freeinfo = FALSE; gboolean filtered = FALSE; - + if (info == NULL) { struct _header_raw *h = CAMEL_MIME_PART (message)->headers; @@ -863,41 +864,44 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver, CamelMimeMessage p->info = info; p->uid = uid; p->source = source; - + if (original_source_url && camel_mime_message_get_source (message) == NULL) camel_mime_message_set_source (message, original_source_url); node = (struct _filter_rule *)p->rules.head; while (node->next) { - d(fprintf (stderr, "applying rule %s\n action %s\n", node->match, node->action)); + d(fprintf (stderr, "applying rule %s\naction %s\n", node->match, node->action)); - if (camel_filter_search_match(p->message, p->info, - original_source_url ? original_source_url : source_url, - node->match, p->ex)) { + if (camel_filter_search_match (p->message, p->info, + original_source_url ? original_source_url : source_url, + node->match, p->ex)) { filtered = TRUE; camel_filter_driver_log (driver, FILTER_LOG_START, node->name); /* perform necessary filtering actions */ e_sexp_input_text (p->eval, node->action, strlen (node->action)); if (e_sexp_parse (p->eval) == -1) { - camel_exception_setv(ex, 1, _("Error parsing filter: %s: %s"), e_sexp_error(p->eval), node->action); + camel_exception_setv (ex, 1, _("Error parsing filter: %s: %s"), + e_sexp_error (p->eval), node->action); goto error; } r = e_sexp_eval (p->eval); if (r == NULL) { - camel_exception_setv(ex, 1, _("Error executing filter: %s: %s"), e_sexp_error(p->eval), node->action); + camel_exception_setv (ex, 1, _("Error executing filter: %s: %s"), + e_sexp_error (p->eval), node->action); goto error; } e_sexp_result_free (p->eval, r); if (p->terminated) break; } + node = node->next; } /* *Now* we can set the DELETED flag... */ if (p->deleted) - info->flags = info->flags | CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_FOLDER_FLAGGED | CAMEL_MESSAGE_SEEN; + info->flags = info->flags | CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN | CAMEL_MESSAGE_FOLDER_FLAGGED; /* Logic: if !Moved and there exists a default folder... */ if (!(p->copied && p->deleted) && p->defaultfolder) { @@ -906,7 +910,7 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver, CamelMimeMessage camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Copy to default folder"); if (p->uid && p->source && camel_folder_has_summary_capability (p->source)) { GPtrArray *uids; - + uids = g_ptr_array_new (); g_ptr_array_add (uids, (char *) p->uid); camel_folder_copy_messages_to (p->source, uids, p->defaultfolder, p->ex); @@ -917,6 +921,7 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver, CamelMimeMessage if (freeinfo) camel_message_info_free (info); + return 0; error: |