Make gdb_in_secondary_prompt_p() be per UI
gdb/ChangeLog: 2016-06-21 Pedro Alves <palves@redhat.com> * top.c (gdb_secondary_prompt_depth): Delete. (gdb_in_secondary_prompt_p): Add ui parameter. Use it. (gdb_readline_wrapper_cleanup, gdb_readline_wrapper): Adjust to per-UI gdb_secondary_prompt_depth. * top.h (struct ui) <secondary_prompt_depth>: New field.
This commit is contained in:
parent
b2d86570b3
commit
dbf30ca3f5
5 changed files with 23 additions and 15 deletions
|
@ -1,3 +1,11 @@
|
|||
2016-06-21 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* top.c (gdb_secondary_prompt_depth): Delete.
|
||||
(gdb_in_secondary_prompt_p): Add ui parameter. Use it.
|
||||
(gdb_readline_wrapper_cleanup, gdb_readline_wrapper): Adjust to
|
||||
per-UI gdb_secondary_prompt_depth.
|
||||
* top.h (struct ui) <secondary_prompt_depth>: New field.
|
||||
|
||||
2016-06-21 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* cli/cli-interp.c (cli_interpreter_pre_command_loop): New
|
||||
|
|
15
gdb/top.c
15
gdb/top.c
|
@ -757,17 +757,12 @@ static char *gdb_readline_wrapper_result;
|
|||
static void (*saved_after_char_processing_hook) (void);
|
||||
|
||||
|
||||
/* The number of nested readline secondary prompts that are currently
|
||||
active. */
|
||||
|
||||
static int gdb_secondary_prompt_depth = 0;
|
||||
|
||||
/* See top.h. */
|
||||
|
||||
int
|
||||
gdb_in_secondary_prompt_p (void)
|
||||
gdb_in_secondary_prompt_p (struct ui *ui)
|
||||
{
|
||||
return gdb_secondary_prompt_depth > 0;
|
||||
return ui->secondary_prompt_depth > 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -828,8 +823,8 @@ gdb_readline_wrapper_cleanup (void *arg)
|
|||
|
||||
gdb_readline_wrapper_result = NULL;
|
||||
gdb_readline_wrapper_done = 0;
|
||||
gdb_secondary_prompt_depth--;
|
||||
gdb_assert (gdb_secondary_prompt_depth >= 0);
|
||||
ui->secondary_prompt_depth--;
|
||||
gdb_assert (ui->secondary_prompt_depth >= 0);
|
||||
|
||||
after_char_processing_hook = saved_after_char_processing_hook;
|
||||
saved_after_char_processing_hook = NULL;
|
||||
|
@ -859,7 +854,7 @@ gdb_readline_wrapper (const char *prompt)
|
|||
|
||||
cleanup->target_is_async_orig = target_is_async_p ();
|
||||
|
||||
gdb_secondary_prompt_depth++;
|
||||
ui->secondary_prompt_depth++;
|
||||
back_to = make_cleanup (gdb_readline_wrapper_cleanup, cleanup);
|
||||
|
||||
if (cleanup->target_is_async_orig)
|
||||
|
|
|
@ -73,6 +73,10 @@ struct ui
|
|||
"start" -ex "next"') are processed. */
|
||||
int async;
|
||||
|
||||
/* The number of nested readline secondary prompts that are
|
||||
currently active. */
|
||||
int secondary_prompt_depth;
|
||||
|
||||
/* stdio stream that command input is being read from. Set to stdin
|
||||
normally. Set by source_command to the file we are sourcing.
|
||||
Set to NULL if we are executing a user-defined command or
|
||||
|
@ -190,9 +194,10 @@ extern char *get_prompt (void);
|
|||
by gdb for its command prompt. */
|
||||
extern void set_prompt (const char *s);
|
||||
|
||||
/* Return 1 if the current input handler is a secondary prompt, 0 otherwise. */
|
||||
/* Return 1 if UI's current input handler is a secondary prompt, 0
|
||||
otherwise. */
|
||||
|
||||
extern int gdb_in_secondary_prompt_p (void);
|
||||
extern int gdb_in_secondary_prompt_p (struct ui *ui);
|
||||
|
||||
/* From random places. */
|
||||
extern int readnow_symbol_files;
|
||||
|
|
|
@ -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
|
||||
&& !gdb_in_secondary_prompt_p ())
|
||||
&& !gdb_in_secondary_prompt_p (current_ui))
|
||||
tui_set_key_mode (TUI_SINGLE_KEY_MODE);
|
||||
|
||||
if (tui_current_key_mode == TUI_SINGLE_KEY_MODE)
|
||||
|
@ -585,7 +585,7 @@ tui_getc (FILE *fp)
|
|||
with empty lines with gdb prompt at beginning. Instead of that,
|
||||
stay on the same line but provide a visual effect to show the
|
||||
user we recognized the command. */
|
||||
if (rl_end == 0 && !gdb_in_secondary_prompt_p ())
|
||||
if (rl_end == 0 && !gdb_in_secondary_prompt_p (current_ui))
|
||||
{
|
||||
wmove (w, getcury (w), 0);
|
||||
|
||||
|
|
|
@ -304,7 +304,7 @@ tui_rl_startup_hook (void)
|
|||
{
|
||||
rl_already_prompted = 1;
|
||||
if (tui_current_key_mode != TUI_COMMAND_MODE
|
||||
&& !gdb_in_secondary_prompt_p ())
|
||||
&& !gdb_in_secondary_prompt_p (current_ui))
|
||||
tui_set_key_mode (TUI_SINGLE_KEY_MODE);
|
||||
tui_redisplay_readline ();
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue