Esempio n. 1
0
/**
 * 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;
}
Esempio n. 2
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("", 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 = "\"";
}
Esempio n. 3
0
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;
}
Esempio n. 4
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;
}
Esempio n. 5
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";
}