mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 16:30:41 +00:00
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:
parent
657809714f
commit
d472dbd2c1
5 changed files with 425 additions and 0 deletions
|
@ -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>
|
2010-05-30 Richard Frith-Macdonald <rfm@gnu.org>
|
||||||
|
|
||||||
* Source/NSObject.h:
|
* Source/NSObject.h:
|
||||||
|
|
|
@ -93,6 +93,14 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
- (NSString*) substringFromRange: (NSRange)aRange;
|
- (NSString*) substringFromRange: (NSRange)aRange;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an NSStringEncoding from the given name or
|
||||||
|
* GSUndefinedEncoding / 0 if not found.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+ (NSStringEncoding) encodingNamed:(NSString*) encName;
|
||||||
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif /* OS_API_VERSION */
|
#endif /* OS_API_VERSION */
|
||||||
|
|
|
@ -730,6 +730,14 @@ typedef NSUInteger NSStringEncodingConversionOptions;
|
||||||
- (NSString*) stringByReplacingPercentEscapesUsingEncoding: (NSStringEncoding)e;
|
- (NSString*) stringByReplacingPercentEscapesUsingEncoding: (NSStringEncoding)e;
|
||||||
- (NSString*) stringByTrimmingCharactersInSet: (NSCharacterSet*)aSet;
|
- (NSString*) stringByTrimmingCharactersInSet: (NSCharacterSet*)aSet;
|
||||||
- (const char *)UTF8String;
|
- (const char *)UTF8String;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an NSStringEncoding from the given name or
|
||||||
|
* GSUndefinedEncoding / 0 if not found.
|
||||||
|
*/
|
||||||
|
|
||||||
|
+ (NSStringEncoding) encodingNamed:(NSString*) encName;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if OS_API_VERSION(100300,GS_API_LATEST)
|
#if OS_API_VERSION(100300,GS_API_LATEST)
|
||||||
|
|
|
@ -227,4 +227,223 @@
|
||||||
return [self substringWithRange:range];
|
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
|
@end
|
||||||
|
|
|
@ -5330,5 +5330,188 @@ static NSFileManager *fm = nil;
|
||||||
[self replaceCharactersInRange: range withString: aString];
|
[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
|
@end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue