* EOAccess/EOAdaptor.m (databaseEncoding): Reimplement to not

rely on GSEncodingName.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@23862 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
ayers 2006-10-13 04:54:09 +00:00
parent 85e54e2eac
commit c9b9f32265
2 changed files with 66 additions and 27 deletions

View file

@ -1,3 +1,8 @@
2006-10-13 David Ayers <ayers@fsfe.org>
* EOAccess/EOAdaptor.m (databaseEncoding): Reimplement to not
rely on GSEncodingName.
2006-10-09 Nicola Pero <nicola.pero@meta-innovation.com>
* EOInterface/GNUmakefile: Do not set GNUSTEP_INSTALLATION_DIR.

View file

@ -582,41 +582,75 @@ NSString *EOAdministrativeConnectionDictionaryKey
- (NSStringEncoding)databaseEncoding
{
NSString *encodingString=nil;
NSDictionary *encodingsDict = [self connectionDictionary];
const NSStringEncoding *availableEncodingsArray;
unsigned count = 0;
NSStringEncoding availableEncodingValue;
NSString *availableEncodingString;
static NSDictionary *encodingDictionary = nil;
NSDictionary *connectionDictionary;
NSString *encodingName;
NSString *encodingValue;
NSStringEncoding stringEncoding;
EOFLOGObjectFnStartOrCond2(@"AdaptorLevel",@"EOAdaptor");
if (encodingsDict
&& (encodingString = [encodingsDict objectForKey: @"databaseEncoding"]))
if (encodingDictionary == nil)
{
availableEncodingsArray = [NSString availableStringEncodings];
while (availableEncodingsArray[count] != 0)
{
availableEncodingValue = availableEncodingsArray[count++];
/* This dictionary should be kept in sync with NSStringEncoding
in NSString.h. */
encodingDictionary = RETAIN([@"{"
@"NSASCIIStringEncoding = 1;"
@"NSNEXTSTEPStringEncoding = 2;"
@"NSJapaneseEUCStringEncoding = 3;"
@"NSUTF8StringEncoding = 4;"
@"NSISOLatin1StringEncoding = 5;"
@"NSSymbolStringEncoding = 6;"
@"NSNonLossyASCIIStringEncoding = 7;"
@"NSShiftJISStringEncoding = 8;"
@"NSISOLatin2StringEncoding = 9;"
@"NSUnicodeStringEncoding = 10;"
@"NSWindowsCP1251StringEncoding = 11;"
@"NSWindowsCP1252StringEncoding = 12;"
@"NSWindowsCP1253StringEncoding = 13;"
@"NSWindowsCP1254StringEncoding = 14;"
@"NSWindowsCP1250StringEncoding = 15;"
@"NSISO2022JPStringEncoding = 21;"
@"NSMacOSRomanStringEncoding = 30;"
@"NSProprietaryStringEncoding = 31;"
@"NSKOI8RStringEncoding = 50;"
@"NSISOLatin3StringEncoding = 51;"
@"NSISOLatin4StringEncoding = 52;"
@"NSISOCyrillicStringEncoding = 22;"
@"NSISOArabicStringEncoding = 53;"
@"NSISOGreekStringEncoding = 54;"
@"NSISOHebrewStringEncoding = 55;"
@"NSISOLatin5StringEncoding = 57;"
@"NSISOLatin6StringEncoding = 58;"
@"NSISOThaiStringEncoding = 59;"
@"NSISOLatin7StringEncoding = 61;"
@"NSISOLatin8StringEncoding = 62;"
@"NSISOLatin9StringEncoding = 63;"
@"NSGB2312StringEncoding = 56;"
@"NSUTF7StringEncoding = 64;"
@"NSGSM0338StringEncoding = 65;"
@"NSBIG5StringEncoding = 66;"
@"NSKoreanEUCStringEncoding = 67;"
@"}" propertyList]);
}
connectionDictionary = [self connectionDictionary];
encodingName = [connectionDictionary objectForKey: @"databaseEncoding"];
encodingValue = [encodingDictionary objectForKey: @"encodingName"];
availableEncodingString = GSEncodingName(availableEncodingValue);
if (availableEncodingString)
{
if ([availableEncodingString isEqual: encodingString])
{
EOFLOGObjectFnStopOrCond2(@"AdaptorLevel", @"EOAdaptor");
return availableEncodingValue;
}
}
}
if (encodingName == nil)
{
stringEncoding = [NSString defaultCStringEncoding];
}
else
{
stringEncoding = [encodingValue intValue];
}
EOFLOGObjectFnStopOrCond2(@"AdaptorLevel", @"EOAdaptor");
return [NSString defaultCStringEncoding];
return stringEncoding;
}
- (id)fetchedValueForValue: (id)value