This is NSCharacterSet+MIME.m in view mode; [Download] [Up]
//--------------------------------------------------------------------------------------- // NSCharacterSet+MIME.m created by erik on Sun 23-Mar-1997 // This code is part of the Alexandra Newsreader Project. For copyright details see // GNU public license version 2 or above. No warranties implied. Use at own risk. // More information can be found at <http://www.object-factory.com/Alexandra>. // @(#)$Id: NSCharacterSet+MIME.m,v 1.6 1998/09/28 12:28:36 erik Exp $ //--------------------------------------------------------------------------------------- #import "Utilities.h" #import "NSCharacterSet+MIME.h" //--------------------------------------------------------------------------------------- @implementation NSCharacterSet (MessageExtensions_Alexandra) //--------------------------------------------------------------------------------------- + (NSCharacterSet *)standardASCIICharacterSet; { static NSCharacterSet *set = nil; if(set == nil) set = [[NSCharacterSet characterSetWithRange:NSMakeRange(0, 127)] retain]; return set; } //--------------------------------------------------------------------------------------- // character sets for RFC822 //--------------------------------------------------------------------------------------- + (NSCharacterSet *)MASpecialCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) set = [[NSCharacterSet characterSetWithCharactersInString:@"()<>@.,;:\\\"[]"] retain]; return set; } + (NSCharacterSet *)MAEncodedAtomCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) { NSMutableCharacterSet *cs; cs = [[[NSMutableCharacterSet controlCharacterSet] mutableCopy] autorelease]; [cs formUnionWithCharacterSet:[self MASpecialCharacterSet]]; [cs formUnionWithCharacterSet:[self whitespaceCharacterSet]]; [cs invert]; set = [cs copy]; } return set; } + (NSCharacterSet *)MAAtomCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) { NSMutableCharacterSet *cs; cs = [[[NSMutableCharacterSet controlCharacterSet] mutableCopy] autorelease]; [cs formUnionWithCharacterSet:[self MASpecialCharacterSet]]; [cs formUnionWithCharacterSet:[self whitespaceCharacterSet]]; [cs invert]; [cs formIntersectionWithCharacterSet:[self standardASCIICharacterSet]]; set = [cs copy]; } return set; } + (NSCharacterSet *)MADomainCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) { NSMutableCharacterSet *cs; cs = [[[self standardASCIICharacterSet] mutableCopy] autorelease]; [cs removeCharactersInString:@"[]\n\\"]; set = [cs copy]; } return set; } //--------------------------------------------------------------------------------------- // character sets for RFC1521/22 //--------------------------------------------------------------------------------------- + (NSCharacterSet *)MIMETSpecialsCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) set = [[NSCharacterSet characterSetWithCharactersInString:@"()<>@,;:\\\"/[]?="] retain]; return set; } + (NSCharacterSet *)MIMETokenCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) { NSMutableCharacterSet *tmpCharacterSet; NSCharacterSet *xs, *mts; mts = [self MIMETSpecialsCharacterSet]; tmpCharacterSet = [[mts mutableCopy] autorelease]; [tmpCharacterSet invert]; xs = [NSCharacterSet characterSetWithRange:NSMakeRange(32, 95)]; [tmpCharacterSet formIntersectionWithCharacterSet:xs]; set = [tmpCharacterSet copy]; } return set; } + (NSCharacterSet *)MIMENonTokenCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) set = [[[self MIMETokenCharacterSet] invertedSet] retain]; return set; } + (NSCharacterSet *)MIME1522DefaultLiteralCharacterSet; { static NSCharacterSet *set = nil; if(set == nil) { NSMutableCharacterSet *tmpCharacterSet; tmpCharacterSet = [[[NSCharacterSet characterSetWithRange:NSMakeRange(32, 95)] mutableCopy] autorelease]; [tmpCharacterSet removeCharactersInString:@"=?_ "]; set = [tmpCharacterSet copy]; } return set; } //--------------------------------------------------------------------------------------- @end //---------------------------------------------------------------------------------------
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.