bc: tweak error messages

function                                             old     new   delta
bc_lex_token                                        1285    1299     +14

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-12-05 18:31:19 +01:00
parent 0064679915
commit 0d7e46b1de

View File

@ -2951,7 +2951,7 @@ static BcStatus bc_lex_identifier(BcLex *l)
// buf starts with keyword bc_lex_kws[i]
l->t.t = BC_LEX_KEY_1st_keyword + i;
if (!((1 << i) & POSIX_KWORD_MASK)) {
s = bc_posix_error_fmt("%sthe following keyword: '%.8s'", "POSIX does not allow ", bc_lex_kws[i].name8);
s = bc_posix_error_fmt("%sthe '%.8s' keyword", "POSIX does not allow ", bc_lex_kws[i].name8);
if (s) return s;
}
@ -2963,8 +2963,14 @@ static BcStatus bc_lex_identifier(BcLex *l)
s = bc_lex_name(l);
if (s) return s;
if (l->t.v.len > 2)
s = bc_posix_error_fmt("POSIX only allows one character names; the following is bad: '%s'", buf);
if (l->t.v.len > 2) {
// Prevent this:
// >>> qwe=1
// bc: POSIX only allows one character names; the following is bad: 'qwe=1
// '
unsigned len = strchrnul(buf, '\n') - buf;
s = bc_posix_error_fmt("POSIX only allows one character names; the following is bad: '%.*s'", len, buf);
}
return s;
}