summaryrefslogtreecommitdiffstats
path: root/txr.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-05-07 18:36:54 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-05-07 18:36:54 -0700
commit5ad51d6a6df972d3d596061d3a72851ef1e1d12c (patch)
tree65290a8c734fc08611e39dbade4b9b57d498a0ae /txr.c
parent1b5b5d89bdd5ea53da8ca69abea82005ba350117 (diff)
downloadtxr-5ad51d6a6df972d3d596061d3a72851ef1e1d12c.tar.gz
txr-5ad51d6a6df972d3d596061d3a72851ef1e1d12c.tar.bz2
txr-5ad51d6a6df972d3d596061d3a72851ef1e1d12c.zip
*args*, *args-full* and self-path in listener.
* txr.c (txr_main): Register *args-full* variable before first branch to repl. In repl section, register or re-register *args* to any remaining args, and self-path to the string "listener".
Diffstat (limited to 'txr.c')
-rw-r--r--txr.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/txr.c b/txr.c
index ff2f903e..da7869c7 100644
--- a/txr.c
+++ b/txr.c
@@ -458,6 +458,14 @@ int txr_main(int argc, char **argv)
}
}
+ while (*argv)
+ arg_tail = list_collect(arg_tail, string_utf8(*argv++));
+
+ reg_var(intern(lit("*full-args*"), user_package), arg_list);
+ reg_var(intern(lit("*args-full*"), user_package), arg_list);
+
+ arg_list = cdr(arg_list);
+
if (argc <= 1) {
drop_privilege();
#if HAVE_TERMIOS
@@ -469,14 +477,6 @@ int txr_main(int argc, char **argv)
#endif
}
- while (*argv)
- arg_tail = list_collect(arg_tail, string_utf8(*argv++));
-
- reg_var(intern(lit("*full-args*"), user_package), arg_list);
- reg_var(intern(lit("*args-full*"), user_package), arg_list);
-
- arg_list = cdr(arg_list);
-
for (arg = upop(&arg_list, &arg_undo);
arg && car(arg) == chr('-');
arg = upop(&arg_list, &arg_undo))
@@ -903,6 +903,8 @@ repl:
lit("Note: operating in TXR ~a compatibility mode "
"due to environment variable.\n"),
num(opt_compat), nao);
+ reg_var(args_s, arg_list);
+ reg_varl(intern(lit("self-path"), user_package), lit("listener"));
repl(bindings, std_input, std_output);
#endif
return 0;