/*
* Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2005-2009 DINH Viet Hoa and the Claws Mail team
+ * Copyright (C) 2005-2012 DINH Viet Hoa and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
int imap_threaded_connect(Folder * folder, const char * server, int port);
int imap_threaded_connect_ssl(Folder * folder, const char * server, int port);
-struct mailimap_capability_data * imap_threaded_capability(Folder *folder, int *ok);
+int imap_threaded_capability(Folder *folder, struct mailimap_capability_data ** caps);
#ifndef G_OS_WIN32
int imap_threaded_connect_cmd(Folder * folder, const char * command,
IMAP_SEARCH_TYPE_DELETED,
IMAP_SEARCH_TYPE_FORWARDED,
IMAP_SEARCH_TYPE_SPAM,
+
+ IMAP_SEARCH_TYPE_KEYED,
+};
+
+typedef struct mailimap_search_key IMAPSearchKey;
+
+enum {
+ IMAP_SEARCH_CRITERIA_ALL,
+ IMAP_SEARCH_CRITERIA_READ,
+ IMAP_SEARCH_CRITERIA_UNREAD,
+ IMAP_SEARCH_CRITERIA_NEW,
+ IMAP_SEARCH_CRITERIA_MARKED,
+ IMAP_SEARCH_CRITERIA_DELETED,
+ IMAP_SEARCH_CRITERIA_REPLIED,
+ IMAP_SEARCH_CRITERIA_TAG,
+ IMAP_SEARCH_CRITERIA_SUBJECT,
+ IMAP_SEARCH_CRITERIA_FROM,
+ IMAP_SEARCH_CRITERIA_TO,
+ IMAP_SEARCH_CRITERIA_CC,
+ IMAP_SEARCH_CRITERIA_AGE_GREATER,
+ IMAP_SEARCH_CRITERIA_AGE_LOWER,
+ IMAP_SEARCH_CRITERIA_BODY,
+ IMAP_SEARCH_CRITERIA_MESSAGE,
+ IMAP_SEARCH_CRITERIA_HEADER,
+ IMAP_SEARCH_CRITERIA_SIZE_GREATER,
+ IMAP_SEARCH_CRITERIA_SIZE_SMALLER,
};
-int imap_threaded_search(Folder * folder, int search_type,
- struct mailimap_set * set, clist ** result);
+IMAPSearchKey* imap_search_new(gint criteria,
+ const gchar *header,
+ const gchar *expr,
+ int value);
+IMAPSearchKey* imap_search_not(IMAPSearchKey* key);
+IMAPSearchKey* imap_search_or(IMAPSearchKey* l, IMAPSearchKey* r);
+IMAPSearchKey* imap_search_and(IMAPSearchKey* l, IMAPSearchKey* r);
+void imap_search_free(IMAPSearchKey* search);
+
+int imap_threaded_search(Folder * folder, int search_type, IMAPSearchKey* key,
+ const char *charset, struct mailimap_set * set, clist ** result);
int imap_threaded_fetch_uid(Folder * folder, uint32_t first_index,
carray ** result);