diff options
author | 2014-09-02 18:11:09 +0700 | |
---|---|---|
committer | 2014-09-02 18:11:09 +0700 | |
commit | 485fa9d194d869b7e7f7dc3bcebba6ed2bc6fd03 (patch) | |
tree | 7b8f9dd166de07576696410c04f6d2f31bc7cfa7 /src | |
parent | 634bbb6bc3a8f24bb32d5f7a0b5691a0caf606b8 (diff) |
Add IMAP search body
Diffstat (limited to 'src')
-rw-r--r-- | src/core/abstract/MCMessageConstants.h | 1 | ||||
-rw-r--r-- | src/core/imap/MCIMAPSearchExpression.cc | 8 | ||||
-rw-r--r-- | src/core/imap/MCIMAPSearchExpression.h | 1 | ||||
-rwxr-xr-x | src/core/imap/MCIMAPSession.cc | 4 | ||||
-rw-r--r-- | src/objc/abstract/MCOConstants.h | 2 | ||||
-rw-r--r-- | src/objc/imap/MCOIMAPSearchExpression.h | 9 | ||||
-rw-r--r-- | src/objc/imap/MCOIMAPSearchExpression.mm | 5 |
7 files changed, 30 insertions, 0 deletions
diff --git a/src/core/abstract/MCMessageConstants.h b/src/core/abstract/MCMessageConstants.h index 222ca322..145d9917 100644 --- a/src/core/abstract/MCMessageConstants.h +++ b/src/core/abstract/MCMessageConstants.h @@ -178,6 +178,7 @@ namespace mailcore { IMAPSearchKindRecipient, // Recipient is the combination of To, Cc and Bcc IMAPSearchKindSubject, IMAPSearchKindContent, + IMAPSearchKindBody, IMAPSearchKindUIDs, IMAPSearchKindHeader, IMAPSearchKindRead, diff --git a/src/core/imap/MCIMAPSearchExpression.cc b/src/core/imap/MCIMAPSearchExpression.cc index cd3ccc2d..b3467e59 100644 --- a/src/core/imap/MCIMAPSearchExpression.cc +++ b/src/core/imap/MCIMAPSearchExpression.cc @@ -154,6 +154,14 @@ IMAPSearchExpression * IMAPSearchExpression::searchContent(String * value) return (IMAPSearchExpression *) expr->autorelease(); } +IMAPSearchExpression * IMAPSearchExpression::searchBody(String * value) +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindBody; + MC_SAFE_REPLACE_COPY(String, expr->mValue, value); + return (IMAPSearchExpression *) expr->autorelease(); +} + IMAPSearchExpression * IMAPSearchExpression::searchUIDs(IndexSet * uids) { IMAPSearchExpression * expr = new IMAPSearchExpression(); diff --git a/src/core/imap/MCIMAPSearchExpression.h b/src/core/imap/MCIMAPSearchExpression.h index a0647216..a6e4833b 100644 --- a/src/core/imap/MCIMAPSearchExpression.h +++ b/src/core/imap/MCIMAPSearchExpression.h @@ -33,6 +33,7 @@ namespace mailcore { static IMAPSearchExpression * searchRecipient(String * value); static IMAPSearchExpression * searchSubject(String * value); static IMAPSearchExpression * searchContent(String * value); + static IMAPSearchExpression * searchBody(String * value); static IMAPSearchExpression * searchHeader(String * header, String * value); static IMAPSearchExpression * searchUIDs(IndexSet * uids); static IMAPSearchExpression * searchRead(); diff --git a/src/core/imap/MCIMAPSession.cc b/src/core/imap/MCIMAPSession.cc index a2fe5c9e..90bd4421 100755 --- a/src/core/imap/MCIMAPSession.cc +++ b/src/core/imap/MCIMAPSession.cc @@ -2755,6 +2755,10 @@ static struct mailimap_search_key * searchKeyFromSearchExpression(IMAPSearchExpr { return mailimap_search_key_new_text(strdup(expression->value()->UTF8Characters())); } + case IMAPSearchKindBody: + { + return mailimap_search_key_new_body(strdup(expression->value()->UTF8Characters())); + } case IMAPSearchKindUIDs: { return mailimap_search_key_new_uid(setFromIndexSet(expression->uids())); diff --git a/src/objc/abstract/MCOConstants.h b/src/objc/abstract/MCOConstants.h index 32a1b1bb..53406727 100644 --- a/src/objc/abstract/MCOConstants.h +++ b/src/objc/abstract/MCOConstants.h @@ -182,6 +182,8 @@ typedef NS_ENUM(NSInteger, MCOIMAPSearchKind) { MCOIMAPSearchKindSubject, /** Match content of the message.*/ MCOIMAPSearchKindContent, + /** Match body of the message.*/ + MCOIMAPSearchKindBody, /** Match uids */ MCOIMAPSearchKindUids, /** Match headers of the message.*/ diff --git a/src/objc/imap/MCOIMAPSearchExpression.h b/src/objc/imap/MCOIMAPSearchExpression.h index fbffb8f3..5161a6ee 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.h +++ b/src/objc/imap/MCOIMAPSearchExpression.h @@ -91,6 +91,15 @@ + (MCOIMAPSearchExpression *) searchContent:(NSString *)value; /** + Creates a search expression that matches the body of an email. + + Example: + + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchBody:@"building"] + */ ++ (MCOIMAPSearchExpression *) searchBody:(NSString *)value; + +/** Creates a search expression that matches the uids specified. Example: diff --git a/src/objc/imap/MCOIMAPSearchExpression.mm b/src/objc/imap/MCOIMAPSearchExpression.mm index f395596c..57ae8455 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.mm +++ b/src/objc/imap/MCOIMAPSearchExpression.mm @@ -96,6 +96,11 @@ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchContent([value mco_mcString])); } ++ (MCOIMAPSearchExpression *) searchBody:(NSString *)value +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchBody([value mco_mcString])); +} + + (MCOIMAPSearchExpression *) searchUIDs:(MCOIndexSet *) uids { return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchUIDs(MCO_FROM_OBJC(mailcore::IndexSet, uids))); |