Handle ambiguity in tui_partial_win_by_name

This changes tui_partial_win_by_name to correctly handle an ambiguous
name prefix.  This will be important once the user can register new
window types.

gdb/ChangeLog
2020-02-22  Tom Tromey  <tom@tromey.com>

	* tui/tui-win.c (tui_partial_win_by_name): Handle ambiguity
	correctly.

Change-Id: I59aaacd697eeab649164183457ef722dae58d60d
This commit is contained in:
Tom Tromey 2020-02-22 11:48:26 -07:00
parent eb9c887456
commit e098d18cfc
2 changed files with 16 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2020-02-22 Tom Tromey <tom@tromey.com>
* tui/tui-win.c (tui_partial_win_by_name): Handle ambiguity
correctly.
2020-02-22 Tom Tromey <tom@tromey.com>
* tui/tui-data.c (tui_next_win, tui_prev_win): Reimplement.

View File

@ -694,18 +694,27 @@ tui_scroll_right_command (const char *arg, int from_tty)
static struct tui_win_info *
tui_partial_win_by_name (gdb::string_view name)
{
struct tui_win_info *best = nullptr;
if (name != NULL)
{
for (tui_win_info *item : all_tui_windows ())
{
const char *cur_name = item->name ();
if (startswith (cur_name, name))
if (name == cur_name)
return item;
if (startswith (cur_name, name))
{
if (best != nullptr)
error (_("Window name \"%*s\" is ambiguous"),
(int) name.size (), name.data ());
best = item;
}
}
}
return NULL;
return best;
}
/* Set focus to the window named by 'arg'. */