[haiku-commits] r35244 - haiku/trunk/src/kits/shared
- From: superstippi@xxxxxx
- To: haiku-commits@xxxxxxxxxxxxx
- Date: Fri, 22 Jan 2010 22:02:05 +0100 (CET)
Author: stippi
Date: 2010-01-22 22:02:04 +0100 (Fri, 22 Jan 2010)
New Revision: 35244
Changeset: http://dev.haiku-os.org/changeset/35244/haiku
Modified:
haiku/trunk/src/kits/shared/ExpressionParser.cpp
Log:
Fix parsing scientific notation in the form of 1E+6 or 1E-6.
Modified: haiku/trunk/src/kits/shared/ExpressionParser.cpp
===================================================================
--- haiku/trunk/src/kits/shared/ExpressionParser.cpp 2010-01-22 20:54:33 UTC
(rev 35243)
+++ haiku/trunk/src/kits/shared/ExpressionParser.cpp 2010-01-22 21:02:04 UTC
(rev 35244)
@@ -137,11 +137,22 @@
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 << '.';
Other related posts:
- » [haiku-commits] r35244 - haiku/trunk/src/kits/shared - superstippi