From: Tom Tromey Date: Tue, 16 Jun 2020 23:55:57 +0000 (-0600) Subject: Fix C-x 1 from gdb prompt X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=39ec04904ff172dd67fd43ed3720f26d854732bf;p=binutils-gdb.git Fix C-x 1 from gdb prompt Pedro pointed out on irc that C-x 1 from the gdb prompt will cause a crash. This happened because of a bug in remove_windows -- it would always remove all the windows from the layout. This patch fixes this bug, and also arranges to have C-x 1 preserve the status window. gdb/ChangeLog 2020-06-16 Tom Tromey * tui/tui-layout.c (tui_layout_split::remove_windows): Fix logic. Also preserve the status window. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cb3761c1ba7..316b3fad288 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-06-16 Tom Tromey + + * tui/tui-layout.c (tui_layout_split::remove_windows): Fix logic. + Also preserve the status window. + 2020-06-16 Tom Tromey * python/py-tui.c (tui_py_window::~tui_py_window): Handle case diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 491ce275acb..b87d21eb6de 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -790,13 +790,14 @@ tui_layout_split::remove_windows (const char *name) const char *this_name = m_splits[i].layout->get_name (); if (this_name == nullptr) m_splits[i].layout->remove_windows (name); + else if (strcmp (this_name, name) == 0 + || strcmp (this_name, "cmd") == 0 + || strcmp (this_name, "status") == 0) + { + /* Keep. */ + } else { - if (strcmp (this_name, name) == 0 - || strcmp (this_name, "cmd") == 0) - { - /* Keep. */ - } m_splits.erase (m_splits.begin () + i); --i; }