From 9161ca8c5db8e5556d05286b08acc4278eb738ae Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Fri, 22 Apr 2011 12:44:37 -0700 Subject: [PATCH] fix behaviour of parse errors --- src/lake.c | 2 ++ src/parse.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lake.c b/src/lake.c index 07d7f8f..4bf7eaf 100644 --- a/src/lake.c +++ b/src/lake.c @@ -75,6 +75,8 @@ static LakeVal *prompt_read(Env *env, char *prompt) /* try to parse a naked call without parens (makes the repl more palatable) */ LakeList *list = parse_naked_list(buf, strlen(buf)); + if (!list) return NULL; + LakeVal *result; /* naked call */ diff --git a/src/parse.c b/src/parse.c index 49b2b55..476aaf6 100644 --- a/src/parse.c +++ b/src/parse.c @@ -82,8 +82,8 @@ LakeList *parse_naked_list(char *s, size_t n) LakeVal *val = _parse_expr(&ctx); if (val == VAL(PARSE_ERR)) { list_free(list); - list = NULL; ctx.i = ctx.n; + return NULL; } list_append(list, val); }