summaryrefslogtreecommitdiffstats
path: root/txr.c
diff options
context:
space:
mode:
Diffstat (limited to 'txr.c')
-rw-r--r--txr.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/txr.c b/txr.c
index cee8ac51..cd774de0 100644
--- a/txr.c
+++ b/txr.c
@@ -858,13 +858,19 @@ int txr_main(int argc, char **argv)
tprint));
val args_saved = or2(orig_args, arg_list);
val args_new;
+ val obj;
reg_varl(self_path_s, lit("cmdline-expr"));
reg_var(args_s, or2(orig_args, arg_list));
- pf(eval_intrinsic(lisp_parse(arg, std_error, colon_k,
- lit("cmdline-expr"), colon_k),
- make_env(bindings, nil, nil)), std_output);
+
+ obj = eval_intrinsic(lisp_parse(arg, std_error, colon_k,
+ lit("cmdline-expr"), colon_k),
+ make_env(bindings, nil, nil));
+ gc_hint(obj);
+ pf(z(obj), std_output);
+
evaled = t;
+
args_new = cdr(lookup_global_var(args_s));
if (args_new != args_saved) {
arg_list = args_new;