From 78e8cb91cd1374ac59cc8bf6509fa70bde74ff1a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 23 Jul 2019 16:01:03 -0600 Subject: Change TUI window commands to be case-sensitive The TUI window-related commands like "focus" are case insensitive. This is not the norm in gdb, and I don't see a good reason to have it here. This patch changes the TUI to be case sensitive, like the rest of gdb. gdb/ChangeLog 2019-09-20 Tom Tromey * NEWS: Mention case-sensitivity of TUI commands. * tui/tui-win.c (tui_set_focus_command): Now case-sensitive. (tui_set_win_height_command, parse_scrolling_args): Likewise. * tui/tui-layout.c (tui_layout_command): Now case-sensitive. --- gdb/ChangeLog | 7 +++ gdb/NEWS | 3 ++ gdb/tui/tui-layout.c | 22 +++----- gdb/tui/tui-win.c | 140 ++++++++++++++++++++++----------------------------- 4 files changed, 77 insertions(+), 95 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 402b57a..adaa123 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2019-09-20 Tom Tromey + * NEWS: Mention case-sensitivity of TUI commands. + * tui/tui-win.c (tui_set_focus_command): Now case-sensitive. + (tui_set_win_height_command, parse_scrolling_args): Likewise. + * tui/tui-layout.c (tui_layout_command): Now case-sensitive. + +2019-09-20 Tom Tromey + * tui/tui-source.c (tui_source_window::set_contents): Use make_unique_xstrdup. * tui/tui-disasm.c (tui_disasm_window::set_contents): Use diff --git a/gdb/NEWS b/gdb/NEWS index 1fefd81..201701b 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -186,6 +186,9 @@ maint show test-options-completion-result Commands used by the testsuite to validate the command options framework. +focus, winheight, +, -, >, < + These commands are now case-sensitive. + * New command options, command completion GDB now has a standard infrastructure to support dash-style command diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 0f3e8d9..7aa670e 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -337,29 +337,23 @@ Layout names are:\n\ static void tui_layout_command (const char *layout_name, int from_tty) { - int i; enum tui_layout_type new_layout = UNDEFINED_LAYOUT; enum tui_layout_type cur_layout = tui_current_layout (); - if (layout_name == NULL) + if (layout_name == NULL || *layout_name == '\0') error (_("Usage: layout prev | next | LAYOUT-NAME")); - std::string copy = layout_name; - for (i = 0; i < copy.size (); i++) - copy[i] = toupper (copy[i]); - const char *buf_ptr = copy.c_str (); - /* First check for ambiguous input. */ - if (strlen (buf_ptr) <= 1 && *buf_ptr == 'S') + if (strcmp (layout_name, "s") == 0) error (_("Ambiguous command input.")); - if (subset_compare (buf_ptr, "SRC")) + if (subset_compare (layout_name, "src")) new_layout = SRC_COMMAND; - else if (subset_compare (buf_ptr, "ASM")) + else if (subset_compare (layout_name, "asm")) new_layout = DISASSEM_COMMAND; - else if (subset_compare (buf_ptr, "SPLIT")) + else if (subset_compare (layout_name, "split")) new_layout = SRC_DISASSEM_COMMAND; - else if (subset_compare (buf_ptr, "REGS")) + else if (subset_compare (layout_name, "regs")) { if (cur_layout == SRC_COMMAND || cur_layout == SRC_DATA_COMMAND) @@ -367,9 +361,9 @@ tui_layout_command (const char *layout_name, int from_tty) else new_layout = DISASSEM_DATA_COMMAND; } - else if (subset_compare (buf_ptr, "NEXT")) + else if (subset_compare (layout_name, "next")) new_layout = next_layout (); - else if (subset_compare (buf_ptr, "PREV")) + else if (subset_compare (layout_name, "prev")) new_layout = prev_layout (); else error (_("Unrecognized layout: %s"), layout_name); diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index aecb779..37e22c5 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -776,35 +776,27 @@ tui_set_focus_command (const char *arg, int from_tty) if (arg != NULL) { - char *buf_ptr = xstrdup (arg); - int i; struct tui_win_info *win_info = NULL; - for (i = 0; (i < strlen (buf_ptr)); i++) - buf_ptr[i] = tolower (arg[i]); - - if (subset_compare (buf_ptr, "next")) + if (subset_compare (arg, "next")) win_info = tui_next_win (tui_win_with_focus ()); - else if (subset_compare (buf_ptr, "prev")) + else if (subset_compare (arg, "prev")) win_info = tui_prev_win (tui_win_with_focus ()); else - win_info = tui_partial_win_by_name (buf_ptr); + win_info = tui_partial_win_by_name (arg); - if (win_info == NULL || !win_info->is_visible ()) - warning (_("Invalid window specified. \n\ -The window name specified must be valid and visible.\n")); - else - { - tui_set_win_focus_to (win_info); - keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN)); - } + if (win_info == NULL) + error (_("Unrecognized window name \"%s\""), arg); + if (!win_info->is_visible ()) + error (_("Window \"%s\" is not visible"), arg); - xfree (buf_ptr); + tui_set_win_focus_to (win_info); + keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN)); printf_filtered (_("Focus set to %s window.\n"), tui_win_with_focus ()->name ()); } else - warning (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE); + error (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE); } static void @@ -927,65 +919,61 @@ tui_set_win_height_command (const char *arg, int from_tty) char *buf = ©[0]; char *buf_ptr = buf; char *wname = NULL; - int new_height, i; + int new_height; struct tui_win_info *win_info; wname = buf_ptr; buf_ptr = strchr (buf_ptr, ' '); if (buf_ptr != NULL) { - *buf_ptr = (char) 0; + *buf_ptr = '\0'; /* Validate the window name. */ - for (i = 0; i < strlen (wname); i++) - wname[i] = tolower (wname[i]); win_info = tui_partial_win_by_name (wname); - if (win_info == NULL || !win_info->is_visible ()) - warning (_("Invalid window specified. \n\ -The window name specified must be valid and visible.\n")); - else + if (win_info == NULL) + error (_("Unrecognized window name \"%s\""), arg); + if (!win_info->is_visible ()) + error (_("Window \"%s\" is not visible"), arg); + + /* Process the size. */ + buf_ptr = skip_spaces (buf_ptr); + + if (*buf_ptr != '\0') { - /* Process the size. */ - while (*(++buf_ptr) == ' ') - ; + bool negate = false; + bool fixed_size = true; + int input_no;; - if (*buf_ptr != (char) 0) + if (*buf_ptr == '+' || *buf_ptr == '-') { - int negate = FALSE; - int fixed_size = TRUE; - int input_no;; - - if (*buf_ptr == '+' || *buf_ptr == '-') - { - if (*buf_ptr == '-') - negate = TRUE; - fixed_size = FALSE; - buf_ptr++; - } - input_no = atoi (buf_ptr); - if (input_no > 0) - { - if (negate) - input_no *= (-1); - if (fixed_size) - new_height = input_no; - else - new_height = win_info->height + input_no; - - /* Now change the window's height, and adjust - all other windows around it. */ - if (tui_adjust_win_heights (win_info, - new_height) == TUI_FAILURE) - warning (_("Invalid window height specified.\n%s"), - WIN_HEIGHT_USAGE); - else - tui_update_gdb_sizes (); - } + if (*buf_ptr == '-') + negate = true; + fixed_size = false; + buf_ptr++; + } + input_no = atoi (buf_ptr); + if (input_no > 0) + { + if (negate) + input_no *= (-1); + if (fixed_size) + new_height = input_no; else + new_height = win_info->height + input_no; + + /* Now change the window's height, and adjust + all other windows around it. */ + if (tui_adjust_win_heights (win_info, + new_height) == TUI_FAILURE) warning (_("Invalid window height specified.\n%s"), WIN_HEIGHT_USAGE); + else + tui_update_gdb_sizes (); } + else + warning (_("Invalid window height specified.\n%s"), + WIN_HEIGHT_USAGE); } } else @@ -1299,7 +1287,7 @@ parse_scrolling_args (const char *arg, buf_ptr = strchr (buf_ptr, ' '); if (buf_ptr != NULL) { - *buf_ptr = (char) 0; + *buf_ptr = '\0'; if (num_to_scroll) *num_to_scroll = atoi (num_str); buf_ptr++; @@ -1313,29 +1301,19 @@ parse_scrolling_args (const char *arg, { const char *wname; - if (*buf_ptr == ' ') - while (*(++buf_ptr) == ' ') - ; + wname = skip_spaces (buf_ptr); - if (*buf_ptr != (char) 0) + if (*wname != '\0') { - /* Validate the window name. */ - for (char *p = buf_ptr; *p != '\0'; p++) - *p = tolower (*p); - - wname = buf_ptr; + *win_to_scroll = tui_partial_win_by_name (wname); + + if (*win_to_scroll == NULL) + error (_("Unrecognized window `%s'"), wname); + if (!(*win_to_scroll)->is_visible ()) + error (_("Window is not visible")); + else if (*win_to_scroll == TUI_CMD_WIN) + *win_to_scroll = *(tui_source_windows ().begin ()); } - else - wname = "?"; - - *win_to_scroll = tui_partial_win_by_name (wname); - - if (*win_to_scroll == NULL) - error (_("Unrecognized window `%s'"), wname); - if (!(*win_to_scroll)->is_visible ()) - error (_("Window is not visible")); - else if (*win_to_scroll == TUI_CMD_WIN) - *win_to_scroll = *(tui_source_windows ().begin ()); } } } -- cgit v1.1