Fixed for sync search api revert.

svn path=/trunk/; revision=2725
This commit is contained in:
Michael Zucci
2000-05-01 21:55:30 +00:00
parent 5c3e0a6314
commit b368aed4dd
2 changed files with 48 additions and 52 deletions

View File

@ -1,3 +1,12 @@
2000-05-01 NotZed <NotZed@HelixCode.com>
* tests/test11.c (main): *sigh* moved back to sync api.
2000-05-01 NotZed <NotZed@HelixCode.com>
* tests/test11.c (search_cb): Try deleting messages ...
(main): Fix for provider api changes.
2000-05-01 Anders Carlsson <andersca@gnu.org>
* configure.in: Check if bonobo uses oaf, so you don't

View File

@ -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);
gtk_main();
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);
}
camel_folder_close (folder, TRUE, ex);
return 0;
}