Monotone-Parent: cac2cd04f2f5027f49a937745510d92fa557a762

Monotone-Revision: ec3d19f268090d56a33692cdc116485c488fd4d6

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-07-28T00:52:38
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2011-07-28 00:52:38 +00:00
parent 132495b7e4
commit dbed73c66f
5 changed files with 306 additions and 5 deletions

View File

@@ -72,6 +72,12 @@ static Class MAPIStoreMailMessageK, NSDataK, NSStringK;
return self;
}
- (void) cleanupCaches
{
[(MAPIStoreMailFolder *) container synchroniseCache];
[super cleanupCaches];
}
- (NSString *) backendIdentifierForProperty: (enum MAPITAGS) property
{
static NSMutableDictionary *knownProperties = nil;
@@ -97,6 +103,7 @@ static Class MAPIStoreMailMessageK, NSDataK, NSStringK;
{
MAPIRestrictionState rc;
id value;
NSNumber *modseq;
value = NSObjectFromMAPISPropValue (&res->lpProp);
switch ((uint32_t) res->ulPropTag)
@@ -143,6 +150,25 @@ static Class MAPIStoreMailMessageK, NSDataK, NSStringK;
case PR_CONVERSATION_KEY:
rc = MAPIRestrictionStateAlwaysFalse;
break;
case PR_CHANGE_NUM:
{
modseq = [(MAPIStoreMailFolder *)
container modseqFromMessageChangeNumber: value];
[self logWithFormat: @"change number from oxcfxics: %.16lx", [value unsignedLongLongValue]];
[self logWithFormat: @" modseq: %.16lx", [modseq unsignedLongLongValue]];
if (modseq)
modseq = [NSNumber numberWithUnsignedLongLong:
[modseq unsignedLongLongValue] + 1];
else
modseq = [NSNumber numberWithUnsignedLongLong: 0];
*qualifier = [[EOKeyValueQualifier alloc] initWithKey: @"MODSEQ"
operatorSelector: EOQualifierOperatorGreaterThanOrEqualTo
value: modseq];
[*qualifier autorelease];
rc = MAPIRestrictionStateNeedsEval;
}
break;
default:
rc = [super evaluatePropertyRestriction: res intoQualifier: qualifier];