Key-value update

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@9682 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2001-04-24 12:28:07 +00:00
parent 134e9d1184
commit 8b274732c5
2 changed files with 59 additions and 8 deletions

View file

@ -1,3 +1,8 @@
2001-04-24 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSObject.m: Fixes for string capitalisation in
key-value methods.
2001-04-23 Adam Fedor <fedor@gnu.org>
* configure.in: Simplify NeXT checks.

View file

@ -1922,13 +1922,26 @@ GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
unsigned size;
unsigned off;
NSString *name;
NSString *cap;
if ([[self class] useStoredAccessor] == NO)
{
return [self valueForKey: aKey];
}
name = [NSString stringWithFormat: @"_get%@", [aKey capitalizedString]];
size = [aKey length];
if (size < 1)
{
[NSException raise: NSInvalidArgumentException
format: @"storedValueForKey: ... empty key"];
}
cap = [[aKey substringToIndex: 1] uppercaseString];
if (size > 1)
{
cap = [cap stringByAppendingString: [aKey substringFromIndex: 1]];
}
name = [NSString stringWithFormat: @"_get%@", cap];
sel = NSSelectorFromString(name);
if (sel == 0 || [self respondsToSelector: sel] == NO)
{
@ -1952,8 +1965,7 @@ GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
}
if (type == NULL)
{
name = [NSString stringWithFormat: @"get%@",
[aKey capitalizedString]];
name = [NSString stringWithFormat: @"get%@", cap];
sel = NSSelectorFromString(name);
if (sel == 0 || [self respondsToSelector: sel] == NO)
{
@ -1985,7 +1997,18 @@ GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
return;
}
cap = [aKey capitalizedString];
size = [aKey length];
if (size < 1)
{
[NSException raise: NSInvalidArgumentException
format: @"takeStoredValue:forKey: ... empty key"];
}
cap = [[aKey substringToIndex: 1] uppercaseString];
if (size > 1)
{
cap = [cap stringByAppendingString: [aKey substringFromIndex: 1]];
}
name = [NSString stringWithFormat: @"_set%@:", cap];
type = NULL;
sel = NSSelectorFromString(name);
@ -2024,7 +2047,18 @@ GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
NSString *cap;
NSString *name;
cap = [aKey capitalizedString];
size = [aKey length];
if (size < 1)
{
[NSException raise: NSInvalidArgumentException
format: @"takeValue:forKey: ... empty key"];
}
cap = [[aKey substringToIndex: 1] uppercaseString];
if (size > 1)
{
cap = [cap stringByAppendingString: [aKey substringFromIndex: 1]];
}
name = [NSString stringWithFormat: @"set%@:", cap];
type = NULL;
sel = NSSelectorFromString(name);
@ -2094,12 +2128,25 @@ GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
- (id) valueForKey: (NSString*)aKey
{
SEL sel = 0;
NSString *cap;
NSString *name = nil;
const char *type = NULL;
unsigned size;
unsigned off;
name = [NSString stringWithFormat: @"get%@", [aKey capitalizedString]];
size = [aKey length];
if (size < 1)
{
[NSException raise: NSInvalidArgumentException
format: @"valueForKey: ... empty key"];
}
cap = [[aKey substringToIndex: 1] uppercaseString];
if (size > 1)
{
cap = [cap stringByAppendingString: [aKey substringFromIndex: 1]];
}
name = [@"get" stringByAppendingString: cap];
sel = NSSelectorFromString(name);
if (sel == 0 || [self respondsToSelector: sel] == NO)
{
@ -2107,8 +2154,7 @@ GSSetValue(NSObject *self, NSString *key, id val, SEL sel,
sel = NSSelectorFromString(name);
if (sel == 0 || [self respondsToSelector: sel] == NO)
{
name = [NSString stringWithFormat: @"_get%@",
[aKey capitalizedString]];
name = [@"_get" stringByAppendingString: cap];
sel = NSSelectorFromString(name);
if (sel == 0 || [self respondsToSelector: sel] == NO)
{