summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parser.c10
-rw-r--r--txr.c5
2 files changed, 12 insertions, 3 deletions
diff --git a/parser.c b/parser.c
index aca71939..88e24475 100644
--- a/parser.c
+++ b/parser.c
@@ -667,7 +667,6 @@ val repl(val bindings, val in_stream, val out_stream)
lino_t *ls = lino_make(c_num(ifd), c_num(ofd));
char *line_u8 = 0;
char *prompt_u8 = 0;
- val repl_env = make_env(bindings, nil, nil);
val quit_k = intern(lit("quit"), keyword_package);
val read_k = intern(lit("read"), keyword_package);
val counter_sym = intern(lit("*n"), user_package);
@@ -686,6 +685,11 @@ val repl(val bindings, val in_stream, val out_stream)
val multi_line_var = lookup_global_var(listener_multi_line_p_s);
val sel_inclusive_var = lookup_global_var(listener_sel_inclusive_p_s);
+ for (; bindings; bindings = cdr(bindings)) {
+ val binding = car(bindings);
+ reg_varl(car(binding), cdr(binding));
+ }
+
reg_varl(result_hash_sym, result_hash);
lino_set_completion_cb(ls, provide_completions, 0);
@@ -761,8 +765,8 @@ val repl(val bindings, val in_stream, val out_stream)
done = t;
} else {
val value = if3(form != read_k,
- eval_intrinsic(form, repl_env),
- read_eval_ret_last(repl_env, prev_counter,
+ eval_intrinsic(form, nil),
+ read_eval_ret_last(nil, prev_counter,
in_stream, out_stream));
reg_varl(var_sym, value);
sethash(result_hash, var_counter, value);
diff --git a/txr.c b/txr.c
index 15abb5ed..c0c38852 100644
--- a/txr.c
+++ b/txr.c
@@ -979,6 +979,11 @@ int txr_main(int argc, char **argv)
}
}
+ for (; bindings; bindings = cdr(bindings)) {
+ val binding = car(bindings);
+ reg_varl(car(binding), cdr(binding));
+ }
+
{
val result = read_eval_stream(parse_stream, std_error, t);