diff --git a/ChangeLog b/ChangeLog index 4acd03d55..04c5e2a2e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-07-20 Wolfgang Sourdeau + + * OpenChange/MAPIStoreMessage.m (-getPidTagSubject:inMemCtx:): now + compute the return value based on PidTagNormalizedSubject and + PidTagSubjectPrefix as PidTagSubject is never actually set from + the client. + 2012-07-19 Wolfgang Sourdeau * OpenChange/MAPIStoreObject.m (-nameInContainer): moved method diff --git a/OpenChange/MAPIStoreMessage.m b/OpenChange/MAPIStoreMessage.m index 0d42eb048..1618e00c8 100644 --- a/OpenChange/MAPIStoreMessage.m +++ b/OpenChange/MAPIStoreMessage.m @@ -706,21 +706,35 @@ rtf2html (NSData *compressedRTF) - (int) getPidTagSubject: (void **) data inMemCtx: (TALLOC_CTX *) memCtx { - [self subclassResponsibility: _cmd]; + int rc; + TALLOC_CTX *localMemCtx; + char *prefix, *normalizedSubject; - return MAPISTORE_ERR_NOT_FOUND; + localMemCtx = talloc_zero (NULL, TALLOC_CTX); + if ([self getProperty: (void **) &prefix + withTag: PidTagSubjectPrefix + inMemCtx: localMemCtx] + != MAPISTORE_SUCCESS) + prefix = ""; + rc = [self getProperty: (void **) &normalizedSubject + withTag: PidTagNormalizedSubject + inMemCtx: localMemCtx]; + if (rc == MAPISTORE_SUCCESS) + *data = talloc_asprintf (memCtx, "%s%s", prefix, normalizedSubject); + + return rc; } - (int) getPidTagNormalizedSubject: (void **) data inMemCtx: (TALLOC_CTX *) memCtx { - return [self getPidTagSubject: data inMemCtx: memCtx]; + return MAPISTORE_ERR_NOT_FOUND; } - (int) getPidTagOriginalSubject: (void **) data inMemCtx: (TALLOC_CTX *) memCtx { - return [self getPidTagNormalizedSubject: data inMemCtx: memCtx]; + return [self getPidTagSubject: data inMemCtx: memCtx]; } - (int) getPidTagConversationTopic: (void **) data