about summary refs log tree commit diff
path: root/mpick.c
diff options
context:
space:
mode:
authorDuncaen <mail@duncano.de>2019-01-28 15:41:29 +0100
committerLeah Neukirchen <chneukirchen@gmail.com>2020-05-15 18:41:13 +0200
commitd5afda072bc26583d85bb9868dc4611bc7038820 (patch)
tree0ebb77ef8da279d860aa6e006f0ab73583b27abc /mpick.c
parent4baa330b631136e981e9232a6adb7196cc6aa8da (diff)
downloadmblaze-d5afda072bc26583d85bb9868dc4611bc7038820.tar.gz
mblaze-d5afda072bc26583d85bb9868dc4611bc7038820.tar.xz
mblaze-d5afda072bc26583d85bb9868dc4611bc7038820.zip
mpick: better error for missing ) over multiple lines
Diffstat (limited to 'mpick.c')
-rw-r--r--mpick.c13
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);