Mime updates

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@15099 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2002-11-25 18:00:55 +00:00
parent 75f545c7e2
commit 99217dff4a
2 changed files with 22 additions and 9 deletions

View file

@ -63,7 +63,7 @@
NSMutableDictionary *objects;
NSMutableDictionary *params;
}
+ (NSString*) makeQuoted: (NSString*)v;
+ (NSString*) makeQuoted: (NSString*)v always: (BOOL)flag;
+ (NSString*) makeToken: (NSString*)t;
- (id) initWithName: (NSString*)n
value: (NSString*)v;

View file

@ -2491,9 +2491,11 @@ static NSCharacterSet *tokenSet = nil;
}
/**
* Makes the value into a quoted string if necessary.
* Makes the value into a quoted string if necessary (ie if it contains
* any special / non-token characters). If flag is YES then the value
* is made into a quoted string even if it does not contain special characters.
*/
+ (NSString*) makeQuoted: (NSString*)v
+ (NSString*) makeQuoted: (NSString*)v always: (BOOL)flag
{
NSRange r;
unsigned pos = 0;
@ -2502,7 +2504,7 @@ static NSCharacterSet *tokenSet = nil;
r = [v rangeOfCharacterFromSet: nonToken
options: NSLiteralSearch
range: NSMakeRange(pos, l - pos)];
if (r.length > 0)
if (flag == YES || r.length > 0)
{
NSMutableString *m = [NSMutableString new];
@ -2537,6 +2539,11 @@ static NSCharacterSet *tokenSet = nil;
options: NSLiteralSearch
range: NSMakeRange(pos, l - pos)];
}
if (l > pos)
{
[m appendString:
[v substringFromRange: NSMakeRange(pos, l - pos)]];
}
[m appendString: @"\""];
v = AUTORELEASE(m);
}
@ -2748,11 +2755,17 @@ static NSCharacterSet *tokenSet = nil;
while ((k = [e nextObject]) != nil)
{
NSString *v = [GSMimeHeader makeQuoted: [params objectForKey: k]];
NSData *kd = wordData(k);
NSData *vd = wordData(v);
unsigned kl = [kd length];
unsigned vl = [vd length];
NSString *v;
NSData *kd;
NSData *vd;
unsigned kl;
unsigned vl;
v = [GSMimeHeader makeQuoted: [params objectForKey: k] always: NO];
kd = wordData(k);
vd = wordData(v);
kl = [kd length];
vl = [vd length];
if ((l + kl + vl + 3) > LIM)
{