Rewrite version/availaibility constant code

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35380 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
rfm 2012-08-09 08:48:54 +00:00
parent 79bc10d5ea
commit a27fc66267

View file

@ -3788,8 +3788,10 @@ fail:
- (NSString*) parseVersion - (NSString*) parseVersion
{ {
static NSDictionary *known = nil;
unsigned i; unsigned i;
NSString *str; NSString *str;
NSString *tmp;
while (pos < length && [spaces characterIsMember: buffer[pos]] == YES) while (pos < length && [spaces characterIsMember: buffer[pos]] == YES)
{ {
@ -3816,49 +3818,27 @@ fail:
} }
str = [NSString stringWithCharacters: &buffer[i] length: pos - i]; str = [NSString stringWithCharacters: &buffer[i] length: pos - i];
} }
if ([str isEqualToString: @"GS_API_NONE"] == YES)
if (nil == known)
{ {
str = @"000000"; known = [[NSDictionary alloc] initWithObjectsAndKeys:
OBJC_STRINGIFY(GS_API_NONE), @"GS_API_NONE",
OBJC_STRINGIFY(GS_API_OSSPEC), @"GS_API_OSSPEC",
OBJC_STRINGIFY(GS_API_OPENSTEP), @"GS_API_OPENSTEP",
OBJC_STRINGIFY(GS_API_MACOSX), @"GS_API_MACOSX",
OBJC_STRINGIFY(MAC_OS_X_VERSION_10_1), @"MAC_OS_X_VERSION_10_1",
OBJC_STRINGIFY(MAC_OS_X_VERSION_10_2), @"MAC_OS_X_VERSION_10_2",
OBJC_STRINGIFY(MAC_OS_X_VERSION_10_3), @"MAC_OS_X_VERSION_10_3",
OBJC_STRINGIFY(MAC_OS_X_VERSION_10_4), @"MAC_OS_X_VERSION_10_4",
OBJC_STRINGIFY(MAC_OS_X_VERSION_10_5), @"MAC_OS_X_VERSION_10_5",
OBJC_STRINGIFY(MAC_OS_X_VERSION_10_6), @"MAC_OS_X_VERSION_10_6",
OBJC_STRINGIFY(GS_API_LATEST), @"GS_API_LATEST",
nil];
} }
else if ([str isEqualToString: @"GS_API_OSSPEC"] == YES) tmp = [known objectForKey: str];
if (nil != tmp)
{ {
str = @"010000"; str = tmp;
}
else if ([str isEqualToString: @"GS_API_OPENSTEP"] == YES)
{
str = @"040000";
}
else if ([str isEqualToString: @"GS_API_MACOSX"] == YES)
{
str = @"100000";
}
else if ([str isEqualToString: @"MAC_OS_X_VERSION_10_1"] == YES)
{
str = @"101000";
}
else if ([str isEqualToString: @"MAC_OS_X_VERSION_10_2"] == YES)
{
str = @"102000";
}
else if ([str isEqualToString: @"MAC_OS_X_VERSION_10_3"] == YES)
{
str = @"103000";
}
else if ([str isEqualToString: @"MAC_OS_X_VERSION_10_4"] == YES)
{
str = @"104000";
}
else if ([str isEqualToString: @"MAC_OS_X_VERSION_10_5"] == YES)
{
str = @"105000";
}
else if ([str isEqualToString: @"MAC_OS_X_VERSION_10_6"] == YES)
{
str = @"106000";
}
else if ([str isEqualToString: @"GS_API_LATEST"] == YES)
{
str = @"999999";
} }
i = [str intValue]; i = [str intValue];