From 5ad51d6a6df972d3d596061d3a72851ef1e1d12c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 7 May 2016 18:36:54 -0700 Subject: *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". --- txr.c | 18 ++++++++++-------- 1 file 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; -- cgit v1.2.3