TUI: check whether in secondary prompt instead of immediate_quit

As can be seen in the tui_redisplay_readline comment:

 "The command could call prompt_for_continue and we must not restore
 SingleKey so that the prompt and normal keymap are used."

immediate_quit is being used as proxy for "secondary prompt".

We have a better predicate nowadays, so use it.

gdb/ChangeLog:
2016-04-12  Pedro Alves  <palves@redhat.com>

	* tui/tui-io.c (tui_redisplay_readline): Check
	gdb_in_secondary_prompt_p instead of immediate_quit.
	* tui/tui.c: Include top.h.
	(tui_rl_startup_hook): Check gdb_in_secondary_prompt_p instead of
	immediate_quit.
This commit is contained in:
Pedro Alves 2016-04-12 16:49:29 +01:00
parent faa4ebe148
commit ab33ab13aa
3 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2016-04-12 Pedro Alves <palves@redhat.com>
* tui/tui-io.c (tui_redisplay_readline): Check
gdb_in_secondary_prompt_p instead of immediate_quit.
* tui/tui.c: Include top.h.
(tui_rl_startup_hook): Check gdb_in_secondary_prompt_p instead of
immediate_quit.
2016-04-12 Pedro Alves <palves@redhat.com>
* top.c (read_command_file): Inline command_loop here.

View File

@ -212,7 +212,7 @@ tui_redisplay_readline (void)
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)
&& !gdb_in_secondary_prompt_p ())
tui_set_key_mode (TUI_SINGLE_KEY_MODE);
if (tui_current_key_mode == TUI_SINGLE_KEY_MODE)

View File

@ -38,6 +38,7 @@
#include "symtab.h"
#include "source.h"
#include "terminal.h"
#include "top.h"
#include <ctype.h>
#include <signal.h>
@ -302,7 +303,8 @@ static int
tui_rl_startup_hook (void)
{
rl_already_prompted = 1;
if (tui_current_key_mode != TUI_COMMAND_MODE && immediate_quit == 0)
if (tui_current_key_mode != TUI_COMMAND_MODE
&& !gdb_in_secondary_prompt_p ())
tui_set_key_mode (TUI_SINGLE_KEY_MODE);
tui_redisplay_readline ();
return 0;