Fix conversion of integers base >= 14

This commit is contained in:
Domingo Alvarez Duarte 2016-03-21 23:11:46 +00:00
parent 6a4173aaa5
commit 9245970906

View File

@ -17,11 +17,12 @@ static bool str2num(const SQChar *s,SQObjectPtr &res,SQInteger base)
{
SQChar *end;
const SQChar *e = s;
SQBool isEIntBase = base > 13; //to fix error converting hexadecimals with e like 56f0791e
SQBool isfloat = SQFalse;
SQChar c;
while((c = *e) != _SC('\0'))
{
if(c == _SC('.') || c == _SC('E')|| c == _SC('e')) { //e and E is for scientific notation
if(c == _SC('.') || (!isEIntBase && (c == _SC('E')|| c == _SC('e')))) { //e and E is for scientific notation
isfloat = SQTrue;
break;
}