diff options
-rw-r--r-- | gdb/tui/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/tui/tui.c | 10 | ||||
-rw-r--r-- | gdb/tui/tuiIO.c | 7 |
3 files changed, 22 insertions, 5 deletions
diff --git a/gdb/tui/ChangeLog b/gdb/tui/ChangeLog index be718ae..edff2bd 100644 --- a/gdb/tui/ChangeLog +++ b/gdb/tui/ChangeLog @@ -1,5 +1,15 @@ 2002-09-13 Stephane Carrez <stcarrez@nerim.fr> + * tui.c (tui_rl_switch_mode): Remove unecessary TUI switch printfs. + (tui_initialize_readline): Allow to use space to leave SingleKey + to enter one gdb command. + (tui_enable): Restore the TUI keymap when we are back to TUI. + (tui_disable): Restore normal keymap when leaving TUI. + * tuiIO.c (tui_redisplay_readline): Restore the SingleKey mode + when the buffer becomes empty and we are in tui_one_command_mode. + +2002-09-13 Stephane Carrez <stcarrez@nerim.fr> + * tuiIO.c (tui_setup_io): rl_already_prompted must be cleared when leaving TUI mode so that gdb prompt is displayed. diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 8bf467d..81edd8b 100644 --- a/gdb/tui/tui.c +++ b/gdb/tui/tui.c @@ -106,14 +106,11 @@ tui_rl_switch_mode (void) { tui_disable (); rl_prep_terminal (0); - - printf_filtered ("Left the TUI mode\n"); } else { rl_deprep_terminal (); tui_enable (); - printf_filtered ("Entered the TUI mode\n"); } /* Clear the readline in case switching occurred in middle of something. */ @@ -312,7 +309,7 @@ tui_initialize_readline () /* 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 = ' ' + 1; i < 0x7f; i++) + for (i = ' '; i < 0x7f; i++) { int j; @@ -399,6 +396,8 @@ tui_enable (void) if (selected_frame) tuiShowFrameInfo (selected_frame); + /* Restore TUI keymap. */ + tui_set_key_mode (tui_current_key_mode); refresh (); /* Update gdb's knowledge of its terminal. */ @@ -416,6 +415,9 @@ tui_disable (void) if (!tui_active) return; + /* Restore initial readline keymap. */ + rl_set_keymap (tui_readline_standard_keymap); + /* Remove TUI hooks. */ tui_remove_hooks (); rl_startup_hook = 0; diff --git a/gdb/tui/tuiIO.c b/gdb/tui/tuiIO.c index 2e3d79f..f70df8f 100644 --- a/gdb/tui/tuiIO.c +++ b/gdb/tui/tuiIO.c @@ -185,7 +185,12 @@ tui_redisplay_readline (void) WINDOW *w; char *prompt; int start_line; - + + /* Detect when we temporarily left SingleKey and now the readline + edit buffer is empty, automatically restore the SingleKey mode. */ + if (tui_current_key_mode == tui_one_command_mode && rl_end == 0) + tui_set_key_mode (tui_single_key_mode); + if (tui_current_key_mode == tui_single_key_mode) prompt = ""; else |