Fixed for sync search api revert.
svn path=/trunk/; revision=2725
This commit is contained in:
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user