From e3da6fc58ac2eff07799864d80fce8aaf8e36b5d Mon Sep 17 00:00:00 2001 From: Stephane Carrez Date: Fri, 13 Sep 2002 20:06:56 +0000 Subject: [PATCH] * 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. --- gdb/tui/ChangeLog | 10 ++++++++++ gdb/tui/tui.c | 10 ++++++---- gdb/tui/tuiIO.c | 7 ++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/gdb/tui/ChangeLog b/gdb/tui/ChangeLog index be718aeecf..edff2bd9c0 100644 --- a/gdb/tui/ChangeLog +++ b/gdb/tui/ChangeLog @@ -1,3 +1,13 @@ +2002-09-13 Stephane Carrez + + * 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 * tuiIO.c (tui_setup_io): rl_already_prompted must be cleared diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 8bf467da28..81edd8b85c 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 2e3d79f2f4..f70df8f474 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 -- 2.34.1