From 0131a9c47b6ceb36a03171661a50005569836c28 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Mon, 26 Aug 2019 17:04:32 +0200 Subject: [PATCH] vbscript: Suport + sign in exponential literals. Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/vbscript/lex.c | 5 ++++- dlls/vbscript/tests/lang.vbs | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dlls/vbscript/lex.c b/dlls/vbscript/lex.c index c628934610b..4bcf8103ea8 100644 --- a/dlls/vbscript/lex.c +++ b/dlls/vbscript/lex.c @@ -302,9 +302,12 @@ static int parse_numeric_literal(parser_ctx_t *ctx, void **ret) if(*ctx->ptr == 'e' || *ctx->ptr == 'E') { int e = 0, sign = 1; - if(*++ctx->ptr == '-') { + ctx->ptr++; + if(*ctx->ptr == '-') { ctx->ptr++; sign = -1; + }else if(*ctx->ptr == '+') { + ctx->ptr++; } if(!iswdigit(*ctx->ptr)) { diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs index 49c673a99be..6b458658446 100644 --- a/dlls/vbscript/tests/lang.vbs +++ b/dlls/vbscript/tests/lang.vbs @@ -41,6 +41,7 @@ Call ok(10. = 10, "10. <> 10") Call ok(&hffFFffFF& = -1, "&hffFFffFF& <> -1") Call ok(&hffFFffFF& = -1, "&hffFFffFF& <> -1") Call ok(34e5 = 3400000, "34e5 <> 3400000") +Call ok(34e+5 = 3400000, "34e+5 <> 3400000") Call ok(56.789e5 = 5678900, "56.789e5 = 5678900") Call ok(56.789e-2 = 0.56789, "56.789e-2 <> 0.56789") Call ok(1e-94938484 = 0, "1e-... <> 0") -- 2.11.4.GIT