From: Tom Tromey Date: Sat, 22 Feb 2020 18:48:26 +0000 (-0700) Subject: Handle ambiguity in tui_partial_win_by_name X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e098d18cfc12c750616b7c934b9a9057f71f3553;p=binutils-gdb.git 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 * tui/tui-win.c (tui_partial_win_by_name): Handle ambiguity correctly. Change-Id: I59aaacd697eeab649164183457ef722dae58d60d --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 16daac356c5..feb58334b00 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-02-22 Tom Tromey + + * tui/tui-win.c (tui_partial_win_by_name): Handle ambiguity + correctly. + 2020-02-22 Tom Tromey * tui/tui-data.c (tui_next_win, tui_prev_win): Reimplement. diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index ef78e91b6fe..ea202757c88 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -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'. */