static void init_rl(void) { rl_readline_name = "julia"; rl_attempted_completion_function = julia_completion; Keymap keymaps[] = {emacs_standard_keymap, vi_insertion_keymap}; int i; for (i = 0; i < sizeof(keymaps)/sizeof(keymaps[0]); i++) { rl_bind_key_in_map(' ', space_callback, keymaps[i]); rl_bind_key_in_map('\t', tab_callback, keymaps[i]); rl_bind_key_in_map('\r', return_callback, keymaps[i]); rl_bind_key_in_map('\n', newline_callback, keymaps[i]); rl_bind_key_in_map('\v', line_kill_callback, keymaps[i]); rl_bind_key_in_map('\b', backspace_callback, keymaps[i]); rl_bind_key_in_map('\001', line_start_callback, keymaps[i]); rl_bind_key_in_map('\005', line_end_callback, keymaps[i]); rl_bind_key_in_map('\002', left_callback, keymaps[i]); rl_bind_key_in_map('\006', right_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[A", up_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[B", down_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[D", left_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[C", right_callback, keymaps[i]); rl_bind_keyseq_in_map("\\C-d", delete_callback, keymaps[i]); } signal(SIGTSTP, sigtstp_handler); signal(SIGCONT, sigcont_handler); }
static void setup_readline(void) { rl_readline_name = "python"; /* Force rebind of TAB to insert-tab */ rl_bind_key('\t', rl_insert); /* Bind both ESC-TAB and ESC-ESC to the completion function */ rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); /* Set our completion function */ rl_attempted_completion_function = (CPPFunction *)flex_complete; /* Set Python word break characters */ rl_completer_word_break_characters = strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); /* All nonalphanums except '.' */ begidx = PyInt_FromLong(0L); endidx = PyInt_FromLong(0L); /* Initialize (allows .inputrc to override) * * XXX: A bug in the readline-2.2 library causes a memory leak * inside this function. Nothing we can do about it. */ rl_initialize(); }
static void init_rl(void) { rl_readline_name = "julia"; rl_attempted_completion_function = julia_completion; rl_completer_word_break_characters = " \t\n\"\\'`@$><=;|&{}()[],+-*/?%^~!"; Keymap keymaps[] = {emacs_standard_keymap, vi_insertion_keymap}; int i; for (i = 0; i < sizeof(keymaps)/sizeof(keymaps[0]); i++) { rl_bind_key_in_map(' ', space_callback, keymaps[i]); rl_bind_key_in_map('\t', tab_callback, keymaps[i]); rl_bind_key_in_map('\r', return_callback, keymaps[i]); rl_bind_key_in_map('\n', newline_callback, keymaps[i]); rl_bind_key_in_map('\v', line_kill_callback, keymaps[i]); rl_bind_key_in_map('\b', backspace_callback, keymaps[i]); rl_bind_key_in_map('\001', line_start_callback, keymaps[i]); rl_bind_key_in_map('\005', line_end_callback, keymaps[i]); rl_bind_key_in_map('\002', left_callback, keymaps[i]); rl_bind_key_in_map('\006', right_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[1~", line_start_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[4~", line_end_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[3~", delete_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[5~", rl_named_function("beginning-of-history"), keymaps[i]); rl_bind_keyseq_in_map("\e[6~", rl_named_function("end-of-history"), keymaps[i]); rl_bind_keyseq_in_map("\e[A", up_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[B", down_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[D", left_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[C", right_callback, keymaps[i]); rl_bind_keyseq_in_map("\\C-d", delete_callback, keymaps[i]); rl_bind_keyseq_in_map("\e\r", newline_callback, keymaps[i]); } #ifndef __WIN32__ signal(SIGTSTP, sigtstp_handler); signal(SIGCONT, sigcont_handler); #endif }
static void setup_readline(void) { #ifdef SAVE_LOCALE char *saved_locale = strdup(setlocale(LC_CTYPE, NULL)); if (!saved_locale) Py_FatalError("not enough memory to save locale"); #endif #ifdef __APPLE__ /* the libedit readline emulation resets key bindings etc * when calling rl_initialize. So call it upfront */ if (using_libedit_emulation) rl_initialize(); #endif /* __APPLE__ */ using_history(); rl_readline_name = "python"; #if defined(PYOS_OS2) && defined(PYCC_GCC) /* Allow $if term= in .inputrc to work */ rl_terminal_name = getenv("TERM"); #endif /* Force rebind of TAB to insert-tab */ rl_bind_key('\t', rl_insert); /* Bind both ESC-TAB and ESC-ESC to the completion function */ rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); /* Set our hook functions */ rl_startup_hook = (Function *)on_startup_hook; #ifdef HAVE_RL_PRE_INPUT_HOOK rl_pre_input_hook = (Function *)on_pre_input_hook; #endif /* Set our completion function */ rl_attempted_completion_function = (CPPFunction *)flex_complete; /* Set Python word break characters */ completer_word_break_characters = rl_completer_word_break_characters = strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); /* All nonalphanums except '.' */ begidx = PyLong_FromLong(0L); endidx = PyLong_FromLong(0L); /* Initialize (allows .inputrc to override) * * XXX: A bug in the readline-2.2 library causes a memory leak * inside this function. Nothing we can do about it. */ #ifdef __APPLE__ if (using_libedit_emulation) rl_read_init_file(NULL); else #endif /* __APPLE__ */ rl_initialize(); RESTORE_LOCALE(saved_locale) }
static void setup_readline(void) { #ifdef SAVE_LOCALE char *saved_locale = strdup(setlocale(LC_CTYPE, NULL)); if (!saved_locale) Py_FatalError("not enough memory to save locale"); #endif using_history(); rl_readline_name = "python"; #if defined(PYOS_OS2) && defined(PYCC_GCC) /* Allow $if term= in .inputrc to work */ rl_terminal_name = getenv("TERM"); #endif /* Force rebind of TAB to insert-tab */ rl_bind_key('\t', rl_insert); /* Bind both ESC-TAB and ESC-ESC to the completion function */ rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); /* Set our hook functions */ rl_startup_hook = (Function *)on_startup_hook; rl_event_hook = (Function *)on_event_hook; #ifdef HAVE_RL_PRE_INPUT_HOOK rl_pre_input_hook = (Function *)on_pre_input_hook; #endif /* Set our completion function */ rl_attempted_completion_function = (CPPFunction *)flex_complete; /* Set Python word break characters */ rl_completer_word_break_characters = strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); /* All nonalphanums except '.' */ #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER rl_completion_append_character ='\0'; #endif begidx = PyInt_FromLong(0L); endidx = PyInt_FromLong(0L); /* Initialize (allows .inputrc to override) * * XXX: A bug in the readline-2.2 library causes a memory leak * inside this function. Nothing we can do about it. */ rl_initialize(); #ifdef SAVE_LOCALE setlocale(LC_CTYPE, saved_locale); /* Restore locale */ free(saved_locale); #endif }
int init_readline(void) { #if RL_READLINE_VERSION >= 0x500 rl_bind_key_in_map(META('r'), cli_reset, emacs_standard_keymap); rl_bind_key_in_map(META('s'), cli_step, emacs_standard_keymap); rl_bind_key_in_map(META('k'), cli_skip, emacs_standard_keymap); #endif rl_attempted_completion_function = shell_completion; rl_callback_handler_install("", cli_handler); rl_basic_word_break_characters = "\t\n "; rl_completer_word_break_characters = "\t\n "; return 1; }
/* * Readline init. */ int initialize_readline(void) { rl_bind_key_in_map(META ('p'), cli_pwd, emacs_standard_keymap); rl_bind_key_in_map(META ('q'), cli_quit, emacs_standard_keymap); rl_bind_key_in_map(META ('s'), cli_status, emacs_standard_keymap); rl_bind_key_in_map(META ('v'), cli_verbose, emacs_standard_keymap); rl_readline_name = "ps4sh"; rl_attempted_completion_function = command_completion; rl_ignore_some_completions_function = filename_completion_ignore; if (strcmp(ps4sh_history, "") != 0) { if (read_history(ps4sh_history) != 0) { perror(ps4sh_history); } } rl_callback_handler_install(get_prompt(), cli_handler); return 0; }
static void init_rl(void) { rl_readline_name = "julia"; rl_completion_entry_function = do_completions; #if !defined(_WIN32) rl_sort_completion_matches = 0; #endif for(size_t i=0; lang_keywords[i]; i++) { // make sure keywords are in symbol table (void)jl_symbol(lang_keywords[i]); } rl_completer_word_break_characters = " \t\n\"\\'`$><=;|&{}()[],+-*/?%^~!:"; Keymap keymaps[] = {emacs_standard_keymap, vi_insertion_keymap}; int i; for (i = 0; i < sizeof(keymaps)/sizeof(keymaps[0]); i++) { rl_bind_key_in_map(' ', space_callback, keymaps[i]); rl_bind_key_in_map('\t', tab_callback, keymaps[i]); rl_bind_key_in_map('\r', return_callback, keymaps[i]); rl_bind_key_in_map('\n', newline_callback, keymaps[i]); rl_bind_key_in_map('\v', line_kill_callback, keymaps[i]); rl_bind_key_in_map('\b', backspace_callback, keymaps[i]); rl_bind_key_in_map('\001', line_start_callback, keymaps[i]); rl_bind_key_in_map('\005', line_end_callback, keymaps[i]); rl_bind_key_in_map('\002', left_callback, keymaps[i]); rl_bind_key_in_map('\006', right_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[1~", line_start_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[4~", line_end_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[3~", delete_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[5~", rl_named_function("beginning-of-history"), keymaps[i]); rl_bind_keyseq_in_map("\e[6~", rl_named_function("end-of-history"), keymaps[i]); rl_bind_keyseq_in_map("\e[A", up_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[B", down_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[D", left_callback, keymaps[i]); rl_bind_keyseq_in_map("\e[C", right_callback, keymaps[i]); rl_bind_keyseq_in_map("\\C-d", delete_callback, keymaps[i]); rl_bind_keyseq_in_map("\e\r", newline_callback, keymaps[i]); } #ifndef __WIN32__ signal(SIGTSTP, sigtstp_handler); signal(SIGCONT, sigcont_handler); #endif }
static void bindkey(int key, rl_command_func_t *function, const char *maplist) { char *mapnames[] = {"emacs-standard","emacs-ctlx","emacs-meta","vi-insert","vi-move","vi-command",NULL}; char **mapname; for (mapname = mapnames; *mapname; mapname++) if(strstr(maplist, *mapname)) { Keymap kmap = getmap(*mapname); DPRINTF4(DEBUG_READLINE,"Binding key %d (%s) in keymap '%s' to <0x%lx>", key, mangle_char_for_debug_log(key,TRUE), *mapname, (long) function); if (rl_bind_key_in_map(key, function, kmap)) myerror(FATAL|NOERRNO, "Could not bind key %d (%s) in keymap '%s'", key, mangle_char_for_debug_log(key,TRUE), *mapname); } }
/* Initialize readline and configure the keymap for the switching key shortcut. */ void tui_initialize_readline (void) { int i; Keymap tui_ctlx_keymap; rl_initialize (); rl_add_defun ("tui-switch-mode", tui_rl_switch_mode, -1); rl_add_defun ("gdb-command", tui_rl_command_key, -1); rl_add_defun ("next-keymap", tui_rl_next_keymap, -1); tui_keymap = rl_make_bare_keymap (); tui_ctlx_keymap = rl_make_bare_keymap (); tui_readline_standard_keymap = rl_get_keymap (); for (i = 0; tui_commands[i].cmd; i++) rl_bind_key_in_map (tui_commands[i].key, tui_rl_command_key, tui_keymap); rl_generic_bind (ISKMAP, "\\C-x", (char*) tui_ctlx_keymap, tui_keymap); /* Bind all other keys to tui_rl_command_mode so that we switch temporarily from SingleKey mode and can enter a gdb command. */ for (i = ' '; i < 0x7f; i++) { int j; for (j = 0; tui_commands[j].cmd; j++) if (tui_commands[j].key == i) break; if (tui_commands[j].cmd) continue; rl_bind_key_in_map (i, tui_rl_command_mode, tui_keymap); } rl_bind_key_in_map ('a', tui_rl_switch_mode, emacs_ctlx_keymap); rl_bind_key_in_map ('a', tui_rl_switch_mode, tui_ctlx_keymap); rl_bind_key_in_map ('A', tui_rl_switch_mode, emacs_ctlx_keymap); rl_bind_key_in_map ('A', tui_rl_switch_mode, tui_ctlx_keymap); rl_bind_key_in_map (CTRL ('A'), tui_rl_switch_mode, emacs_ctlx_keymap); rl_bind_key_in_map (CTRL ('A'), tui_rl_switch_mode, tui_ctlx_keymap); rl_bind_key_in_map ('1', tui_rl_delete_other_windows, emacs_ctlx_keymap); rl_bind_key_in_map ('1', tui_rl_delete_other_windows, tui_ctlx_keymap); rl_bind_key_in_map ('2', tui_rl_change_windows, emacs_ctlx_keymap); rl_bind_key_in_map ('2', tui_rl_change_windows, tui_ctlx_keymap); rl_bind_key_in_map ('o', tui_rl_other_window, emacs_ctlx_keymap); rl_bind_key_in_map ('o', tui_rl_other_window, tui_ctlx_keymap); rl_bind_key_in_map ('q', tui_rl_next_keymap, tui_keymap); rl_bind_key_in_map ('s', tui_rl_next_keymap, emacs_ctlx_keymap); rl_bind_key_in_map ('s', tui_rl_next_keymap, tui_ctlx_keymap); }
static void setup_readline(readlinestate *mod_state) { #ifdef SAVE_LOCALE char *saved_locale = strdup(setlocale(LC_CTYPE, NULL)); if (!saved_locale) Py_FatalError("not enough memory to save locale"); #endif #ifdef __APPLE__ /* the libedit readline emulation resets key bindings etc * when calling rl_initialize. So call it upfront */ if (using_libedit_emulation) rl_initialize(); /* Detect if libedit's readline emulation uses 0-based * indexing or 1-based indexing. */ add_history("1"); if (history_get(1) == NULL) { libedit_history_start = 0; } else { libedit_history_start = 1; } clear_history(); #endif /* __APPLE__ */ using_history(); rl_readline_name = "python"; /* Force rebind of TAB to insert-tab */ rl_bind_key('\t', rl_insert); /* Bind both ESC-TAB and ESC-ESC to the completion function */ rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); #ifdef HAVE_RL_RESIZE_TERMINAL /* Set up signal handler for window resize */ sigwinch_ohandler = PyOS_setsig(SIGWINCH, readline_sigwinch_handler); #endif /* Set our hook functions */ rl_startup_hook = on_startup_hook; #ifdef HAVE_RL_PRE_INPUT_HOOK rl_pre_input_hook = on_pre_input_hook; #endif /* Set our completion function */ rl_attempted_completion_function = flex_complete; /* Set Python word break characters */ completer_word_break_characters = rl_completer_word_break_characters = strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); /* All nonalphanums except '.' */ mod_state->begidx = PyLong_FromLong(0L); mod_state->endidx = PyLong_FromLong(0L); #ifdef __APPLE__ if (!using_libedit_emulation) #endif { if (!isatty(STDOUT_FILENO)) { /* Issue #19884: stdout is not a terminal. Disable meta modifier keys to not write the ANSI sequence "\033[1034h" into stdout. On terminals supporting 8 bit characters like TERM=xterm-256color (which is now the default Fedora since Fedora 18), the meta key is used to enable support of 8 bit characters (ANSI sequence "\033[1034h"). With libedit, this call makes readline() crash. */ rl_variable_bind ("enable-meta-key", "off"); } } /* Initialize (allows .inputrc to override) * * XXX: A bug in the readline-2.2 library causes a memory leak * inside this function. Nothing we can do about it. */ #ifdef __APPLE__ if (using_libedit_emulation) rl_read_init_file(NULL); else #endif /* __APPLE__ */ rl_initialize(); RESTORE_LOCALE(saved_locale) }