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.
+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.
 
      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)
 
 #include "symtab.h"
 #include "source.h"
 #include "terminal.h"
+#include "top.h"
 
 #include <ctype.h>
 #include <signal.h>
 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;