From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124379 invoked by alias); 11 Sep 2019 21:57:16 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 124371 invoked by uid 89); 11 Sep 2019 21:57:16 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=ham version=3.3.1 spammy= X-HELO: gateway20.websitewelcome.com Received: from gateway20.websitewelcome.com (HELO gateway20.websitewelcome.com) (192.185.63.14) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 11 Sep 2019 21:57:12 +0000 Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5]) by gateway20.websitewelcome.com (Postfix) with ESMTP id 2037A400C5D1C for ; Wed, 11 Sep 2019 15:51:27 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id 8AbviSKQSdnCe8AbvinJWY; Wed, 11 Sep 2019 16:57:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=u8Zdwz+MoksQ8BJdCkvQGFxUgSPATGZGPrRBBZMrVfk=; b=FwiXYrNCAcRDl+GXcexR+2OATJ IRzvXioR2D+VwMlTj95fP3a2gbR72hSB+bJb2iM9XUWeSsFF9NZhv90d6CNOwM+tyAcgcmyM4uuLL k171OdbSgI53oyv1MTWKLGAi/; Received: from 71-218-73-27.hlrn.qwest.net ([71.218.73.27]:48530 helo=bapiya) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1i8Abv-00401J-3Q; Wed, 11 Sep 2019 16:57:11 -0500 From: Tom Tromey To: Eli Zaretskii Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [PATCH 20/20] Change TUI window commands to be case-sensitive References: <20190910190857.6562-1-tom@tromey.com> <20190910190857.6562-21-tom@tromey.com> <83tv9j1ry6.fsf@gnu.org> Date: Wed, 11 Sep 2019 21:57:00 -0000 In-Reply-To: <83tv9j1ry6.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 11 Sep 2019 05:34:41 +0300") Message-ID: <87mufah4y2.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.91 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SW-Source: 2019-09/txt/msg00212.txt.bz2 >>>>> "Eli" == Eli Zaretskii writes: >> From: Tom Tromey >> Cc: Tom Tromey >> Date: Tue, 10 Sep 2019 13:08:57 -0600 >> >> 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. Eli> Shouldn't this be in NEWS? It's an incompatible behavior change. Good idea, here's an updated patch. Tom commit db427ce6225a1fc795261f5f5428cf1a7e99be52 Author: Tom Tromey Date: Tue Jul 23 16:01:03 2019 -0600 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-11 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. diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 59ae111336f..b5ccdc3b8e2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2019-09-11 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-10 Tom Tromey * tui/tui-source.c (tui_source_window::set_contents): Use diff --git a/gdb/NEWS b/gdb/NEWS index f382e887c0c..1b2f616e7fb 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -181,6 +181,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 0f3e8d945e8..7aa670ec69d 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 aecb7791f0a..37e22c550f9 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 ()); } } }