@@ -341,11 +341,11 @@ @throw [OFInvalidFormatException \ exceptionWithClass: [self class]]; \ } @implementation OFNumber -+ (instancetype)numberWithBool: (BOOL)bool_ ++ (instancetype)numberWithBool: (bool)bool_ { return [[[self alloc] initWithBool: bool_] autorelease]; } + (instancetype)numberWithChar: (signed char)schar @@ -493,15 +493,15 @@ } abort(); } -- initWithBool: (BOOL)bool_ +- initWithBool: (bool)bool_ { self = [super init]; - _value.bool_ = (bool_ ? YES : NO); + _value.bool_ = bool_; _type = OF_NUMBER_BOOL; return self; } @@ -792,14 +792,14 @@ typeString = [[element attributeForName: @"type"] stringValue]; if ([typeString isEqual: @"boolean"]) { _type = OF_NUMBER_BOOL; - if ([[element stringValue] isEqual: @"YES"]) - _value.bool_ = YES; - else if ([[element stringValue] isEqual: @"NO"]) - _value.bool_ = NO; + if ([[element stringValue] isEqual: @"true"]) + _value.bool_ = true; + else if ([[element stringValue] isEqual: @"false"]) + _value.bool_ = false; else @throw [OFInvalidArgumentException exceptionWithClass: [self class] selector: _cmd]; } else if ([typeString isEqual: @"unsigned"]) { @@ -849,73 +849,13 @@ - (of_number_type_t)type { return _type; } -- (BOOL)boolValue -{ - switch (_type) { - case OF_NUMBER_BOOL: - return !!_value.bool_; - case OF_NUMBER_CHAR: - return !!_value.schar; - case OF_NUMBER_SHORT: - return !!_value.sshort; - case OF_NUMBER_INT: - return !!_value.sint; - case OF_NUMBER_LONG: - return !!_value.slong; - case OF_NUMBER_LONGLONG: - return !!_value.slonglong; - case OF_NUMBER_UCHAR: - return !!_value.uchar; - case OF_NUMBER_USHORT: - return !!_value.ushort; - case OF_NUMBER_UINT: - return !!_value.uint; - case OF_NUMBER_ULONG: - return !!_value.ulong; - case OF_NUMBER_ULONGLONG: - return !!_value.ulonglong; - case OF_NUMBER_INT8: - return !!_value.int8; - case OF_NUMBER_INT16: - return !!_value.int16; - case OF_NUMBER_INT32: - return !!_value.int32; - case OF_NUMBER_INT64: - return !!_value.int64; - case OF_NUMBER_UINT8: - return !!_value.uint8; - case OF_NUMBER_UINT16: - return !!_value.uint16; - case OF_NUMBER_UINT32: - return !!_value.uint32; - case OF_NUMBER_UINT64: - return !!_value.uint64; - case OF_NUMBER_SIZE: - return !!_value.size; - case OF_NUMBER_SSIZE: - return !!_value.ssize; - case OF_NUMBER_INTMAX: - return !!_value.intmax; - case OF_NUMBER_UINTMAX: - return !!_value.uintmax; - case OF_NUMBER_PTRDIFF: - return !!_value.ptrdiff; - case OF_NUMBER_INTPTR: - return !!_value.intptr; - case OF_NUMBER_UINTPTR: - return !!_value.uintptr; - case OF_NUMBER_FLOAT: - return !!_value.float_; - case OF_NUMBER_DOUBLE: - return !!_value.double_; - default: - @throw [OFInvalidFormatException - exceptionWithClass: [self class]]; - } +- (bool)boolValue +{ + RETURN_AS(bool) } - (signed char)charValue { RETURN_AS(signed char) @@ -1049,16 +989,16 @@ - (double)doubleValue { RETURN_AS(double) } -- (BOOL)isEqual: (id)object +- (bool)isEqual: (id)object { OFNumber *number; if (![object isKindOfClass: [OFNumber class]]) - return NO; + return false; number = object; if (_type & OF_NUMBER_FLOAT || number->_type & OF_NUMBER_FLOAT) return ([number doubleValue] == [self doubleValue]); @@ -1331,11 +1271,11 @@ { OFMutableString *ret; switch (_type) { case OF_NUMBER_BOOL: - return (_value.bool_ ? @"YES" : @"NO"); + return (_value.bool_ ? @"true" : @"false"); case OF_NUMBER_UCHAR: case OF_NUMBER_USHORT: case OF_NUMBER_UINT: case OF_NUMBER_ULONG: case OF_NUMBER_ULONGLONG: