@@ -176,18 +176,18 @@ [_lines addObject: comment]; } } -- (OFString *)stringForKey: (OFString *)key +- (OFString *)stringValueForKey: (OFString *)key { - return [self stringForKey: key - defaultValue: nil]; + return [self stringValueForKey: key + defaultValue: nil]; } -- (OFString *)stringForKey: (OFString *)key - defaultValue: (OFString *)defaultValue +- (OFString *)stringValueForKey: (OFString *)key + defaultValue: (OFString *)defaultValue { for (id line in _lines) { OFINICategoryPair *pair; if (![line isKindOfClass: [OFINICategoryPair class]]) @@ -200,16 +200,16 @@ } return defaultValue; } -- (long long)integerForKey: (OFString *)key - defaultValue: (long long)defaultValue +- (long long)longLongValueForKey: (OFString *)key + defaultValue: (long long)defaultValue { void *pool = objc_autoreleasePoolPush(); - OFString *value = [self stringForKey: key - defaultValue: nil]; + OFString *value = [self stringValueForKey: key + defaultValue: nil]; long long ret; if (value != nil) ret = [value longLongValueWithBase: 0]; else @@ -218,16 +218,16 @@ objc_autoreleasePoolPop(pool); return ret; } -- (bool)boolForKey: (OFString *)key - defaultValue: (bool)defaultValue +- (bool)boolValueForKey: (OFString *)key + defaultValue: (bool)defaultValue { void *pool = objc_autoreleasePoolPush(); - OFString *value = [self stringForKey: key - defaultValue: nil]; + OFString *value = [self stringValueForKey: key + defaultValue: nil]; bool ret; if (value != nil) { if ([value isEqual: @"true"]) ret = true; @@ -241,16 +241,16 @@ objc_autoreleasePoolPop(pool); return ret; } -- (float)floatForKey: (OFString *)key - defaultValue: (float)defaultValue +- (float)floatValueForKey: (OFString *)key + defaultValue: (float)defaultValue { void *pool = objc_autoreleasePoolPush(); - OFString *value = [self stringForKey: key - defaultValue: nil]; + OFString *value = [self stringValueForKey: key + defaultValue: nil]; float ret; if (value != nil) ret = value.floatValue; else @@ -259,16 +259,16 @@ objc_autoreleasePoolPop(pool); return ret; } -- (double)doubleForKey: (OFString *)key - defaultValue: (double)defaultValue +- (double)doubleValueForKey: (OFString *)key + defaultValue: (double)defaultValue { void *pool = objc_autoreleasePoolPush(); - OFString *value = [self stringForKey: key - defaultValue: nil]; + OFString *value = [self stringValueForKey: key + defaultValue: nil]; double ret; if (value != nil) ret = value.doubleValue; else @@ -277,11 +277,11 @@ objc_autoreleasePoolPop(pool); return ret; } -- (OFArray *)arrayForKey: (OFString *)key +- (OFArray OF_GENERIC(OFString *) *)stringValuesForKey: (OFString *)key { OFMutableArray *ret = [OFMutableArray array]; void *pool = objc_autoreleasePoolPush(); for (id line in _lines) { @@ -301,12 +301,12 @@ [ret makeImmutable]; return ret; } -- (void)setString: (OFString *)string - forKey: (OFString *)key +- (void)setStringValue: (OFString *)stringValue + forKey: (OFString *)key { void *pool = objc_autoreleasePoolPush(); OFINICategoryPair *pair; for (id line in _lines) { @@ -315,11 +315,11 @@ pair = line; if ([pair->_key isEqual: key]) { OFString *old = pair->_value; - pair->_value = [string copy]; + pair->_value = [stringValue copy]; [old release]; objc_autoreleasePoolPop(pool); return; @@ -330,11 +330,11 @@ pair->_key = nil; pair->_value = nil; @try { pair->_key = [key copy]; - pair->_value = [string copy]; + pair->_value = [stringValue copy]; [_lines addObject: pair]; } @catch (id e) { [pair->_key release]; [pair->_value release]; @@ -342,77 +342,78 @@ } objc_autoreleasePoolPop(pool); } -- (void)setInteger: (long long)integer - forKey: (OFString *)key -{ - void *pool = objc_autoreleasePoolPush(); - - [self setString: [OFString stringWithFormat: @"%lld", integer] - forKey: key]; - - objc_autoreleasePoolPop(pool); -} - -- (void)setBool: (bool)bool_ - forKey: (OFString *)key -{ - [self setString: (bool_ ? @"true" : @"false") - forKey: key]; -} - -- (void)setFloat: (float)float_ - forKey: (OFString *)key -{ - void *pool = objc_autoreleasePoolPush(); - - [self setString: [OFString stringWithFormat: @"%g", float_] - forKey: key]; - - objc_autoreleasePoolPop(pool); -} - -- (void)setDouble: (double)double_ - forKey: (OFString *)key -{ - void *pool = objc_autoreleasePoolPush(); - - [self setString: [OFString stringWithFormat: @"%g", double_] - forKey: key]; - - objc_autoreleasePoolPop(pool); -} - -- (void)setArray: (OFArray *)array - forKey: (OFString *)key +- (void)setLongLongValue: (long long)longLongValue + forKey: (OFString *)key +{ + void *pool = objc_autoreleasePoolPush(); + + [self setStringValue: [OFString stringWithFormat: @"%lld", + longLongValue] + forKey: key]; + + objc_autoreleasePoolPop(pool); +} + +- (void)setBoolValue: (bool)boolValue + forKey: (OFString *)key +{ + [self setStringValue: (boolValue ? @"true" : @"false") + forKey: key]; +} + +- (void)setFloatValue: (float)floatValue + forKey: (OFString *)key +{ + void *pool = objc_autoreleasePoolPush(); + + [self setStringValue: [OFString stringWithFormat: @"%g", floatValue] + forKey: key]; + + objc_autoreleasePoolPop(pool); +} + +- (void)setDoubleValue: (double)doubleValue + forKey: (OFString *)key +{ + void *pool = objc_autoreleasePoolPush(); + + [self setStringValue: [OFString stringWithFormat: @"%g", doubleValue] + forKey: key]; + + objc_autoreleasePoolPop(pool); +} + +- (void)setStringValues: (OFArray OF_GENERIC(OFString *) *)stringValues + forKey: (OFString *)key { void *pool; OFMutableArray *pairs; id const *lines; size_t count; bool replaced; - if (array.count == 0) { + if (stringValues.count == 0) { [self removeValueForKey: key]; return; } pool = objc_autoreleasePoolPush(); - pairs = [OFMutableArray arrayWithCapacity: array.count]; + pairs = [OFMutableArray arrayWithCapacity: stringValues.count]; - for (id object in array) { + for (OFString *stringValue in stringValues) { OFINICategoryPair *pair; - if (![object isKindOfClass: [OFString class]]) + if (![stringValue isKindOfClass: [OFString class]]) @throw [OFInvalidArgumentException exception]; pair = [[[OFINICategoryPair alloc] init] autorelease]; pair->_key = [key copy]; - pair->_value = [object copy]; + pair->_value = [stringValue copy]; [pairs addObject: pair]; } lines = _lines.objects; @@ -434,11 +435,11 @@ [_lines insertObjectsFromArray: pairs atIndex: i]; replaced = true; /* Continue after inserted pairs */ - i += array.count - 1; + i += stringValues.count - 1; } else i--; /* Continue at same position */ lines = _lines.objects; count = _lines.count;