diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test11.c | 91 |
1 files changed, 39 insertions, 52 deletions
diff --git a/tests/test11.c b/tests/test11.c index 1cc778bda1..beb706dca1 100644 --- a/tests/test11.c +++ b/tests/test11.c @@ -26,45 +26,6 @@ auth_callback(char *prompt, gboolean secret, return NULL; } -struct search_data { - CamelFolder *folder; - CamelFolder *outbox; - CamelException *ex; -}; - -static void -search_cb(CamelFolder *folder, int id, gboolean complete, GList *matches, struct search_data *sd) -{ - GList *n; - printf("search found matches:\n"); - n = matches; - while (n) { - CamelMimeMessage *m; - - printf("uid: %s\n", (char *) n->data); - m = camel_folder_get_message_by_uid(sd->folder, n->data, sd->ex); - - if (camel_exception_get_id (sd->ex)) { - printf ("Cannot get message\n" - "Full description : %s\n", camel_exception_get_description (sd->ex)); - } else { - - camel_folder_append_message(sd->outbox, m, sd->ex); - - if (camel_exception_get_id (sd->ex)) { - printf ("Cannot save message\n" - "Full description : %s\n", camel_exception_get_description (sd->ex)); - } - } - n = g_list_next(n); - } - - if (complete) { - camel_folder_close (sd->folder, FALSE, sd->ex); - gtk_exit(0); - } -} - int main (int argc, char**argv) { @@ -73,16 +34,20 @@ main (int argc, char**argv) CamelStore *store; gchar *store_url = "mbox:///tmp/evmail"; CamelFolder *folder, *outbox; - struct search_data *sd; + GList *n, *matches; gtk_init (&argc, &argv); camel_init (); ex = camel_exception_new (); - sd = g_malloc0(sizeof(*sd)); - sd->ex = ex; - session = camel_session_new (auth_callback); + + camel_provider_load (session, "../camel/providers/mbox/.libs/libcamelmbox.so.0", ex); + if (camel_exception_get_id (ex)) { + printf ("Exceptions suck\n"); + return 1; + } + store = camel_session_get_store (session, store_url, ex); if (camel_exception_get_id (ex)) { printf ("Exception caught in camel_session_get_store\n" @@ -116,18 +81,40 @@ main (int argc, char**argv) camel_folder_open (outbox, FOLDER_OPEN_WRITE, ex); - sd->folder = folder; - sd->outbox = outbox; - printf("Search for messages\n"); - camel_folder_search_by_expression (folder, - "(match-all (header-contains \"subject\" \"gnome\"))", - (CamelSearchFunc*)search_cb, - sd, - ex); + matches = camel_folder_search_by_expression (folder, + "(match-all (header-contains \"subject\" \"gnome\"))", + ex); + + printf("search found matches:\n"); + n = matches; + while (n) { + CamelMimeMessage *m; + + printf("uid: %s\n", (char *) n->data); + m = camel_folder_get_message_by_uid(folder, n->data, ex); + + if (camel_exception_get_id (ex)) { + printf ("Cannot get message\n" + "Full description : %s\n", camel_exception_get_description (ex)); + } else { + + camel_folder_append_message(outbox, m, ex); + + if (camel_exception_get_id (ex)) { + printf ("Cannot save message\n" + "Full description : %s\n", camel_exception_get_description (ex)); + } + + printf("Removing matching message from source folder?\n"); + camel_mime_message_set_flags(m, CAMEL_MESSAGE_DELETED, CAMEL_MESSAGE_DELETED); +/* camel_mime_message_set_flags(m, CAMEL_MESSAGE_ANSWERED, CAMEL_MESSAGE_ANSWERED);*/ + } + n = g_list_next(n); + } - gtk_main(); + camel_folder_close (folder, TRUE, ex); return 0; } |