Allow decimals, exponent numbers in expressions.

This commit is contained in:
antirez 2025-02-23 09:15:34 +01:00
parent d3ada8090f
commit ef24ab7821
1 changed files with 4 additions and 2 deletions

6
expr.c
View File

@ -246,8 +246,10 @@ void exprParseNumber(exprstate *es) {
es->current.token_type = EXPR_TOKEN_NUM;
char num[64];
int idx = 0;
while(isdigit(es->p[0]) || (idx == 0 && es->p[0] == '-')) {
if (idx >= sizeof(num)-1) {
while(isdigit(es->p[0]) || es->p[0] == '.' || es->p[0] == 'e' ||
es->p[0] == 'E' || (idx == 0 && es->p[0] == '-'))
{
if (idx >= (int)sizeof(num)-1) {
es->syntax_error++; // Number is too long.
break;
}