From e74f169f9ed40fd201bceee326944f8e0457e305 Mon Sep 17 00:00:00 2001 From: CaS Date: Wed, 19 Jun 2002 15:57:23 +0000 Subject: [PATCH] Tidy hanbdleing of encoding type git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@13922 72102866-910b-0410-8b05-ffd578937521 --- Source/Additions/GSMime.m | 43 ++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/Source/Additions/GSMime.m b/Source/Additions/GSMime.m index cc4055b98..5651a32da 100644 --- a/Source/Additions/GSMime.m +++ b/Source/Additions/GSMime.m @@ -3586,11 +3586,12 @@ static NSCharacterSet *tokenSet = nil; } type = [self headerNamed: @"content-type"]; } - enc = [self headerNamed: @"content-transfer-encoding"]; + if ([[type objectForKey: @"Type"] isEqual: @"multipart"] == YES) { NSString *v; + enc = [self headerNamed: @"content-transfer-encoding"]; if (enc != nil) { [NSException raise: NSInternalInconsistencyException @@ -3605,35 +3606,39 @@ static NSCharacterSet *tokenSet = nil; } boundary = [v dataUsingEncoding: NSASCIIStringEncoding]; } - else if (enc == nil) + else { d = [self convertToData]; - enc = [GSMimeHeader alloc]; - if ([[type objectForKey: @"Type"] isEqual: @"text"] == YES) + enc = [self headerNamed: @"content-transfer-encoding"]; + if (enc == nil) { - NSString *charset = [type parameterForKey: @"charset"]; - - if ([charset isEqual: @"ascii"] || [charset isEqual: @"us-ascii"]) + enc = [GSMimeHeader alloc]; + if ([[type objectForKey: @"Type"] isEqual: @"text"] == YES) { - enc = [enc initWithName: @"content-transfer-encoding" - value: @"7bit" - parameters: nil]; + NSString *charset = [type parameterForKey: @"charset"]; + + if ([charset isEqual: @"ascii"] || [charset isEqual: @"us-ascii"]) + { + enc = [enc initWithName: @"content-transfer-encoding" + value: @"7bit" + parameters: nil]; + } + else + { + enc = [enc initWithName: @"content-transfer-encoding" + value: @"8bit" + parameters: nil]; + } } else { enc = [enc initWithName: @"content-transfer-encoding" - value: @"8bit" + value: @"base64" parameters: nil]; } + [self addHeader: enc]; + RELEASE(enc); } - else - { - enc = [enc initWithName: @"content-transfer-encoding" - value: @"base64" - parameters: nil]; - } - [self addHeader: enc]; - RELEASE(enc); } /*