diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-05-07 18:36:54 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-05-07 18:36:54 -0700 |
commit | 5ad51d6a6df972d3d596061d3a72851ef1e1d12c (patch) | |
tree | 65290a8c734fc08611e39dbade4b9b57d498a0ae /txr.c | |
parent | 1b5b5d89bdd5ea53da8ca69abea82005ba350117 (diff) | |
download | txr-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.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -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; |