From ca793b969c39158aa5fb10508a13d2696bf9c6d2 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sat, 22 Feb 2020 11:48:26 -0700 Subject: [PATCH] Use error_no_arg in TUI This changes a couple of TUI commands to use error_no_arg. The commands are also simplified a bit, and changed to use other gdb CLI utility functions like skip_to_space. This lets us removes a couple of defines that don't interact properly with gettext. 2020-02-22 Tom Tromey * tui/tui-win.c (tui_set_focus_command) (tui_set_win_height_command): Use error_no_arg. (_initialize_tui_win): Update help text. (FOCUS_USAGE, WIN_HEIGHT_USAGE): Don't define. Change-Id: I2bf95c2e5cfe1472d068388fa39f0cf07591b76c --- gdb/ChangeLog | 7 ++ gdb/tui/tui-win.c | 160 ++++++++++++++++++++-------------------------- 2 files changed, 77 insertions(+), 90 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a644ea78398..059e9cdb199 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-02-22 Tom Tromey + + * tui/tui-win.c (tui_set_focus_command) + (tui_set_win_height_command): Use error_no_arg. + (_initialize_tui_win): Update help text. + (FOCUS_USAGE, WIN_HEIGHT_USAGE): Don't define. + 2020-02-22 Tom Tromey * tui/tui-layout.c (extract_display_start_addr): Rewrite. diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c index 51d0365b723..dad3464ae19 100644 --- a/gdb/tui/tui-win.c +++ b/gdb/tui/tui-win.c @@ -68,9 +68,6 @@ static void parse_scrolling_args (const char *, int *); -#define WIN_HEIGHT_USAGE "Usage: winheight WINDOW-NAME [+ | -] NUM-LINES\n" -#define FOCUS_USAGE "Usage: focus [WINDOW-NAME | next | prev]\n" - #ifndef ACS_LRCORNER # define ACS_LRCORNER '+' #endif @@ -707,29 +704,27 @@ tui_set_focus_command (const char *arg, int from_tty) { tui_enable (); - if (arg != NULL) - { - struct tui_win_info *win_info = NULL; - - if (subset_compare (arg, "next")) - win_info = tui_next_win (tui_win_with_focus ()); - else if (subset_compare (arg, "prev")) - win_info = tui_prev_win (tui_win_with_focus ()); - else - win_info = tui_partial_win_by_name (arg); + if (arg == NULL) + error_no_arg (_("name of window to focus")); - if (win_info == NULL) - error (_("Unrecognized window name \"%s\""), arg); - if (!win_info->is_visible ()) - error (_("Window \"%s\" is not visible"), arg); + struct tui_win_info *win_info = NULL; - tui_set_win_focus_to (win_info); - keypad (TUI_CMD_WIN->handle.get (), win_info != TUI_CMD_WIN); - printf_filtered (_("Focus set to %s window.\n"), - tui_win_with_focus ()->name ()); - } + if (subset_compare (arg, "next")) + win_info = tui_next_win (tui_win_with_focus ()); + else if (subset_compare (arg, "prev")) + win_info = tui_prev_win (tui_win_with_focus ()); else - error (_("Incorrect Number of Arguments.\n%s"), FOCUS_USAGE); + win_info = tui_partial_win_by_name (arg); + + if (win_info == NULL) + error (_("Unrecognized window name \"%s\""), arg); + if (!win_info->is_visible ()) + error (_("Window \"%s\" is not visible"), arg); + + tui_set_win_focus_to (win_info); + keypad (TUI_CMD_WIN->handle.get (), win_info != TUI_CMD_WIN); + printf_filtered (_("Focus set to %s window.\n"), + tui_win_with_focus ()->name ()); } static void @@ -875,66 +870,59 @@ tui_set_win_height_command (const char *arg, int from_tty) { /* Make sure the curses mode is enabled. */ tui_enable (); - if (arg != NULL) - { - const char *buf = arg; - const char *buf_ptr = buf; - int new_height; - struct tui_win_info *win_info; + if (arg == NULL) + error_no_arg (_("name of window")); - buf_ptr = strchr (buf_ptr, ' '); - if (buf_ptr != NULL) - { - /* Validate the window name. */ - gdb::string_view wname (buf, buf_ptr - buf); - win_info = tui_partial_win_by_name (wname); + const char *buf = arg; + const char *buf_ptr = buf; + int new_height; + struct tui_win_info *win_info; - if (win_info == NULL) - error (_("Unrecognized window name \"%s\""), arg); - if (!win_info->is_visible ()) - error (_("Window \"%s\" is not visible"), arg); + buf_ptr = skip_to_space (buf_ptr); - /* Process the size. */ - buf_ptr = skip_spaces (buf_ptr); + /* Validate the window name. */ + gdb::string_view wname (buf, buf_ptr - buf); + win_info = tui_partial_win_by_name (wname); - if (*buf_ptr != '\0') - { - bool negate = false; - bool 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. */ - tui_adjust_window_height (win_info, new_height); - tui_update_gdb_sizes (); - } - else - warning (_("Invalid window height specified.\n%s"), - WIN_HEIGHT_USAGE); - } + 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') + { + bool negate = false; + bool 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. */ + tui_adjust_window_height (win_info, new_height); + tui_update_gdb_sizes (); } else - printf_filtered (WIN_HEIGHT_USAGE); + error (_("Invalid window height specified")); } - else - printf_filtered (WIN_HEIGHT_USAGE); } /* See tui-data.h. */ @@ -1041,25 +1029,17 @@ Usage: tabset N")); deprecate_cmd (cmd, "set tui tab-width"); cmd = add_com ("winheight", class_tui, tui_set_win_height_command, _("\ -Set or modify the height of a specified window.\n" -WIN_HEIGHT_USAGE -"Window names are:\n\ - src : the source window\n\ - cmd : the command window\n\ - asm : the disassembly window\n\ - regs : the register display")); +Set or modify the height of a specified window.\n\ +Usage: winheight WINDOW-NAME [+ | -] NUM-LINES\n\ +Use \"info win\" to see the names of the windows currently being displayed.")); add_com_alias ("wh", "winheight", class_tui, 0); set_cmd_completer (cmd, winheight_completer); add_info ("win", tui_all_windows_info, _("List of all displayed windows.")); cmd = add_com ("focus", class_tui, tui_set_focus_command, _("\ -Set focus to named window or next/prev window.\n" -FOCUS_USAGE -"Valid Window names are:\n\ - src : the source window\n\ - asm : the disassembly window\n\ - regs : the register display\n\ - cmd : the command window")); +Set focus to named window or next/prev window.\n\ +Usage: focus [WINDOW-NAME | next | prev]\n\ +Use \"info win\" to see the names of the windows currently being displayed.")); add_com_alias ("fs", "focus", class_tui, 0); set_cmd_completer (cmd, focus_completer); add_com ("+", class_tui, tui_scroll_forward_command, _("\ -- 2.30.2