hush: fix var_LINENO3.tests failure

function                                             old     new   delta
parse_and_run_string                                  40      62     +22
i_getch                                              105     102      -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 22/-3)              Total: 19 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2021-09-07 21:44:44 +02:00
parent bcff3a7b5a
commit 574b9c446d

View File

@ -2753,6 +2753,12 @@ static int i_getch(struct in_str *i)
if (ch != '\0') { if (ch != '\0') {
i->p++; i->p++;
i->last_char = ch; i->last_char = ch;
#if ENABLE_HUSH_LINENO_VAR
if (ch == '\n') {
G.parse_lineno++;
debug_printf_parse("G.parse_lineno++ = %u\n", G.parse_lineno);
}
#endif
return ch; return ch;
} }
return EOF; return EOF;
@ -7540,11 +7546,11 @@ static void parse_and_run_stream(struct in_str *inp, int end_trigger)
static void parse_and_run_string(const char *s) static void parse_and_run_string(const char *s)
{ {
struct in_str input; struct in_str input;
//IF_HUSH_LINENO_VAR(unsigned sv = G.parse_lineno;) IF_HUSH_LINENO_VAR(unsigned sv = G.parse_lineno;)
setup_string_in_str(&input, s); setup_string_in_str(&input, s);
parse_and_run_stream(&input, '\0'); parse_and_run_stream(&input, '\0');
//IF_HUSH_LINENO_VAR(G.parse_lineno = sv;) IF_HUSH_LINENO_VAR(G.parse_lineno = sv;)
} }
static void parse_and_run_file(HFILE *fp) static void parse_and_run_file(HFILE *fp)