This fixes a regression introduced by 5800c9ed23a5c720843445d91c8547925493df8a.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46772 Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/vbscript/lex.c | 9 ++++++--- dlls/vbscript/tests/run.c | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/dlls/vbscript/lex.c b/dlls/vbscript/lex.c index fa467f04dc..739f3acd18 100644 --- a/dlls/vbscript/lex.c +++ b/dlls/vbscript/lex.c @@ -225,7 +225,7 @@ static int parse_string_literal(parser_ctx_t *ctx, const WCHAR **ret) int len = 0;
while(ctx->ptr < ctx->end) { - if(*ctx->ptr == '\n') { + if(*ctx->ptr == '\n' || *ctx->ptr == '\r') { FIXME("newline inside string literal\n"); return 0; } @@ -497,11 +497,14 @@ int parser_lex(void *lval, parser_ctx_t *ctx) ret = parse_next_token(lval, ctx); if(ret == '_') { skip_spaces(ctx); - if(*ctx->ptr != '\n') { + if(*ctx->ptr != '\n' && *ctx->ptr != '\r') { FIXME("'_' not followed by newline\n"); return 0; } - ctx->ptr++; + if(*ctx->ptr == '\r') + ctx->ptr++; + if(*ctx->ptr == '\n') + ctx->ptr++; continue; } if(ret != tNL || ctx->last_token != tNL) diff --git a/dlls/vbscript/tests/run.c b/dlls/vbscript/tests/run.c index 191f5a79a0..e3439e0df7 100644 --- a/dlls/vbscript/tests/run.c +++ b/dlls/vbscript/tests/run.c @@ -2397,6 +2397,9 @@ static void run_tests(void) SET_EXPECT(global_success_d); SET_EXPECT(global_success_i); parse_script_a("' comment\r" + "x = _\r3\r" + "x = _\n3\r" + "x = _\r\n3\r" "Sub testsub(arg)\r" "If arg = 1 Then\r\r" "Call reportSuccess()\n\n"