diff options
author | Duncaen <mail@duncano.de> | 2019-01-28 15:41:29 +0100 |
---|---|---|
committer | Leah Neukirchen <chneukirchen@gmail.com> | 2020-05-15 18:41:13 +0200 |
commit | d5afda072bc26583d85bb9868dc4611bc7038820 (patch) | |
tree | 0ebb77ef8da279d860aa6e006f0ab73583b27abc | |
parent | 4baa330b631136e981e9232a6adb7196cc6aa8da (diff) | |
download | mblaze-d5afda072bc26583d85bb9868dc4611bc7038820.tar.gz mblaze-d5afda072bc26583d85bb9868dc4611bc7038820.tar.xz mblaze-d5afda072bc26583d85bb9868dc4611bc7038820.zip |
mpick: better error for missing ) over multiple lines
-rw-r--r-- | mpick.c | 13 |
1 files changed, 7 insertions, 6 deletions
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); |