From: Francis De Brabandere <francisdb@gmail.com> --- dlls/vbscript/parser.y | 4 ++-- dlls/vbscript/tests/lang.vbs | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/dlls/vbscript/parser.y b/dlls/vbscript/parser.y index 20c30eed681..c5d2764562e 100644 --- a/dlls/vbscript/parser.y +++ b/dlls/vbscript/parser.y @@ -306,8 +306,8 @@ Step_opt | tSTEP Expression { $$ = $2; } IfStatement - : tIF Expression tTHEN tNL StatementsNl_opt ElseIfs_opt Else_opt tEND tIF - { $$ = new_if_statement(ctx, @$, $2, $5, $6, $7); CHECK_ERROR; } + : tIF Expression tTHEN tNL StSep_opt StatementsNl_opt ElseIfs_opt Else_opt tEND tIF + { $$ = new_if_statement(ctx, @$, $2, $6, $7, $8); CHECK_ERROR; } | tIF Expression tTHEN Statement EndIf_opt { $$ = new_if_statement(ctx, @$, $2, $4, NULL, NULL); CHECK_ERROR; } | tIF Expression tTHEN Statement tELSE Statement EndIf_opt { $$ = new_if_statement(ctx, @$, $2, $4, NULL, $6); CHECK_ERROR; } diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs index 0025bfeddcf..12d91a16548 100644 --- a/dlls/vbscript/tests/lang.vbs +++ b/dlls/vbscript/tests/lang.vbs @@ -359,6 +359,12 @@ ElseIf not False Then End If Call ok(x, "elseif not called?") +x = false +If true Then + :x = true +End If +Call ok(x, "colon-prefixed statement in If block not executed") + x = false if 1 then x = true Call ok(x, "if 1 not run?") -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10311