57 #include "readline/readline.h" 83 {
'v',
"info locals" },
104 rl_prep_terminal (0);
109 rl_deprep_terminal ();
118 rl_prep_terminal (0);
125 rl_kill_text (0, rl_end);
134 rl_newline (1,
'\n');
265 rl_newline (1,
'\n');
284 return rl_insert (count, key);
307 rl_already_prompted = 1;
332 Keymap tui_ctlx_keymap;
341 tui_ctlx_keymap = rl_make_bare_keymap ();
347 rl_generic_bind (ISKMAP,
"\\C-x", (
char*) tui_ctlx_keymap,
tui_keymap);
351 for (i =
' '; i < 0x7f; i++)
390 term = getenv (
"TERM");
420 error (
_(
"Cannot enable the TUI when the interpreter is '%s'"),
interp);
425 error (
_(
"Cannot enable the TUI when output is not a terminal"));
427 s = newterm (NULL, stdout, stdin);
432 s = newterm ((
char *)
"unknown", stdout, stdin);
436 error (
_(
"Cannot enable the TUI: error opening terminal [TERM=%s]"),
444 cap = tigetstr ((
char *)
"cup");
445 if (cap == NULL || cap == (
char *) -1 || *cap ==
'\0')
449 error (
_(
"Cannot enable the TUI: " 450 "terminal doesn't support cursor addressing [TERM=%s]"),
478 clearok (stdscr, TRUE);
529 rl_already_prompted = 0;
563 const char *item_to_add)
565 if (item_to_add != (
char *) NULL && buf != (
char *) NULL)
567 if ((strlen (buf) + strlen (item_to_add)) <= buflen)
568 strcat (buf, item_to_add);
570 strncat (buf, item_to_add, (buflen - strlen (buf)));
577 #define CTRL(x) (x & ~0140) 581 #define CHK(val, dft) (val<=0 ? dft : val) 590 #if defined (TIOCGETC) 596 if (ldisc == NTTYDISC)
598 ioctl (FILEDES, TIOCGLTC, <c);
599 ltc.t_suspc =
CHK (ltc.t_suspc, CTRL (
'Z'));
600 ltc.t_dsuspc =
CHK (ltc.t_dsuspc, CTRL (
'Y'));
601 ltc.t_rprntc =
CHK (ltc.t_rprntc, CTRL (
'R'));
602 ltc.t_flushc =
CHK (ltc.t_flushc, CTRL (
'O'));
603 ltc.t_werasc =
CHK (ltc.t_werasc, CTRL (
'W'));
604 ltc.t_lnextc =
CHK (ltc.t_lnextc, CTRL (
'V'));
605 ioctl (FILEDES, TIOCSLTC, <c);
609 ioctl (FILEDES, TIOCGETC, &tbuf);
610 tbuf.t_intrc =
CHK (tbuf.t_intrc, CTRL (
'?'));
611 tbuf.t_quitc =
CHK (tbuf.t_quitc, CTRL (
'\\'));
612 tbuf.t_startc =
CHK (tbuf.t_startc, CTRL (
'Q'));
613 tbuf.t_stopc =
CHK (tbuf.t_stopc, CTRL (
'S'));
614 tbuf.t_eofc =
CHK (tbuf.t_eofc, CTRL (
'D'));
616 ioctl (FILEDES, TIOCSETC, &tbuf);
618 mode.sg_flags &= ~(RAW
622 | VTDELAY | ALLDELAY);
623 mode.sg_flags |= XTABS |
ECHO | CRMOD | ANYP;
662 unsigned int *height)
682 _(
"Enable TUI display mode."),
685 _(
"Disable TUI display mode."),
static Keymap tui_readline_standard_keymap
void tui_update_gdb_sizes(void)
void tui_set_term_height_to(int h)
int tui_get_command_dimension(unsigned int *width, unsigned int *height)
struct tui_win_info * tui_win_list[MAX_MAJOR_WINDOWS]
static const char * gdb_getenv_term(void)
void tui_refresh_data_win(void)
static int tui_rl_command_key(int count, int key)
int ui_file_isatty(struct ui_file *file)
struct symtab_and_line get_current_source_symtab_and_line(void)
static int tui_rl_other_window(int count, int key)
struct cmd_list_element * add_cmd(const char *name, enum command_class theclass, const char *doc, struct cmd_list_element **list)
static int tui_rl_startup_hook(void)
void tui_set_win_focus_to(struct tui_win_info *win_info)
void tui_redisplay_readline(void)
static int tui_rl_delete_other_windows(int notused1, int notused2)
void tui_update_locator_fullname(const char *fullname)
struct tui_win_info * tui_next_win(struct tui_win_info *cur_win)
static void tui_enable_command(const char *args, int from_tty)
void tui_refresh_all_win(void)
enum tui_status tui_set_layout(enum tui_layout_type layout_type)
void tui_set_term_width_to(int w)
void tui_install_hooks(void)
static int tui_rl_next_keymap(int notused1, int notused2)
void tui_set_key_mode(enum tui_key_mode mode)
#define CATCH(EXCEPTION, MASK)
struct tui_gen_win_info generic
void gdb_save_tty_state(void)
void tui_show_source(const char *fullname, int line)
static void tui_disable_command(const char *args, int from_tty)
void strcat_to_buf(char *buf, int buflen, const char *item_to_add)
void exception_print(struct ui_file *file, struct gdb_exception e)
struct tui_win_info * tui_win_with_focus(void)
void tui_initialize_readline(void)
struct frame_info * deprecated_safe_get_selected_frame(void)
int gdb_in_secondary_prompt_p(struct ui *ui)
void reinitialize_more_filter(void)
void tui_setup_io(int mode)
static int tui_rl_switch_mode(int notused1, int notused2)
void tui_add_win_to_layout(enum tui_win_type type)
void tui_set_win_resized_to(int resized)
struct cmd_list_element ** tui_get_cmd_list(void)
const char * interp_name(struct interp *interp)
void tui_show_locator_content(void)
void _initialize_tui(void)
void tui_update_source_windows_with_line(struct symtab *s, int line)
int tui_update_variables(void)
int tui_is_window_visible(enum tui_win_type type)
void tui_update_source_windows_with_addr(struct gdbarch *gdbarch, CORE_ADDR addr)
void tui_resize_all(void)
static int tui_rl_command_mode(int count, int key)
void tui_show_assembly(struct gdbarch *gdbarch, CORE_ADDR addr)
int tui_show_frame_info(struct frame_info *fi)
static const struct tui_char_command tui_commands[]
struct interp * top_level_interpreter(void)
static int tui_rl_change_windows(int notused1, int notused2)
int tui_win_resized(void)
enum tui_key_mode tui_current_key_mode
void error(const char *fmt,...)
static int tui_finish_init
void tui_remove_hooks(void)
enum tui_layout_type tui_current_layout(void)