mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-02-25 19:26:24 +00:00
Monotone-Parent: 070ab5bab7996350566f161af861542e882b6ac8
Monotone-Revision: 706eb04192b3639905eba9bfb1e2433cacc45280 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-12-08T20:44:06 Monotone-Branch: ca.inverse.sogo
This commit is contained in:
@@ -72,6 +72,56 @@ static Class MAPIStoreFSMessageK = Nil;
|
||||
[*qualifier autorelease];
|
||||
rc = MAPIRestrictionStateNeedsEval;
|
||||
}
|
||||
else if ((uint32_t) res->ulPropTag == PR_SUBJECT_UNICODE)
|
||||
{
|
||||
EOQualifier *subjectQualifier, *nSubjectQualifier, *subjectPQualifier;
|
||||
EOQualifier *orQualifier, *andQualifier;
|
||||
struct mapi_SPropertyRestriction subRes;
|
||||
char *colPtr, *prefix;
|
||||
|
||||
[super evaluatePropertyRestriction: res
|
||||
intoQualifier: &subjectQualifier];
|
||||
|
||||
subRes.relop = res->relop;
|
||||
subRes.ulPropTag = PR_NORMALIZED_SUBJECT_UNICODE;
|
||||
subRes.lpProp.ulPropTag = PR_NORMALIZED_SUBJECT_UNICODE;
|
||||
|
||||
colPtr = strstr (res->lpProp.value.lpszW, ":");
|
||||
if (colPtr)
|
||||
subRes.lpProp.value.lpszW = colPtr + 1;
|
||||
else
|
||||
subRes.lpProp.value.lpszW = res->lpProp.value.lpszW;
|
||||
|
||||
[self evaluatePropertyRestriction: &subRes
|
||||
intoQualifier: &nSubjectQualifier];
|
||||
if (colPtr)
|
||||
{
|
||||
prefix = strndup (res->lpProp.value.lpszW, (colPtr - res->lpProp.value.lpszW));
|
||||
|
||||
subRes.relop = RELOP_EQ;
|
||||
subRes.ulPropTag = PR_SUBJECT_PREFIX_UNICODE;
|
||||
subRes.lpProp.ulPropTag = PR_SUBJECT_PREFIX_UNICODE;
|
||||
subRes.lpProp.value.lpszW = prefix;
|
||||
[self evaluatePropertyRestriction: &subRes
|
||||
intoQualifier: &subjectPQualifier];
|
||||
free (prefix);
|
||||
|
||||
andQualifier = [[EOOrQualifier alloc]
|
||||
initWithQualifiers:
|
||||
subjectPQualifier, nSubjectQualifier, nil];
|
||||
orQualifier = [[EOOrQualifier alloc]
|
||||
initWithQualifiers:
|
||||
subjectQualifier, andQualifier, nil];
|
||||
[andQualifier release];
|
||||
}
|
||||
else
|
||||
orQualifier = [[EOOrQualifier alloc]
|
||||
initWithQualifiers:
|
||||
subjectQualifier, nSubjectQualifier, nil];
|
||||
[orQualifier autorelease];
|
||||
*qualifier = orQualifier;
|
||||
rc = MAPIRestrictionStateNeedsEval;
|
||||
}
|
||||
else
|
||||
rc = [super evaluatePropertyRestriction: res intoQualifier: qualifier];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user