added encodingNamed:

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30507 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Dave Wetzel 2010-05-31 06:34:28 +00:00
parent 2edc03af19
commit 64f6e96d0a
5 changed files with 425 additions and 0 deletions

View file

@ -1,3 +1,10 @@
2010-05-30 David Wetzel <dave@turbocat.de>
* Source/NSString.m
* Source/Additions/NSString+GNUstepBase.m
* Headers/Foundation/NSString.h
* Headers/Additions/GNUstepBase/NSString+GNUstepBase.h
added encodingNamed:
2010-05-30 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSObject.h:

View file

@ -93,6 +93,14 @@ extern "C" {
*/
- (NSString*) substringFromRange: (NSRange)aRange;
/**
* Returns an NSStringEncoding from the given name or
* GSUndefinedEncoding / 0 if not found.
*/
+ (NSStringEncoding) encodingNamed:(NSString*) encName;
@end
#endif /* OS_API_VERSION */

View file

@ -730,6 +730,14 @@ typedef NSUInteger NSStringEncodingConversionOptions;
- (NSString*) stringByReplacingPercentEscapesUsingEncoding: (NSStringEncoding)e;
- (NSString*) stringByTrimmingCharactersInSet: (NSCharacterSet*)aSet;
- (const char *)UTF8String;
/**
* Returns an NSStringEncoding from the given name or
* GSUndefinedEncoding / 0 if not found.
*/
+ (NSStringEncoding) encodingNamed:(NSString*) encName;
#endif
#if OS_API_VERSION(100300,GS_API_LATEST)

View file

@ -227,4 +227,223 @@
return [self substringWithRange:range];
}
/**
* Returns an NSStringEncoding from the given name or
* GSUndefinedEncoding / 0 if not found.
* This code is used in GDL and GSWeb
* It is here to avoid copy+paste code.
*/
+ (NSStringEncoding) encodingNamed:(NSString*) encName
{
if ((!encName) || ([encName length] < 18)) {
return 0;
}
// the most common on top
if ([encName isEqual:@"NSUTF8StringEncoding"]) {
return NSUTF8StringEncoding;
}
if ([encName isEqual:@"NSASCIIStringEncoding"]) {
return NSASCIIStringEncoding;
}
if ([encName isEqual:@"NSNEXTSTEPStringEncoding"]) {
return NSNEXTSTEPStringEncoding;
}
if ([encName isEqual:@"NSJapaneseEUCStringEncoding"]) {
return NSJapaneseEUCStringEncoding;
}
if ([encName isEqual:@"NSISOLatin1StringEncoding"]) {
return NSISOLatin1StringEncoding;
}
if ([encName isEqual:@"NSSymbolStringEncoding"]) {
return NSSymbolStringEncoding;
}
if ([encName isEqual:@"NSNonLossyASCIIStringEncoding"]) {
return NSNonLossyASCIIStringEncoding;
}
if ([encName isEqual:@"NSShiftJISStringEncoding"]) {
return NSShiftJISStringEncoding;
}
if ([encName isEqual:@"NSUnicodeStringEncoding"]) {
return NSUnicodeStringEncoding;
}
if ([encName isEqual:@"NSUTF16StringEncoding"]) {
return NSUTF16StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1251StringEncoding"]) {
return NSWindowsCP1251StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1252StringEncoding"]) {
return NSWindowsCP1252StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1253StringEncoding"]) {
return NSWindowsCP1253StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1254StringEncoding"]) {
return NSWindowsCP1254StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1250StringEncoding"]) {
return NSWindowsCP1250StringEncoding;
}
if ([encName isEqual:@"NSISO2022JPStringEncoding"]) {
return NSISO2022JPStringEncoding;
}
if ([encName isEqual:@"NSMacOSRomanStringEncoding"]) {
return NSMacOSRomanStringEncoding;
}
// does anybody need NSProprietaryStringEncoding?
#ifdef NSKOI8RStringEncoding
if ([encName isEqual:@"NSKOI8RStringEncoding"]) {
return NSKOI8RStringEncoding;
}
#endif
#ifdef NSKOI8RStringEncoding
if ([encName isEqual:@"NSISOLatin3StringEncoding"]) {
return NSISOLatin3StringEncoding;
}
#endif
#ifdef NSISOLatin4StringEncoding
if ([encName isEqual:@"NSISOLatin4StringEncoding"]) {
return NSISOLatin4StringEncoding;
}
#endif
#ifdef NSISOCyrillicStringEncoding
if ([encName isEqual:@"NSISOCyrillicStringEncoding"]) {
return NSISOCyrillicStringEncoding;
}
#endif
#ifdef NSISOArabicStringEncoding
if ([encName isEqual:@"NSISOArabicStringEncoding"]) {
return NSISOArabicStringEncoding;
}
#endif
#ifdef NSISOGreekStringEncoding
if ([encName isEqual:@"NSISOGreekStringEncoding"]) {
return NSISOGreekStringEncoding;
}
#endif
#ifdef NSISOHebrewStringEncoding
if ([encName isEqual:@"NSISOHebrewStringEncoding"]) {
return NSISOHebrewStringEncoding;
}
#endif
#ifdef NSISOLatin5StringEncoding
if ([encName isEqual:@"NSISOLatin5StringEncoding"]) {
return NSISOLatin5StringEncoding;
}
#endif
#ifdef NSISOLatin6StringEncoding
if ([encName isEqual:@"NSISOLatin6StringEncoding"]) {
return NSISOLatin6StringEncoding;
}
#endif
#ifdef NSISOThaiStringEncoding
if ([encName isEqual:@"NSISOThaiStringEncoding"]) {
return NSISOThaiStringEncoding;
}
#endif
#ifdef NSISOLatin7StringEncoding
if ([encName isEqual:@"NSISOLatin7StringEncoding"]) {
return NSISOLatin7StringEncoding;
}
#endif
#ifdef NSISOLatin8StringEncoding
if ([encName isEqual:@"NSISOLatin8StringEncoding"]) {
return NSISOLatin8StringEncoding;
}
#endif
#ifdef NSISOLatin9StringEncoding
if ([encName isEqual:@"NSISOLatin9StringEncoding"]) {
return NSISOLatin9StringEncoding;
}
#endif
#ifdef NSGB2312StringEncoding
if ([encName isEqual:@"NSGB2312StringEncoding"]) {
return NSGB2312StringEncoding;
}
#endif
#ifdef NSUTF7StringEncoding
if ([encName isEqual:@"NSUTF7StringEncoding"]) {
return NSUTF7StringEncoding;
}
#endif
#ifdef NSGSM0338StringEncoding
if ([encName isEqual:@"NSGSM0338StringEncoding"]) {
return NSGSM0338StringEncoding;
}
#endif
#ifdef NSBIG5StringEncoding
if ([encName isEqual:@"NSBIG5StringEncoding"]) {
return NSBIG5StringEncoding;
}
#endif
#ifdef NSKoreanEUCStringEncoding
if ([encName isEqual:@"NSKoreanEUCStringEncoding"]) {
return NSKoreanEUCStringEncoding;
}
#endif
#if OS_API_VERSION(100400,GS_API_LATEST)
if ([encName isEqual:@"NSUTF16BigEndianStringEncoding"]) {
return NSUTF16BigEndianStringEncoding;
}
if ([encName isEqual:@"NSUTF16LittleEndianStringEncoding"]) {
return NSUTF16LittleEndianStringEncoding;
}
if ([encName isEqual:@"NSUTF32StringEncoding"]) {
return NSUTF32StringEncoding;
}
if ([encName isEqual:@"NSUTF32BigEndianStringEncoding"]) {
return NSUTF32BigEndianStringEncoding;
}
if ([encName isEqual:@"NSUTF32LittleEndianStringEncoding"]) {
return NSUTF32LittleEndianStringEncoding;
}
#endif
return 0;
}
@end

