Tidy hanbdleing of encoding type

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@13922 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
CaS 2002-06-19 15:57:23 +00:00
parent 97d7e3f93a
commit e74f169f9e

View file

@ -3586,11 +3586,12 @@ static NSCharacterSet *tokenSet = nil;
} }
type = [self headerNamed: @"content-type"]; type = [self headerNamed: @"content-type"];
} }
enc = [self headerNamed: @"content-transfer-encoding"];
if ([[type objectForKey: @"Type"] isEqual: @"multipart"] == YES) if ([[type objectForKey: @"Type"] isEqual: @"multipart"] == YES)
{ {
NSString *v; NSString *v;
enc = [self headerNamed: @"content-transfer-encoding"];
if (enc != nil) if (enc != nil)
{ {
[NSException raise: NSInternalInconsistencyException [NSException raise: NSInternalInconsistencyException
@ -3605,35 +3606,39 @@ static NSCharacterSet *tokenSet = nil;
} }
boundary = [v dataUsingEncoding: NSASCIIStringEncoding]; boundary = [v dataUsingEncoding: NSASCIIStringEncoding];
} }
else if (enc == nil) else
{ {
d = [self convertToData]; d = [self convertToData];
enc = [GSMimeHeader alloc]; enc = [self headerNamed: @"content-transfer-encoding"];
if ([[type objectForKey: @"Type"] isEqual: @"text"] == YES) if (enc == nil)
{ {
NSString *charset = [type parameterForKey: @"charset"]; enc = [GSMimeHeader alloc];
if ([[type objectForKey: @"Type"] isEqual: @"text"] == YES)
if ([charset isEqual: @"ascii"] || [charset isEqual: @"us-ascii"])
{ {
enc = [enc initWithName: @"content-transfer-encoding" NSString *charset = [type parameterForKey: @"charset"];
value: @"7bit"
parameters: nil]; 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 else
{ {
enc = [enc initWithName: @"content-transfer-encoding" enc = [enc initWithName: @"content-transfer-encoding"
value: @"8bit" value: @"base64"
parameters: nil]; parameters: nil];
} }
[self addHeader: enc];
RELEASE(enc);
} }
else
{
enc = [enc initWithName: @"content-transfer-encoding"
value: @"base64"
parameters: nil];
}
[self addHeader: enc];
RELEASE(enc);
} }
/* /*