summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-09-07 09:27:44 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-09-07 09:27:44 -0700
commitda4b3ef2f932606108aacb9d2e78ab0a9984e908 (patch)
tree552600efd2bbe1418bd61c9a0e511199e845aaf2
parenta31ad16733b6da5a45803a9482e330d17f690636 (diff)
downloadtxr-da4b3ef2f932606108aacb9d2e78ab0a9984e908.tar.gz
txr-da4b3ef2f932606108aacb9d2e78ab0a9984e908.tar.bz2
txr-da4b3ef2f932606108aacb9d2e78ab0a9984e908.zip
Store exception in repl variable.
* parser.c (repl): If an exception is caught, don't store nil in the repl result variable and hash. Rather, store a cons cell holding the exception symbol and arguments.
-rw-r--r--parser.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/parser.c b/parser.c
index 37255ae0..f06ccae2 100644
--- a/parser.c
+++ b/parser.c
@@ -566,8 +566,9 @@ val repl(val bindings, val in_stream, val out_stream)
}
uw_catch (exsym, exvals) {
- reg_varl(var_sym, nil);
- sethash(result_hash, var_counter, nil);
+ val exinfo = cons(exsym, exvals);
+ reg_varl(var_sym, exinfo);
+ sethash(result_hash, var_counter, exinfo);
lino_hist_add(ls, line_u8);
if (uw_exception_subtype_p(exsym, syntax_error_s)) {