diff options
author | Oshikawa <oshikawa@azione.co.jp> | 2015-05-16 16:43:49 +0900 |
---|---|---|
committer | Oshikawa <oshikawa@azione.co.jp> | 2015-05-16 16:43:49 +0900 |
commit | b0b9c5269bcb881141ff6f9d192ba771cde485aa (patch) | |
tree | 7e8c7baca52a0d9ce8143f329231e4fdfb14836c /src | |
parent | 640d1945f279038c197e31419677ac64e4246453 (diff) |
Added UID Search with message number expression and SearchKindNumber for IMAP
Diffstat (limited to 'src')
-rw-r--r-- | src/core/imap/MCIMAPSearchExpression.cpp | 7 | ||||
-rw-r--r-- | src/core/imap/MCIMAPSearchExpression.h | 1 | ||||
-rwxr-xr-x | src/core/imap/MCIMAPSession.cpp | 4 | ||||
-rw-r--r-- | src/objc/imap/MCOIMAPSearchExpression.mm | 6 |
4 files changed, 18 insertions, 0 deletions
diff --git a/src/core/imap/MCIMAPSearchExpression.cpp b/src/core/imap/MCIMAPSearchExpression.cpp index b3467e59..b49d83bf 100644 --- a/src/core/imap/MCIMAPSearchExpression.cpp +++ b/src/core/imap/MCIMAPSearchExpression.cpp @@ -170,6 +170,13 @@ IMAPSearchExpression * IMAPSearchExpression::searchUIDs(IndexSet * uids) return (IMAPSearchExpression *) expr->autorelease(); } +IMAPSearchExpression * IMAPSearchExpression::searchNumbers(IndexSet * numbers) +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindNumbers; + MC_SAFE_REPLACE_COPY(IndexSet, expr->mUids, numbers); + return (IMAPSearchExpression *) expr->autorelease(); +} IMAPSearchExpression * IMAPSearchExpression::searchHeader(String * header, String * value) { diff --git a/src/core/imap/MCIMAPSearchExpression.h b/src/core/imap/MCIMAPSearchExpression.h index 6f1f4ea0..9f20fe6c 100644 --- a/src/core/imap/MCIMAPSearchExpression.h +++ b/src/core/imap/MCIMAPSearchExpression.h @@ -36,6 +36,7 @@ namespace mailcore { static IMAPSearchExpression * searchBody(String * value); static IMAPSearchExpression * searchHeader(String * header, String * value); static IMAPSearchExpression * searchUIDs(IndexSet * uids); + static IMAPSearchExpression * searchNumbers(IndexSet * numbers); static IMAPSearchExpression * searchRead(); static IMAPSearchExpression * searchUnread(); static IMAPSearchExpression * searchFlagged(); diff --git a/src/core/imap/MCIMAPSession.cpp b/src/core/imap/MCIMAPSession.cpp index d3f0895e..3abb5716 100755 --- a/src/core/imap/MCIMAPSession.cpp +++ b/src/core/imap/MCIMAPSession.cpp @@ -2795,6 +2795,10 @@ static struct mailimap_search_key * searchKeyFromSearchExpression(IMAPSearchExpr { return mailimap_search_key_new_uid(setFromIndexSet(expression->uids())); } + case IMAPSearchKindNumbers: + { + return mailimap_search_key_new_set(setFromIndexSet(expression->uids())); + } case IMAPSearchKindHeader: { return mailimap_search_key_new_header(strdup(expression->header()->UTF8Characters()), strdup(expression->value()->UTF8Characters())); diff --git a/src/objc/imap/MCOIMAPSearchExpression.mm b/src/objc/imap/MCOIMAPSearchExpression.mm index 57ae8455..57dd928e 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.mm +++ b/src/objc/imap/MCOIMAPSearchExpression.mm @@ -105,6 +105,12 @@ { return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchUIDs(MCO_FROM_OBJC(mailcore::IndexSet, uids))); } + ++ (MCOIMAPSearchExpression *) searchNumbers:(MCOIndexSet *) numbers +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchNumbers(MCO_FROM_OBJC(mailcore::IndexSet, numbers))); +} + + (MCOIMAPSearchExpression *) searchHeader:(NSString *)header value:(NSString *)value { return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchHeader([header mco_mcString], [value mco_mcString])); |