gdb: Don't call tui_enable too early.
Calling tui_enable too early in tui_layout_command can leave the tui in an enabled state if the user has entered an invalid layout name. Instead postpone the call to tui_enable until later in tui_set_layout_for_display_command just before the layout is changed. gdb/ChangeLog: * tui/tui-layout.c (tui_layout_command): Move call to tui_enable into ... (tui_set_layout_for_display_command): ...here, before calling tui_set_layout. Only set the layout if gdb has not already entered the TUI_FAILURE state.
This commit is contained in:
parent
a014503004
commit
880d1e40c7
|
@ -1,3 +1,11 @@
|
||||||
|
2015-05-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
|
* tui/tui-layout.c (tui_layout_command): Move call to tui_enable
|
||||||
|
into ...
|
||||||
|
(tui_set_layout_for_display_command): ...here, before calling
|
||||||
|
tui_set_layout. Only set the layout if gdb has not already
|
||||||
|
entered the TUI_FAILURE state.
|
||||||
|
|
||||||
2015-05-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
2015-05-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* tui/tui-layout.c (layout_completer): New function.
|
* tui/tui-layout.c (layout_completer): New function.
|
||||||
|
|
|
@ -443,7 +443,12 @@ tui_set_layout_by_name (const char *layout_name)
|
||||||
else
|
else
|
||||||
status = TUI_FAILURE;
|
status = TUI_FAILURE;
|
||||||
|
|
||||||
tui_set_layout (new_layout);
|
if (status == TUI_SUCCESS)
|
||||||
|
{
|
||||||
|
/* Make sure the curses mode is enabled. */
|
||||||
|
tui_enable ();
|
||||||
|
tui_set_layout (new_layout);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
xfree (buf_ptr);
|
xfree (buf_ptr);
|
||||||
}
|
}
|
||||||
|
@ -492,9 +497,6 @@ extract_display_start_addr (struct gdbarch **gdbarch_p, CORE_ADDR *addr_p)
|
||||||
static void
|
static void
|
||||||
tui_layout_command (char *arg, int from_tty)
|
tui_layout_command (char *arg, int from_tty)
|
||||||
{
|
{
|
||||||
/* Make sure the curses mode is enabled. */
|
|
||||||
tui_enable ();
|
|
||||||
|
|
||||||
/* Switch to the selected layout. */
|
/* Switch to the selected layout. */
|
||||||
if (tui_set_layout_by_name (arg) != TUI_SUCCESS)
|
if (tui_set_layout_by_name (arg) != TUI_SUCCESS)
|
||||||
warning (_("Invalid layout specified.\n%s"), LAYOUT_USAGE);
|
warning (_("Invalid layout specified.\n%s"), LAYOUT_USAGE);
|
||||||
|
|
Loading…
Reference in New Issue