From: Igor Sysoev Date: Thu, 21 Jul 2016 18:42:58 +0000 (+0300) Subject: A line number in error messages was incorrect if a script X-Git-Tag: 0.1.0~2 X-Git-Url: http://www.kaiwu.me/postgresql/commit/?a=commitdiff_plain;h=f3c85540e7a91a7bea2fcde8cd3ce351cf9d5843;p=njs.git A line number in error messages was incorrect if a script has comments. --- diff --git a/njs/njs_lexer.c b/njs/njs_lexer.c index 94a0c914..3976c262 100644 --- a/njs/njs_lexer.c +++ b/njs/njs_lexer.c @@ -636,8 +636,9 @@ njs_lexer_division(njs_lexer_t *lexer, njs_token_t token) for (p = lexer->start; p < lexer->end; p++) { - if (*p == '\r' || *p == '\n') { + if (*p == '\n') { lexer->start = p + 1; + lexer->line++; return NJS_TOKEN_LINE_END; } } @@ -647,6 +648,11 @@ njs_lexer_division(njs_lexer_t *lexer, njs_token_t token) for (p = lexer->start; p < lexer->end; p++) { + if (*p == '\n') { + lexer->line++; + continue; + } + if (*p == '*') { p++; diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index a9ebabba..ca2f95db 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -52,6 +52,12 @@ static njs_unit_test_t njs_test[] = { nxt_string("var + a"), nxt_string("SyntaxError: Unexpected token \"+\" in 1") }, + { nxt_string("//\r\n; var + a"), + nxt_string("SyntaxError: Unexpected token \"+\" in 2") }, + + { nxt_string("/*\n*/; var + a"), + nxt_string("SyntaxError: Unexpected token \"+\" in 2") }, + { nxt_string("var \n a \n = 1; a"), nxt_string("1") },