Fix parsing scientific notation in the form of 1E+6 or 1E-6.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35244 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2010-01-22 21:02:04 +00:00
parent e54d40e826
commit f88faf25fb
+13 -2
View File
@@ -137,11 +137,22 @@ class Tokenizer {
BString temp;
const char* begin = fCurrentChar;
bool expectE = true;
bool expectPlusOfMinus = false;
while (*fCurrentChar != 0) {
if (!isdigit(*fCurrentChar)) {
if (!(*fCurrentChar == '.' || *fCurrentChar == ','
|| *fCurrentChar == 'e' || *fCurrentChar == 'E'))
if (*fCurrentChar == 'e' || *fCurrentChar == 'E') {
if (!expectE)
break;
expectE = false;
expectPlusOfMinus = true;
} else if (*fCurrentChar == '+' || *fCurrentChar == '-') {
if (!expectPlusOfMinus)
break;
} else if (!(*fCurrentChar == '.' || *fCurrentChar == ','))
break;
else
expectPlusOfMinus = false;
}
if (*fCurrentChar == ',')
temp << '.';