From 0b7a73dc68f7583d5566a7aae161ac1534385f87 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 25 Oct 2007 15:26:54 +0000 Subject: [PATCH] Monotone-Parent: a0db3f538581c7b491b49f0e21b754544b33477b Monotone-Revision: a8160f433740ec8b2a14452d63e845319427b8a9 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2007-10-25T15:26:54 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 4 +++ SoObjects/Mailer/SOGoMailObject.m | 42 +++++++++++++------------------ 2 files changed, 21 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index ee6cebee9..45ee2293e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2007-10-25 Wolfgang Sourdeau + * SoObjects/Mailer/SOGoMailObject.m ([SOGoMailObject + -stringForData:_datapartInfo:_info]): simplified by invoking + -bodyDataFromEncoding: from our new NSData category methods. + * SoObjects/Mailer/SOGoDraftObject.m ([SOGoDraftObject -fetchMailForEditing:sourceMail]): work-around a bug in SOPE-mime where only the body part of the first of the keys fetched was diff --git a/SoObjects/Mailer/SOGoMailObject.m b/SoObjects/Mailer/SOGoMailObject.m index cd2e8d481..86eb94e8e 100644 --- a/SoObjects/Mailer/SOGoMailObject.m +++ b/SoObjects/Mailer/SOGoMailObject.m @@ -31,10 +31,8 @@ #import #import #import -#import #import #import -#import #import #import #import @@ -44,6 +42,8 @@ #import #import + +#import "NSData+Mail.h" #import "SOGoMailFolder.h" #import "SOGoMailAccount.h" #import "SOGoMailManager.h" @@ -619,37 +619,29 @@ static BOOL debugSoParts = NO; } /* convert parts to strings */ - - (NSString *) stringForData: (NSData *) _data partInfo: (NSDictionary *) _info { - NSString *charset, *encoding, *s; + NSString *charset, *s; NSData *mailData; - if (![_data isNotNull]) - return nil; - - s = nil; - - encoding = [[_info objectForKey: @"encoding"] lowercaseString]; - - if ([encoding isEqualToString: @"7bit"] - || [encoding isEqualToString: @"8bit"]) - mailData = _data; - else if ([encoding isEqualToString: @"base64"]) - mailData = [_data dataByDecodingBase64]; - else if ([encoding isEqualToString: @"quoted-printable"]) - mailData = [_data dataByDecodingQuotedPrintable]; - - charset = [[_info valueForKey: @"parameterList"] valueForKey: @"charset"]; - if (![charset length]) + if ([_data isNotNull]) { - s = [[NSString alloc] initWithData:mailData encoding:NSUTF8StringEncoding]; - [s autorelease]; + mailData + = [_data bodyDataFromEncoding: [_info objectForKey: @"encoding"]]; + + charset = [[_info valueForKey: @"parameterList"] valueForKey: @"charset"]; + if (![charset length]) + { + s = [[NSString alloc] initWithData: mailData encoding: NSUTF8StringEncoding]; + [s autorelease]; + } + else + s = [NSString stringWithData: mailData + usingEncodingNamed: charset]; } else - s = [NSString stringWithData: mailData - usingEncodingNamed: charset]; + s = nil; return s; }