From 31e8d4676ac8a358861626a7760ec6412c329057 Mon Sep 17 00:00:00 2001 From: nicm <nicm> Date: Mon, 13 Jan 2025 08:58:34 +0000 Subject: [PATCH] Count line numbers correctly inside strings, reported by Pedro Navarro in GitHub issue 4325. --- cmd-parse.y | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmd-parse.y b/cmd-parse.y index fbed727b..594e8cb3 100644 --- a/cmd-parse.y +++ b/cmd-parse.y @@ -1627,6 +1627,7 @@ yylex_token_tilde(char **buf, size_t *len) static char * yylex_token(int ch) { + struct cmd_parse_state *ps = &parse_state; char *buf; size_t len; enum { START, @@ -1650,9 +1651,12 @@ yylex_token(int ch) ch = '\r'; } } - if (state == NONE && ch == '\n') { - log_debug("%s: end at EOL", __func__); - break; + if (ch == '\n') { + if (state == NONE) { + log_debug("%s: end at EOL", __func__); + break; + } + ps->input->line++; } /* Whitespace or ; or } ends a token unless inside quotes. */