(fix) message bodies not shown on some EAS devices (#3173)

pull/85/head
Ludovic Marcotte 2015-05-14 15:58:53 -04:00
parent c98a000515
commit 037a3a136a
2 changed files with 20 additions and 8 deletions

View File

@ -219,6 +219,8 @@ struct GlobalObjectId {
NSEnumerator *e;
NSData *d;
BOOL ignore;
textParts = [self fetchPlainTextParts];
e = [textParts keyEnumerator];
plainKey = nil;
@ -227,15 +229,24 @@ struct GlobalObjectId {
while ((key = [e nextObject]))
{
// Don't use body parts from nested bodies if not of type multipart/alternative. - e.g. body of type message/rfc822
// Use only parts of level 0 or 1.
if ([key countOccurrencesOfString: @"."] > 1)
continue;
else if ([key countOccurrencesOfString: @"."] == 1)
// Walk the hierarchy up and check whether parents are of type mulipart - i.e. ignore message/rfc822
if ([key countOccurrencesOfString: @"."] > 0)
{
// Ignore nested parts if the container is not of type multipart/alternative.
part = [self lookupInfoForBodyPart: [[key componentsSeparatedByString: @"."] objectAtIndex:0]];
if (!([[part valueForKey: @"type"] isEqualToString: @"multipart"] && [[part valueForKey: @"subtype"] isEqualToString: @"alternative"]))
NSMutableArray *a;
a = [[[key componentsSeparatedByString: @"."] mutableCopy] autorelease];
ignore = NO;
while ([a count] > 0)
{
[a removeLastObject];
part = [self lookupInfoForBodyPart: [a componentsJoinedByString: @"."]];
if (![[part valueForKey: @"type"] isEqualToString: @"multipart"])
ignore = YES;
}
if (ignore)
continue;
}

1
NEWS
View File

@ -53,6 +53,7 @@ Bug fixes
- now correctly handle external invitations using EAS
- now correctly handle multiple email addresses in the GAL over EAS (#3102)
- now handle very large amount of participants correctly (#3175)
- fix message bodies not shown on some EAS devices (#3173)
2.2.17a (2015-03-15)
--------------------