View file

@ -5330,5 +5330,188 @@ static NSFileManager *fm = nil;
[self replaceCharactersInRange: range withString: aString];
}
/**
* Returns an NSStringEncoding from the given name or
* GSUndefinedEncoding / 0 if not found.
* This code is used in GDL and GSWeb
* It is here to avoid copy+paste code.
*/
+ (NSStringEncoding) encodingNamed:(NSString*) encName
{
if ((!encName) || ([encName length] < 18)) {
return 0;
}
// the most common on top
if ([encName isEqual:@"NSUTF8StringEncoding"]) {
return NSUTF8StringEncoding;
}
if ([encName isEqual:@"NSASCIIStringEncoding"]) {
return NSASCIIStringEncoding;
}
if ([encName isEqual:@"NSNEXTSTEPStringEncoding"]) {
return NSNEXTSTEPStringEncoding;
}
if ([encName isEqual:@"NSJapaneseEUCStringEncoding"]) {
return NSJapaneseEUCStringEncoding;
}
if ([encName isEqual:@"NSISOLatin1StringEncoding"]) {
return NSISOLatin1StringEncoding;
}
if ([encName isEqual:@"NSSymbolStringEncoding"]) {
return NSSymbolStringEncoding;
}
if ([encName isEqual:@"NSNonLossyASCIIStringEncoding"]) {
return NSNonLossyASCIIStringEncoding;
}
if ([encName isEqual:@"NSShiftJISStringEncoding"]) {
return NSShiftJISStringEncoding;
}
if ([encName isEqual:@"NSUnicodeStringEncoding"]) {
return NSUnicodeStringEncoding;
}
if ([encName isEqual:@"NSUTF16StringEncoding"]) {
return NSUTF16StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1251StringEncoding"]) {
return NSWindowsCP1251StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1252StringEncoding"]) {
return NSWindowsCP1252StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1253StringEncoding"]) {
return NSWindowsCP1253StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1254StringEncoding"]) {
return NSWindowsCP1254StringEncoding;
}
if ([encName isEqual:@"NSWindowsCP1250StringEncoding"]) {
return NSWindowsCP1250StringEncoding;
}
if ([encName isEqual:@"NSISO2022JPStringEncoding"]) {
return NSISO2022JPStringEncoding;
}
if ([encName isEqual:@"NSMacOSRomanStringEncoding"]) {
return NSMacOSRomanStringEncoding;
}
// does anybody need NSProprietaryStringEncoding?
if ([encName isEqual:@"NSKOI8RStringEncoding"]) {
return NSKOI8RStringEncoding;
}
if ([encName isEqual:@"NSISOLatin3StringEncoding"]) {
return NSISOLatin3StringEncoding;
}
if ([encName isEqual:@"NSISOLatin4StringEncoding"]) {
return NSISOLatin4StringEncoding;
}
if ([encName isEqual:@"NSISOCyrillicStringEncoding"]) {
return NSISOCyrillicStringEncoding;
}
if ([encName isEqual:@"NSISOArabicStringEncoding"]) {
return NSISOArabicStringEncoding;
}
if ([encName isEqual:@"NSISOGreekStringEncoding"]) {
return NSISOGreekStringEncoding;
}
if ([encName isEqual:@"NSISOHebrewStringEncoding"]) {
return NSISOHebrewStringEncoding;
}
if ([encName isEqual:@"NSISOLatin5StringEncoding"]) {
return NSISOLatin5StringEncoding;
}
if ([encName isEqual:@"NSISOLatin6StringEncoding"]) {
return NSISOLatin6StringEncoding;
}
if ([encName isEqual:@"NSISOThaiStringEncoding"]) {
return NSISOThaiStringEncoding;
}
if ([encName isEqual:@"NSISOLatin7StringEncoding"]) {
return NSISOLatin7StringEncoding;
}
if ([encName isEqual:@"NSISOLatin8StringEncoding"]) {
return NSISOLatin8StringEncoding;
}
if ([encName isEqual:@"NSISOLatin9StringEncoding"]) {
return NSISOLatin9StringEncoding;
}
if ([encName isEqual:@"NSGB2312StringEncoding"]) {
return NSGB2312StringEncoding;
}
if ([encName isEqual:@"NSUTF7StringEncoding"]) {
return NSUTF7StringEncoding;
}
if ([encName isEqual:@"NSGSM0338StringEncoding"]) {
return NSGSM0338StringEncoding;
}
if ([encName isEqual:@"NSBIG5StringEncoding"]) {
return NSBIG5StringEncoding;
}
if ([encName isEqual:@"NSKoreanEUCStringEncoding"]) {
return NSKoreanEUCStringEncoding;
}
#if OS_API_VERSION(100400,GS_API_LATEST)
if ([encName isEqual:@"NSUTF16BigEndianStringEncoding"]) {
return NSUTF16BigEndianStringEncoding;
}
if ([encName isEqual:@"NSUTF16LittleEndianStringEncoding"]) {
return NSUTF16LittleEndianStringEncoding;
}
if ([encName isEqual:@"NSUTF32StringEncoding"]) {
return NSUTF32StringEncoding;
}
if ([encName isEqual:@"NSUTF32BigEndianStringEncoding"]) {
return NSUTF32BigEndianStringEncoding;
}
if ([encName isEqual:@"NSUTF32LittleEndianStringEncoding"]) {
return NSUTF32LittleEndianStringEncoding;
}
#endif
return 0;
}
@end