From 7559646ada9556fbd62c583401a4ca753543f1c1 Mon Sep 17 00:00:00 2001 From: FelixBrendel Date: Tue, 10 Mar 2020 13:57:38 +0100 Subject: [PATCH] preven slime from exiting on repl error --- src/eval.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/eval.cpp b/src/eval.cpp index 7e630fd..7ca18bc 100644 --- a/src/eval.cpp +++ b/src/eval.cpp @@ -584,13 +584,21 @@ namespace Slime { Lisp_Object* parsed, * evaluated; while (true) { - delete_error(); + if (Globals::error) { + log_error(); + delete_error(); + } fputs("> ", stdout); line = read_expression(); - try_void parsed = Parser::parse_single_expression(line); + parsed = Parser::parse_single_expression(line); + if (Globals::error) { + continue; + } free(line); - try_void evaluated = eval_expr(parsed); - // try_void evaluated = eval_expr(parsed); + evaluated = eval_expr(parsed); + if (Globals::error) { + continue; + } if (evaluated && evaluated != Memory::nil) { print(evaluated); }