diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-05-19 20:38:11 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-05-19 20:38:11 -0700 |
commit | 9148406941f6633916d9f297dbde07459d30714c (patch) | |
tree | 18c9f0df18b305434be38bcb8c8caea4a881a785 /parser.c | |
parent | 1f8bf765519f3245fd646046f593ffd8ac215061 (diff) | |
download | txr-9148406941f6633916d9f297dbde07459d30714c.tar.gz txr-9148406941f6633916d9f297dbde07459d30714c.tar.bz2 txr-9148406941f6633916d9f297dbde07459d30714c.zip |
Implement listener variable for selection style.
* parser.c (listener_sel_inclusive_p_s): New symbol variable.
(repl): Install current value of *listener-sel-inclusive-p*
variable into linenoise.
(parse_init): Initialize the symbol variable and register
the Lisp special variable.
* txr.1: Documented special variable and selection mode
semantics.
Diffstat (limited to 'parser.c')
-rw-r--r-- | parser.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -53,7 +53,7 @@ #endif val parser_s, unique_s; -val listener_hist_len_s, listener_multi_line_p_s; +val listener_hist_len_s, listener_multi_line_p_s, listener_sel_inclusive_p_s; val intr_s; static val stream_parser_hash; @@ -667,6 +667,7 @@ val repl(val bindings, val in_stream, val out_stream) val old_sig_handler = set_sig_handler(num(SIGINT), func_n2(repl_intr)); val hist_len_var = lookup_global_var(listener_hist_len_s); val multi_line_var = lookup_global_var(listener_multi_line_p_s); + val sel_inclusive_var = lookup_global_var(listener_sel_inclusive_p_s); reg_varl(result_hash_sym, result_hash); @@ -693,7 +694,7 @@ val repl(val bindings, val in_stream, val out_stream) lino_hist_set_max_len(ls, c_num(cdr(hist_len_var))); lino_set_multiline(ls, cdr(multi_line_var) != nil); - + lino_set_selinclusive(ls, cdr(sel_inclusive_var) != nil); reg_varl(counter_sym, counter); reg_varl(var_counter_sym, var_counter); line_u8 = linenoise(ls, prompt_u8); @@ -818,6 +819,7 @@ void parse_init(void) intr_s = intern(lit("intr"), user_package); listener_hist_len_s = intern(lit("*listener-hist-len*"), user_package); listener_multi_line_p_s = intern(lit("*listener-multi-line-p*"), user_package); + listener_sel_inclusive_p_s = intern(lit("*listener-sel-inclusive-p*"), user_package); unique_s = gensym(nil); prot1(&stream_parser_hash); prot1(&unique_s); @@ -825,4 +827,5 @@ void parse_init(void) parser_l_init(); reg_var(listener_hist_len_s, num_fast(500)); reg_var(listener_multi_line_p_s, nil); + reg_var(listener_sel_inclusive_p_s, nil); } |