diff options
author | NotZed <NotZed@HelixCode.com> | 2000-05-17 12:09:07 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2000-05-17 12:09:07 +0800 |
commit | ba7f533031784b4c46d744f6e0bae9fe7feee981 (patch) | |
tree | 4f66fea2f834948957bcef866879ff1746fe31e2 /filter/filter-driver.c | |
parent | 07f1218fa41afb5c737b80cb036abdcdf4c42534 (diff) | |
download | gsoc2013-evolution-ba7f533031784b4c46d744f6e0bae9fe7feee981.tar gsoc2013-evolution-ba7f533031784b4c46d744f6e0bae9fe7feee981.tar.gz gsoc2013-evolution-ba7f533031784b4c46d744f6e0bae9fe7feee981.tar.bz2 gsoc2013-evolution-ba7f533031784b4c46d744f6e0bae9fe7feee981.tar.lz gsoc2013-evolution-ba7f533031784b4c46d744f6e0bae9fe7feee981.tar.xz gsoc2013-evolution-ba7f533031784b4c46d744f6e0bae9fe7feee981.tar.zst gsoc2013-evolution-ba7f533031784b4c46d744f6e0bae9fe7feee981.zip |
Fix some html formatting.
2000-05-17 NotZed <NotZed@HelixCode.com>
* filter-druid.c: Fix some html formatting.
2000-05-16 NotZed <NotZed@HelixCode.com>
* filter-driver.c (filter_driver_run): Delete all processed
messages. This is probably going to slow it down a bit.
(filter_driver_run): Close folders before destroying them *sigh*.
(open_folder): Actually open the folder. Doh.
svn path=/trunk/; revision=3101
Diffstat (limited to 'filter/filter-driver.c')
-rw-r--r-- | filter/filter-driver.c | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/filter/filter-driver.c b/filter/filter-driver.c index 94c69c93b0..ce836a16d4 100644 --- a/filter/filter-driver.c +++ b/filter/filter-driver.c @@ -195,6 +195,8 @@ int filter_driver_set_rules(FilterDriver *d, const char *description, const char struct _FilterDriverPrivate *p = _PRIVATE(d); xmlDocPtr desc, filt; + printf("Loading system '%s'\nLoading user '%s'\n", description, filter); + #warning "fix leaks, free xml docs here" desc = xmlParseFile(description); p->rules = filter_load_ruleset(desc); @@ -387,7 +389,7 @@ do_copy(struct _ESExp *f, int argc, struct _ESExpResult **argv, FilterDriver *d) int i; struct _FilterDriverPrivate *p = _PRIVATE(d); - printf("doing copy on the following messages to:"); + printf("doing copy\n"); for (i=0;i<argc;i++) { if (argv[i]->type == ESEXP_RES_STRING) { char *folder = argv[i]->value.string; @@ -468,12 +470,21 @@ open_folder(FilterDriver *d, const char *folder_url) goto fail; } - g_free(store); - if (!camel_folder_exists(camelfolder, p->ex)) { camel_folder_create(camelfolder, p->ex); } + camel_folder_open(camelfolder, FOLDER_OPEN_RW, p->ex); + + if (camel_exception_get_id (p->ex)) { + printf ("Could not open folder: %s: %s", folder, camel_exception_get_description (p->ex)); + goto fail; + } + + printf("opening folder: %s\n", folder_url); + + g_free(store); + g_hash_table_insert(p->folders, g_strdup(folder_url), camelfolder); return camelfolder; @@ -490,6 +501,8 @@ close_folder(void *key, void *value, void *data) FilterDriver *d = data; struct _FilterDriverPrivate *p = _PRIVATE(d); + printf("closing folder: %s\n", key); + g_free(key); camel_folder_close(f, TRUE, p->ex); gtk_object_unref((GtkObject *)f); @@ -518,6 +531,7 @@ filter_driver_run(FilterDriver *d, CamelFolder *source, CamelFolder *inbox) GString *s, *a; GList *all, *m; +#warning "This must be made mega-robust" p->source = source; /* setup runtime data */ @@ -543,6 +557,8 @@ filter_driver_run(FilterDriver *d, CamelFolder *source, CamelFolder *inbox) while (m) { GList *n = m->next; + printf("matched: %s\n", m->data); + /* for all matching id's, so we can work out what to default */ if (g_hash_table_lookup(p->processed, m->data) == NULL) { g_hash_table_insert(p->processed, g_strdup(m->data), (void *)1); @@ -569,33 +585,35 @@ filter_driver_run(FilterDriver *d, CamelFolder *source, CamelFolder *inbox) options = g_list_next(options); } - /* apply the default of copying to an inbox, if we are given one */ - if (inbox) { - all = camel_folder_get_uid_list(p->source, p->ex); - m = all; - while (m) { - char *uid = m->data; - - if (g_hash_table_lookup(p->processed, uid) == NULL) { - CamelMimeMessage *mm; + /* apply the default of copying to an inbox, if we are given one, and make sure + we delete everything as well */ + all = camel_folder_get_uid_list(p->source, p->ex); + m = all; + while (m) { + char *uid = m->data, *procuid; + CamelMimeMessage *mm; + procuid = g_hash_table_lookup(p->processed, uid); + if (procuid == NULL) { + if (inbox) { printf("Applying default rule to message %s\n", uid); mm = camel_folder_get_message_by_uid(p->source, m->data, p->ex); camel_folder_append_message(inbox, mm, p->ex); + camel_mime_message_set_flags(mm, CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_DELETED); gtk_object_unref((GtkObject *)mm); - } - m = m->next; + } else { + camel_folder_delete_message_by_uid(p->source, uid, p->ex); } - g_list_free(all); + m = m->next; } + g_list_free(all); g_hash_table_destroy(p->processed); g_hash_table_destroy(p->terminated); - g_hash_table_destroy(p->folders); - close_folders(d); + g_hash_table_destroy(p->folders); return 0; } |