From d5afda072bc26583d85bb9868dc4611bc7038820 Mon Sep 17 00:00:00 2001 From: Duncaen Date: Mon, 28 Jan 2019 15:41:29 +0100 Subject: mpick: better error for missing ) over multiple lines --- mpick.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'mpick.c') diff --git a/mpick.c b/mpick.c index 1a6c810..71e27ee 100644 --- a/mpick.c +++ b/mpick.c @@ -381,11 +381,9 @@ static struct expr * parse_inner() { if (token("prune")) { - struct expr *e = mkexpr(EXPR_PRUNE); - return e; + return mkexpr(EXPR_PRUNE); } else if (token("print")) { - struct expr *e = mkexpr(EXPR_PRINT); - return e; + return mkexpr(EXPR_PRINT); } else if (token("skip")) { struct expr *e = mkexpr(EXPR_PRINT); struct expr *not = mkexpr(EXPR_NOT); @@ -396,11 +394,14 @@ parse_inner() struct expr *not = mkexpr(EXPR_NOT); not->a.expr = e; return not; - } else if (token("(")) { + } + if (peek("(")) { + struct pos savepos = { pos, line, linenr }; + (void) token("("); struct expr *e = parse_cond(); if (token(")")) return e; - parse_error("missing ) at '%.15s'", pos); + parse_error_at(&savepos, "unterminated ("); return 0; } else { parse_error("unknown expression at '%.15s'", pos); -- cgit 1.4.1