Swap return value and argument of imap_threaded_capability()
[claws.git] / src / etpan / imap-thread.h
index 37eaf349d6c0798c3697d61466edd9f94598fe5b..30bce7024ce5b741f837255616d5663427c80a31 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * 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
@@ -47,7 +47,7 @@ void imap_done(Folder * folder);
 
 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,
@@ -99,10 +99,45 @@ enum {
        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);