/** * Readline init * @return success */ extern int readline_init() { rl_readline_name = READLINE_NAME; rl_attempted_completion_function = completion; if (rl_bind_keyseq(KEYSEQ_NEWLINE, newline) != 0) { return -1; } if (rl_bind_keyseq(KEYSEQ_TERMINATE, terminate) != 0) { return -1; } return 0; }
// Set everything up void gnu_readline_init() { using_history(); rl_bind_key(')', gnu_readline_paren_bounce); rl_bind_key(']', gnu_readline_paren_bounce); #if 0 rl_bind_keyseq("[D", highlight_paren); #endif rl_completion_entry_function = &gnu_readline_tab_complete; rl_variable_bind("rl_catch_signals", 0); rl_clear_signals(); rl_set_signals(); rl_completer_quote_characters = "\""; }
static int _inp_rl_startup_hook(void) { rl_bind_keyseq("\\e1", _inp_rl_win1_handler); rl_bind_keyseq("\\e2", _inp_rl_win2_handler); rl_bind_keyseq("\\e3", _inp_rl_win3_handler); rl_bind_keyseq("\\e4", _inp_rl_win4_handler); rl_bind_keyseq("\\e5", _inp_rl_win5_handler); rl_bind_keyseq("\\e6", _inp_rl_win6_handler); rl_bind_keyseq("\\e7", _inp_rl_win7_handler); rl_bind_keyseq("\\e8", _inp_rl_win8_handler); rl_bind_keyseq("\\e9", _inp_rl_win9_handler); rl_bind_keyseq("\\e0", _inp_rl_win0_handler); rl_bind_keyseq("\\eOP", _inp_rl_win1_handler); rl_bind_keyseq("\\eOQ", _inp_rl_win2_handler); rl_bind_keyseq("\\eOR", _inp_rl_win3_handler); rl_bind_keyseq("\\eOS", _inp_rl_win4_handler); rl_bind_keyseq("\\e[15~", _inp_rl_win5_handler); rl_bind_keyseq("\\e[17~", _inp_rl_win6_handler); rl_bind_keyseq("\\e[18~", _inp_rl_win7_handler); rl_bind_keyseq("\\e[19~", _inp_rl_win8_handler); rl_bind_keyseq("\\e[20~", _inp_rl_win9_handler); rl_bind_keyseq("\\e[21~", _inp_rl_win0_handler); rl_bind_keyseq("\\e[1;9D", _inp_rl_altleft_handler); rl_bind_keyseq("\\e[1;3D", _inp_rl_altleft_handler); rl_bind_keyseq("\\e\\e[D", _inp_rl_altleft_handler); rl_bind_keyseq("\\e[1;9C", _inp_rl_altright_handler); rl_bind_keyseq("\\e[1;3C", _inp_rl_altright_handler); rl_bind_keyseq("\\e\\e[C", _inp_rl_altright_handler); rl_bind_keyseq("\\e\\e[5~", _inp_rl_altpageup_handler); rl_bind_keyseq("\\e[5;3~", _inp_rl_altpageup_handler); rl_bind_keyseq("\\e\\eOy", _inp_rl_altpageup_handler); rl_bind_keyseq("\\e\\e[6~", _inp_rl_altpagedown_handler); rl_bind_keyseq("\\e[6;3~", _inp_rl_altpagedown_handler); rl_bind_keyseq("\\e\\eOs", _inp_rl_altpagedown_handler); rl_bind_keyseq("\\e[5~", _inp_rl_pageup_handler); rl_bind_keyseq("\\eOy", _inp_rl_pageup_handler); rl_bind_keyseq("\\e[6~", _inp_rl_pagedown_handler); rl_bind_keyseq("\\eOs", _inp_rl_pagedown_handler); rl_bind_key('\t', _inp_rl_tab_handler); rl_bind_key(CTRL('L'), _inp_rl_clear_handler); return 0; }
static int _inp_rl_startup_hook(void) { rl_bind_keyseq("\\e1", _inp_rl_win_1_handler); rl_bind_keyseq("\\e2", _inp_rl_win_2_handler); rl_bind_keyseq("\\e3", _inp_rl_win_3_handler); rl_bind_keyseq("\\e4", _inp_rl_win_4_handler); rl_bind_keyseq("\\e5", _inp_rl_win_5_handler); rl_bind_keyseq("\\e6", _inp_rl_win_6_handler); rl_bind_keyseq("\\e7", _inp_rl_win_7_handler); rl_bind_keyseq("\\e8", _inp_rl_win_8_handler); rl_bind_keyseq("\\e9", _inp_rl_win_9_handler); rl_bind_keyseq("\\e0", _inp_rl_win_0_handler); rl_bind_keyseq("\\eOP", _inp_rl_win_1_handler); rl_bind_keyseq("\\eOQ", _inp_rl_win_2_handler); rl_bind_keyseq("\\eOR", _inp_rl_win_3_handler); rl_bind_keyseq("\\eOS", _inp_rl_win_4_handler); rl_bind_keyseq("\\e[15~", _inp_rl_win_5_handler); rl_bind_keyseq("\\e[17~", _inp_rl_win_6_handler); rl_bind_keyseq("\\e[18~", _inp_rl_win_7_handler); rl_bind_keyseq("\\e[19~", _inp_rl_win_8_handler); rl_bind_keyseq("\\e[20~", _inp_rl_win_9_handler); rl_bind_keyseq("\\e[21~", _inp_rl_win_0_handler); rl_bind_keyseq("\\e[1;9D", _inp_rl_win_prev_handler); rl_bind_keyseq("\\e[1;3D", _inp_rl_win_prev_handler); rl_bind_keyseq("\\e\\e[D", _inp_rl_win_prev_handler); rl_bind_keyseq("\\e[1;9C", _inp_rl_win_next_handler); rl_bind_keyseq("\\e[1;3C", _inp_rl_win_next_handler); rl_bind_keyseq("\\e\\e[C", _inp_rl_win_next_handler); rl_bind_keyseq("\\e\\e[5~", _inp_rl_subwin_pageup_handler); rl_bind_keyseq("\\e[5;3~", _inp_rl_subwin_pageup_handler); rl_bind_keyseq("\\e\\eOy", _inp_rl_subwin_pageup_handler); rl_bind_keyseq("\\e\\e[6~", _inp_rl_subwin_pagedown_handler); rl_bind_keyseq("\\e[6;3~", _inp_rl_subwin_pagedown_handler); rl_bind_keyseq("\\e\\eOs", _inp_rl_subwin_pagedown_handler); rl_bind_keyseq("\\e[5~", _inp_rl_win_pageup_handler); rl_bind_keyseq("\\eOy", _inp_rl_win_pageup_handler); rl_bind_keyseq("\\e[6~", _inp_rl_win_pagedown_handler); rl_bind_keyseq("\\eOs", _inp_rl_win_pagedown_handler); rl_bind_key('\t', _inp_rl_tab_handler); // unbind unwanted mappings rl_bind_keyseq("\\e=", NULL); // disable readline completion rl_variable_bind("disable-completion", "on"); // check for and load ~/.config/profanity/inputrc char *inputrc = prefs_get_inputrc(); if (inputrc) { rl_read_init_file(inputrc); free(inputrc); } return 0; }
/* * initial setup to set the readline library working */ void initialize_readline (int with_no_display_device) { //FIX ME /* Allow conditional parsing of the ~/.inputrc file. */ rl_readline_name = "fim"; //?? /* Tell the completer that we want a crack first. */ rl_attempted_completion_function = fim_completion; rl_completion_display_matches_hook=completion_display_matches_hook; if(with_no_display_device==0) { rl_catch_signals=0; rl_catch_sigwinch=0; rl_redisplay_function=redisplay; rl_event_hook=redisplay_hook; rl_pre_input_hook=redisplay_hook; } #if defined(FIM_WITH_LIBSDL) || defined(FIM_WITH_AALIB) if( g_fim_output_device=="sdl" /* only useful to bypass X11-windowed aalib (but sadly, breaks plain aalib input) */ /*|| g_fim_output_device=="aa" */ ) { rl_getc_function=rl_sdl_getc; rl_event_hook =rl_sdl_getc_hook; /* * FIXME : The following hack uses SDLK_UP, SDLK_DOWN, SDLK_LEFT, SDLK_RIGHT, all -0x100 .. * (/usr/include/SDL/SDL_keysym.h) * * Regard this as a problem. */ rl_bind_keyseq("\x11", rl_get_previous_history); // up rl_bind_keyseq("\x12", rl_get_next_history); // down rl_bind_keyseq("\x13", rl_forward_char); // right rl_bind_keyseq("\x14", rl_backward_char); // left } #endif //rl_completion_entry_function=NULL; /* * to do: * see rl_filename_quoting_function .. * */ //rl_inhibit_completion=1; //if set, TABs are read as normal characters rl_filename_quoting_desired=1; rl_filename_quote_characters="\""; //rl_reset_terminal("linux"); //rl_reset_terminal("vt100"); //rl_bind_key(0x09,fim_rl_end); //rl_bind_key(0x7F,fim_rl_end); //rl_bind_key(-1,fim_rl_end); //rl_bind_key('~',fim_rl_end); // .. //rl_bind_key('\t',rl_insert); //rl_bind_keyseq("g",fim_rl_end); //rl_set_prompt("$"); rl_bind_key(0x1B, rl_newline); //add by chris for ESC /* rl_voidfunc_t *rl_redisplay_function=redisplay; rl_hook_func_t *rl_event_hook=redisplay_hook; rl_hook_func_t *rl_pre_input_hook=redisplay_hook;*/ //std::cout << "readline initialized\n"; }