@@ -16,10 +16,12 @@ #include "config.h" #include #include + +#include #include #import "OFString+JSONValue.h" #import "OFArray.h" @@ -560,10 +562,14 @@ number = [OFNumber numberWithDouble: [string doubleValue]]; else if (isHex) number = [OFNumber numberWithIntMax: [string hexadecimalValue]]; + else if ([string isEqual: @"Infinity"]) + number = [OFNumber numberWithDouble: INFINITY]; + else if ([string isEqual: @"-Infinity"]) + number = [OFNumber numberWithDouble: -INFINITY]; else number = [OFNumber numberWithIntMax: [string decimalValue]]; } @finally { [string release]; @@ -627,12 +633,14 @@ case '5': case '6': case '7': case '8': case '9': + case '+': case '-': case '.': + case 'I': return parseNumber(pointer, stop, line); default: return nil; } }