From: Andrew Burgess Date: Wed, 20 May 2015 22:45:26 +0000 (+0200) Subject: gdb: Don't call tui_enable too early. X-Git-Tag: users/hjl/linux/release/2.25.51.0.3~1^2~10^2~24 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=880d1e40c771e4a389d0b29bf196b50f1b696ea9;p=thirdparty%2Fbinutils-gdb.git 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 84e6b25c23a..3c80d3a247c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2015-05-21 Andrew Burgess + + * 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 * tui/tui-layout.c (layout_completer): New function. diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index e3993ab9f11..abd9810c3ad 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -443,7 +443,12 @@ tui_set_layout_by_name (const char *layout_name) else 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); } @@ -492,9 +497,6 @@ extract_display_start_addr (struct gdbarch **gdbarch_p, CORE_ADDR *addr_p) static void tui_layout_command (char *arg, int from_tty) { - /* Make sure the curses mode is enabled. */ - tui_enable (); - /* Switch to the selected layout. */ if (tui_set_layout_by_name (arg) != TUI_SUCCESS) warning (_("Invalid layout specified.\n%s"), LAYOUT_USAGE);