diff options
Diffstat (limited to 'gdb/tui')
-rw-r--r-- | gdb/tui/tui-io.c | 7 | ||||
-rw-r--r-- | gdb/tui/tui.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c index 2fb7bb4..29c1a2c 100644 --- a/gdb/tui/tui-io.c +++ b/gdb/tui/tui-io.c @@ -211,8 +211,11 @@ tui_redisplay_readline (void) /* 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) + mode. The restore must only be done if the command has finished. + The command could call prompt_for_continue and we must not + restore SingleKey so that the prompt and normal keymap are used. */ + if (tui_current_key_mode == TUI_ONE_COMMAND_MODE && rl_end == 0 + && immediate_quit == 0) tui_set_key_mode (TUI_SINGLE_KEY_MODE); if (tui_current_key_mode == TUI_SINGLE_KEY_MODE) diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c index 3e79b32..feec526 100644 --- a/gdb/tui/tui.c +++ b/gdb/tui/tui.c @@ -247,6 +247,10 @@ tui_rl_command_key (int count, int key) in the readline history which turns out to be better. */ rl_insert_text (tui_commands[i].cmd); rl_newline (1, '\n'); + + /* Switch to gdb command mode while executing the command. + This way the gdb's continue prompty will be displayed. */ + tui_set_key_mode (TUI_ONE_COMMAND_MODE); return 0; } } @@ -285,7 +289,7 @@ static int tui_rl_startup_hook (void) { rl_already_prompted = 1; - if (tui_current_key_mode != TUI_COMMAND_MODE) + if (tui_current_key_mode != TUI_COMMAND_MODE && immediate_quit == 0) tui_set_key_mode (TUI_SINGLE_KEY_MODE); tui_redisplay_readline (); return 0; |