diff --git a/ChangeLog b/ChangeLog index 62a5b563f..14ec7b98c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-02-19 Richard Frith-Macdonald + + * Source/NSConcreteNumber.h: Remove unused file + * Source/NSNumberMethods.h: + * Source/NSNumber.m: + * Source/GSNumberTypes.h: + Updates to match OSX behavior. + 2010-02-19 Richard Frith-Macdonald * configure.ac: Add check for ObjC2 support in runtime. diff --git a/Source/GSNumberTypes.h b/Source/GSNumberTypes.h index 982db2999..a2b270019 100644 --- a/Source/GSNumberTypes.h +++ b/Source/GSNumberTypes.h @@ -15,7 +15,6 @@ INTEGER_MACRO(signed char, char, Char) INTEGER_MACRO(int, int, Int) INTEGER_MACRO(short, short, Short) INTEGER_MACRO(long, long, Long) -INTEGER_MACRO(BOOL, bool, Bool) INTEGER_MACRO(NSInteger, integer, Integer) INTEGER_MACRO(NSUInteger, unsignedInteger, UnsignedInteger) INTEGER_MACRO(long long, longLong, LongLong) diff --git a/Source/NSConcreteNumber.h b/Source/NSConcreteNumber.h deleted file mode 100644 index 51273f244..000000000 --- a/Source/NSConcreteNumber.h +++ /dev/null @@ -1,105 +0,0 @@ -/* NSConcreteNumber - Interface for Concrete NSNumber classes - - Copyright (C) 1993,1994 Free Software Foundation, Inc. - - Written by: Adam Fedor - Date: Mar 1995 - - This file is part of the GNUstep Base Library. - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02111 USA. -*/ - -#import "Foundation/NSValue.h" - -@interface NSBoolNumber : NSNumber -{ - BOOL data; -} -@end - -@interface NSUCharNumber : NSNumber -{ - unsigned char data; -} -@end - -@interface NSCharNumber : NSNumber -{ - signed char data; -} -@end - -@interface NSUShortNumber : NSNumber -{ - unsigned short data; -} -@end - -@interface NSShortNumber : NSNumber -{ - signed short data; -} -@end - -@interface NSUIntNumber : NSNumber -{ - unsigned int data; -} -@end - -@interface NSIntNumber : NSNumber -{ - signed int data; -} -@end - -@interface NSULongNumber : NSNumber -{ - unsigned long data; -} -@end - -@interface NSLongNumber : NSNumber -{ - signed long data; -} -@end - -@interface NSULongLongNumber : NSNumber -{ - unsigned long long data; -} -@end - -@interface NSLongLongNumber : NSNumber -{ - signed long long data; -} -@end - -@interface NSFloatNumber : NSNumber -{ - float data; -} -@end - -@interface NSDoubleNumber : NSNumber -{ - double data; -} -@end - diff --git a/Source/NSNumber.m b/Source/NSNumber.m index 16357149a..d90250638 100644 --- a/Source/NSNumber.m +++ b/Source/NSNumber.m @@ -400,6 +400,12 @@ static Class NSDoubleNumberClass; #include "GSNumberTypes.h" +- (id) initWithBool: (BOOL)aValue +{ + [self release]; + return [[NSNumberClass numberWithBool: aValue] retain]; +} + /* * Macro for checking whether this value is the same as one of the singleton * instances. @@ -596,14 +602,8 @@ if (aValue >= -1 && aValue <= 12)\ - (id) copyWithZone: (NSZone *) aZone { - if (NSShouldRetainWithZone (self, aZone)) - { - return RETAIN (self); - } - else - { - return NSCopyObject (self, 0, aZone); - } + // OSX just returns the receive with no copy. + return RETAIN (self); } - (id) initWithCoder: (NSCoder *) coder @@ -643,6 +643,13 @@ if (aValue >= -1 && aValue <= 12)\ } #include "GSNumberTypes.h" + +- (BOOL) boolValue +{ + [self subclassResponsibility: _cmd]; + return NO; +} + - (NSDecimal) decimalValue { NSDecimalNumber *dn; diff --git a/Source/NSNumberMethods.h b/Source/NSNumberMethods.h index 7726accb9..325175d17 100644 --- a/Source/NSNumberMethods.h +++ b/Source/NSNumberMethods.h @@ -4,6 +4,10 @@ return (type)VALUE;\ } #include "GSNumberTypes.h" +- (BOOL) boolValue +{ + return (VALUE == 0) ? NO : YES; +} - (const char *) objCType { return @encode(typeof(VALUE));