/* Implementation of extension methods to base additions Copyright (C) 2010 Free Software Foundation, Inc. Written by: Richard Frith-Macdonald 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 "common.h" #include #import "GNUstepBase/NSNumber+GNUstepBase.h" /** * GNUstep specific (non-standard) additions to the NSNumber class. */ @implementation NSNumber(GNUstepBase) + (NSValue*) valueFromString: (NSString*)string { /* FIXME: implement this better */ const char *str; str = [string UTF8String]; if (strchr(str, '.') >= 0 || strchr(str, 'e') >= 0 || strchr(str, 'E') >= 0) return [NSNumber numberWithDouble: atof(str)]; else if (strchr(str, '-') >= 0) return [NSNumber numberWithInt: atoi(str)]; else return [NSNumber numberWithUnsignedInt: atoi(str)]; return [NSNumber numberWithInt: 0]; } @end