diff options
author | Robert Widmann <devteam.codafi@gmail.com> | 2013-12-29 17:31:22 -0800 |
---|---|---|
committer | Robert Widmann <devteam.codafi@gmail.com> | 2013-12-29 17:31:22 -0800 |
commit | 4a3761659ad94f2c447725c9dcc763241c8a7b2c (patch) | |
tree | 94a37f805c8568908e08d326468782d556c87c5a /src | |
parent | 5a7ca5021f63169eac3510e5cac4d9c8757bcef7 (diff) |
Implement X-GM-RAW interfaces
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/imap/MCOIMAPSearchExpression.h | 11 | ||||
-rw-r--r-- | src/objc/imap/MCOIMAPSearchExpression.mm | 5 |
6 files changed, 30 insertions, 0 deletions
diff --git a/src/core/abstract/MCMessageConstants.h b/src/core/abstract/MCMessageConstants.h index 59b65f5b..7cad4f5a 100644 --- a/src/core/abstract/MCMessageConstants.h +++ b/src/core/abstract/MCMessageConstants.h @@ -192,6 +192,7 @@ namespace mailcore { IMAPSearchKindSizeLarger, IMAPSearchKindSizeSmaller, IMAPSearchKindGmailThreadID, + IMAPSearchKindGmailRAW, IMAPSearchKindOr, IMAPSearchKindAnd, }; diff --git a/src/core/imap/MCIMAPSearchExpression.cc b/src/core/imap/MCIMAPSearchExpression.cc index e05ea1e4..5437ffa5 100644 --- a/src/core/imap/MCIMAPSearchExpression.cc +++ b/src/core/imap/MCIMAPSearchExpression.cc @@ -313,6 +313,14 @@ IMAPSearchExpression * IMAPSearchExpression::searchGmailThreadID(uint64_t number return (IMAPSearchExpression *) expr->autorelease(); } +IMAPSearchExpression * IMAPSearchExpression::searchGmailRAW(String * searchExpr) +{ + IMAPSearchExpression * expr = new IMAPSearchExpression(); + expr->mKind = IMAPSearchKindGmailRAW; + expr->mValue = searchExpr; + return (IMAPSearchExpression *) expr->autorelease(); +} + IMAPSearchExpression * IMAPSearchExpression::searchAnd(IMAPSearchExpression * left, IMAPSearchExpression * right) { IMAPSearchExpression * expr = new IMAPSearchExpression(); diff --git a/src/core/imap/MCIMAPSearchExpression.h b/src/core/imap/MCIMAPSearchExpression.h index 35b326b8..b757e8b3 100644 --- a/src/core/imap/MCIMAPSearchExpression.h +++ b/src/core/imap/MCIMAPSearchExpression.h @@ -54,6 +54,7 @@ namespace mailcore { static IMAPSearchExpression * searchSizeLarger(uint32_t size); static IMAPSearchExpression * searchSizeSmaller(uint32_t size); static IMAPSearchExpression * searchGmailThreadID(uint64_t number); + static IMAPSearchExpression * searchGmailRAW(String * expr); static IMAPSearchExpression * searchAnd(IMAPSearchExpression * left, IMAPSearchExpression * right); static IMAPSearchExpression * searchOr(IMAPSearchExpression * left, IMAPSearchExpression * right); diff --git a/src/core/imap/MCIMAPSession.cc b/src/core/imap/MCIMAPSession.cc index fd76497f..093d6fd7 100755 --- a/src/core/imap/MCIMAPSession.cc +++ b/src/core/imap/MCIMAPSession.cc @@ -2791,6 +2791,10 @@ static struct mailimap_search_key * searchKeyFromSearchExpression(IMAPSearchExpr { return mailimap_search_key_new_smaller( (uint32_t) expression->longNumber()); } + case IMAPSearchKindGmailRAW: + { + return mailimap_search_key_new_xgmraw(strdup(expression->value()->UTF8Characters())); + } case IMAPSearchKindOr: { return mailimap_search_key_new_or(searchKeyFromSearchExpression(expression->leftExpression()), searchKeyFromSearchExpression(expression->rightExpression())); diff --git a/src/objc/imap/MCOIMAPSearchExpression.h b/src/objc/imap/MCOIMAPSearchExpression.h index a52936de..fa9865fc 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.h +++ b/src/objc/imap/MCOIMAPSearchExpression.h @@ -288,6 +288,17 @@ + (MCOIMAPSearchExpression *) searchGmailThreadID:(uint64_t)number; /** + Creates a search expression that gets emails that match a gmail RAW search + expression. + + Example: + + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchGmailRAW:@"has:attachment in:unread"] + */ ++ (MCOIMAPSearchExpression *) searchGmailRAW:(NSString *)expr; + + +/** Creates a search expression that's a disjunction of two search expressions. Example: diff --git a/src/objc/imap/MCOIMAPSearchExpression.mm b/src/objc/imap/MCOIMAPSearchExpression.mm index 0e79237a..af4044a4 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.mm +++ b/src/objc/imap/MCOIMAPSearchExpression.mm @@ -200,6 +200,11 @@ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchGmailThreadID(number)); } ++ (MCOIMAPSearchExpression *) searchGmailRAW:(NSString *)expr +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchGmailRAW([expr mco_mcString])); +} + + (MCOIMAPSearchExpression *) searchAnd:(MCOIMAPSearchExpression *)expression other:(MCOIMAPSearchExpression *)other { mailcore::IMAPSearchExpression * result = mailcore::IMAPSearchExpression::searchAnd(expression->_nativeExpr, other->_nativeExpr); |