/* TUI window generic functions.
- Copyright (C) 1998-2017 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
/***************************************
** DEFINITIONS
***************************************/
-#define WIN_HEIGHT_USAGE "Usage: winheight <win_name> [+ | -] <#lines>\n"
-#define XDBWIN_HEIGHT_USAGE "Usage: w <#lines>\n"
-#define FOCUS_USAGE "Usage: focus {<win> | next | prev}\n"
+#define WIN_HEIGHT_USAGE "Usage: winheight WINDOW-NAME [+ | -] NUM-LINES\n"
+#define FOCUS_USAGE "Usage: focus [WINDOW-NAME | next | prev]\n"
/***************************************
** PUBLIC FUNCTIONS
window_name_completer (tracker, 0, text, word);
}
-/* Function to initialize gdb commands, for tui window
- manipulation. */
-
-void
-_initialize_tui_win (void)
-{
- static struct cmd_list_element *tui_setlist;
- static struct cmd_list_element *tui_showlist;
- struct cmd_list_element *cmd;
-
- /* Define the classes of commands.
- They will appear in the help list in the reverse of this order. */
- add_prefix_cmd ("tui", class_tui, set_tui_cmd,
- _("TUI configuration variables"),
- &tui_setlist, "set tui ",
- 0 /* allow-unknown */, &setlist);
- add_prefix_cmd ("tui", class_tui, show_tui_cmd,
- _("TUI configuration variables"),
- &tui_showlist, "show tui ",
- 0 /* allow-unknown */, &showlist);
-
- add_com ("refresh", class_tui, tui_refresh_all_command,
- _("Refresh the terminal display.\n"));
- add_com ("tabset", class_tui, tui_set_tab_width_command, _("\
-Set the width (in characters) of tab stops.\n\
-Usage: tabset <n>\n"));
- cmd = add_com ("winheight", class_tui, tui_set_win_height_command, _("\
-Set or modify the height of a specified window.\n\
-Usage: winheight <win_name> [+ | -] <#lines>\n\
-Window names are:\n\
-src : the source window\n\
-cmd : the command window\n\
-asm : the disassembly window\n\
-regs : the register display\n"));
- 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.\n"));
- cmd = add_com ("focus", class_tui, tui_set_focus_command, _("\
-Set focus to named window or next/prev window.\n\
-Usage: focus {<win> | next | prev}\n\
-Valid Window names are:\n\
-src : the source window\n\
-asm : the disassembly window\n\
-regs : the register display\n\
-cmd : the command window\n"));
- add_com_alias ("fs", "focus", class_tui, 0);
- set_cmd_completer (cmd, focus_completer);
- add_com ("+", class_tui, tui_scroll_forward_command, _("\
-Scroll window forward.\n\
-Usage: + [win] [n]\n"));
- add_com ("-", class_tui, tui_scroll_backward_command, _("\
-Scroll window backward.\n\
-Usage: - [win] [n]\n"));
- add_com ("<", class_tui, tui_scroll_left_command, _("\
-Scroll window text to the left.\n\
-Usage: < [win] [n]\n"));
- add_com (">", class_tui, tui_scroll_right_command, _("\
-Scroll window text to the right.\n\
-Usage: > [win] [n]\n"));
-
- /* Define the tui control variables. */
- add_setshow_enum_cmd ("border-kind", no_class, tui_border_kind_enums,
- &tui_border_kind, _("\
-Set the kind of border for TUI windows."), _("\
-Show the kind of border for TUI windows."), _("\
-This variable controls the border of TUI windows:\n\
-space use a white space\n\
-ascii use ascii characters + - | for the border\n\
-acs use the Alternate Character Set"),
- tui_set_var_cmd,
- show_tui_border_kind,
- &tui_setlist, &tui_showlist);
-
- add_setshow_enum_cmd ("border-mode", no_class, tui_border_mode_enums,
- &tui_border_mode, _("\
-Set the attribute mode to use for the TUI window borders."), _("\
-Show the attribute mode to use for the TUI window borders."), _("\
-This variable controls the attributes to use for the window borders:\n\
-normal normal display\n\
-standout use highlight mode of terminal\n\
-reverse use reverse video mode\n\
-half use half bright\n\
-half-standout use half bright and standout mode\n\
-bold use extra bright or bold\n\
-bold-standout use extra bright or bold with standout mode"),
- tui_set_var_cmd,
- show_tui_border_mode,
- &tui_setlist, &tui_showlist);
-
- add_setshow_enum_cmd ("active-border-mode", no_class, tui_border_mode_enums,
- &tui_active_border_mode, _("\
-Set the attribute mode to use for the active TUI window border."), _("\
-Show the attribute mode to use for the active TUI window border."), _("\
-This variable controls the attributes to use for the active window border:\n\
-normal normal display\n\
-standout use highlight mode of terminal\n\
-reverse use reverse video mode\n\
-half use half bright\n\
-half-standout use half bright and standout mode\n\
-bold use extra bright or bold\n\
-bold-standout use extra bright or bold with standout mode"),
- tui_set_var_cmd,
- show_tui_active_border_mode,
- &tui_setlist, &tui_showlist);
-}
-
/* Update gdb's knowledge of the terminal size. */
void
tui_update_gdb_sizes (void)
void
-tui_scroll_forward (struct tui_win_info *win_to_scroll,
- int num_to_scroll)
+tui_win_info::forward_scroll (int num_to_scroll)
{
- if (win_to_scroll != TUI_CMD_WIN)
- {
- int _num_to_scroll = num_to_scroll;
-
- if (num_to_scroll == 0)
- _num_to_scroll = win_to_scroll->generic.height - 3;
-
- /* If we are scrolling the source or disassembly window, do a
- "psuedo" scroll since not all of the source is in memory,
- only what is in the viewport. If win_to_scroll is the
- command window do nothing since the term should handle
- it. */
- if (win_to_scroll == TUI_SRC_WIN)
- tui_vertical_source_scroll (FORWARD_SCROLL, _num_to_scroll);
- else if (win_to_scroll == TUI_DISASM_WIN)
- tui_vertical_disassem_scroll (FORWARD_SCROLL, _num_to_scroll);
- else if (win_to_scroll == TUI_DATA_WIN)
- tui_vertical_data_scroll (FORWARD_SCROLL, _num_to_scroll);
- }
-}
+ if (num_to_scroll == 0)
+ num_to_scroll = generic.height - 3;
-void
-tui_scroll_backward (struct tui_win_info *win_to_scroll,
- int num_to_scroll)
-{
- if (win_to_scroll != TUI_CMD_WIN)
- {
- int _num_to_scroll = num_to_scroll;
-
- if (num_to_scroll == 0)
- _num_to_scroll = win_to_scroll->generic.height - 3;
-
- /* If we are scrolling the source or disassembly window, do a
- "psuedo" scroll since not all of the source is in memory,
- only what is in the viewport. If win_to_scroll is the
- command window do nothing since the term should handle
- it. */
- if (win_to_scroll == TUI_SRC_WIN)
- tui_vertical_source_scroll (BACKWARD_SCROLL, _num_to_scroll);
- else if (win_to_scroll == TUI_DISASM_WIN)
- tui_vertical_disassem_scroll (BACKWARD_SCROLL, _num_to_scroll);
- else if (win_to_scroll == TUI_DATA_WIN)
- tui_vertical_data_scroll (BACKWARD_SCROLL, _num_to_scroll);
- }
+ do_scroll_vertical (FORWARD_SCROLL, num_to_scroll);
}
-
void
-tui_scroll_left (struct tui_win_info *win_to_scroll,
- int num_to_scroll)
+tui_win_info::backward_scroll (int num_to_scroll)
{
- if (win_to_scroll != TUI_CMD_WIN)
- {
- int _num_to_scroll = num_to_scroll;
-
- if (_num_to_scroll == 0)
- _num_to_scroll = 1;
-
- /* If we are scrolling the source or disassembly window, do a
- "psuedo" scroll since not all of the source is in memory,
- only what is in the viewport. If win_to_scroll is the command
- window do nothing since the term should handle it. */
- if (win_to_scroll == TUI_SRC_WIN
- || win_to_scroll == TUI_DISASM_WIN)
- tui_horizontal_source_scroll (win_to_scroll, LEFT_SCROLL,
- _num_to_scroll);
- }
+ if (num_to_scroll == 0)
+ num_to_scroll = generic.height - 3;
+
+ do_scroll_vertical (BACKWARD_SCROLL, num_to_scroll);
}
void
-tui_scroll_right (struct tui_win_info *win_to_scroll,
- int num_to_scroll)
+tui_win_info::left_scroll (int num_to_scroll)
{
- if (win_to_scroll != TUI_CMD_WIN)
- {
- int _num_to_scroll = num_to_scroll;
-
- if (_num_to_scroll == 0)
- _num_to_scroll = 1;
-
- /* If we are scrolling the source or disassembly window, do a
- "psuedo" scroll since not all of the source is in memory,
- only what is in the viewport. If win_to_scroll is the command
- window do nothing since the term should handle it. */
- if (win_to_scroll == TUI_SRC_WIN
- || win_to_scroll == TUI_DISASM_WIN)
- tui_horizontal_source_scroll (win_to_scroll, RIGHT_SCROLL,
- _num_to_scroll);
- }
+ if (num_to_scroll == 0)
+ num_to_scroll = 1;
+
+ do_scroll_horizontal (LEFT_SCROLL, num_to_scroll);
}
-/* Scroll a window. Arguments are passed through a va_list. */
void
-tui_scroll (enum tui_scroll_direction direction,
- struct tui_win_info *win_to_scroll,
- int num_to_scroll)
+tui_win_info::right_scroll (int num_to_scroll)
{
- switch (direction)
- {
- case FORWARD_SCROLL:
- tui_scroll_forward (win_to_scroll, num_to_scroll);
- break;
- case BACKWARD_SCROLL:
- tui_scroll_backward (win_to_scroll, num_to_scroll);
- break;
- case LEFT_SCROLL:
- tui_scroll_left (win_to_scroll, num_to_scroll);
- break;
- case RIGHT_SCROLL:
- tui_scroll_right (win_to_scroll, num_to_scroll);
- break;
- default:
- break;
- }
+ if (num_to_scroll == 0)
+ num_to_scroll = 1;
+
+ do_scroll_horizontal (RIGHT_SCROLL, num_to_scroll);
}
{
case SRC_COMMAND:
case DISASSEM_COMMAND:
- first_win = (struct tui_win_info *) (tui_source_windows ())->list[0];
+ first_win = tui_source_windows ()[0];
first_win->generic.width += width_diff;
locator->width += width_diff;
/* Check for invalid heights. */
{
first_win = TUI_DATA_WIN;
first_win->generic.width += width_diff;
- second_win = (struct tui_win_info *)
- (tui_source_windows ())->list[0];
+ second_win = tui_source_windows ()[0];
second_win->generic.width += width_diff;
}
/* Change the first window's height/width. */
&& (tui_win_list[win_type] != NULL)
&& !tui_win_list[win_type]->generic.is_visible)
{
- tui_free_window (tui_win_list[win_type]);
+ delete tui_win_list[win_type];
tui_win_list[win_type] = NULL;
}
}
/* Make sure the curses mode is enabled. */
tui_enable ();
- if (arg == (char *) NULL)
- parse_scrolling_args (arg, &win_to_scroll, (int *) NULL);
+ if (arg == NULL)
+ parse_scrolling_args (arg, &win_to_scroll, NULL);
else
parse_scrolling_args (arg, &win_to_scroll, &num_to_scroll);
- tui_scroll (FORWARD_SCROLL, win_to_scroll, num_to_scroll);
+ win_to_scroll->forward_scroll (num_to_scroll);
}
/* Make sure the curses mode is enabled. */
tui_enable ();
- if (arg == (char *) NULL)
- parse_scrolling_args (arg, &win_to_scroll, (int *) NULL);
+ if (arg == NULL)
+ parse_scrolling_args (arg, &win_to_scroll, NULL);
else
parse_scrolling_args (arg, &win_to_scroll, &num_to_scroll);
- tui_scroll (BACKWARD_SCROLL, win_to_scroll, num_to_scroll);
+ win_to_scroll->backward_scroll (num_to_scroll);
}
/* Make sure the curses mode is enabled. */
tui_enable ();
parse_scrolling_args (arg, &win_to_scroll, &num_to_scroll);
- tui_scroll (LEFT_SCROLL, win_to_scroll, num_to_scroll);
+ win_to_scroll->left_scroll (num_to_scroll);
}
/* Make sure the curses mode is enabled. */
tui_enable ();
parse_scrolling_args (arg, &win_to_scroll, &num_to_scroll);
- tui_scroll (RIGHT_SCROLL, win_to_scroll, num_to_scroll);
+ win_to_scroll->right_scroll (num_to_scroll);
}
static void
tui_set_focus (const char *arg, int from_tty)
{
- if (arg != (char *) NULL)
+ if (arg != NULL)
{
- char *buf_ptr = (char *) xstrdup (arg);
+ char *buf_ptr = xstrdup (arg);
int i;
struct tui_win_info *win_info = NULL;
else
win_info = tui_partial_win_by_name (buf_ptr);
- if (win_info == (struct tui_win_info *) NULL
- || !win_info->generic.is_visible)
+ if (win_info == NULL || !win_info->generic.is_visible)
warning (_("Invalid window specified. \n\
The window name specified must be valid and visible.\n"));
else
tui_refresh_all_win ();
}
+/* The tab width that should be used by the TUI. */
+
+unsigned int tui_tab_width = DEFAULT_TAB_LEN;
+
+/* The tab width as set by the user. */
+
+static unsigned int internal_tab_width = DEFAULT_TAB_LEN;
+
+/* After the tab width is set, call this to update the relevant
+ windows. */
+
+static void
+update_tab_width ()
+{
+ /* We don't really change the height of any windows, but
+ calling these 2 functions causes a complete regeneration
+ and redisplay of the window's contents, which will take
+ the new tab width into account. */
+ if (tui_win_list[SRC_WIN]
+ && tui_win_list[SRC_WIN]->generic.is_visible)
+ {
+ make_invisible_and_set_new_height (TUI_SRC_WIN,
+ TUI_SRC_WIN->generic.height);
+ make_visible_with_new_height (TUI_SRC_WIN);
+ }
+ if (tui_win_list[DISASSEM_WIN]
+ && tui_win_list[DISASSEM_WIN]->generic.is_visible)
+ {
+ make_invisible_and_set_new_height (TUI_DISASM_WIN,
+ TUI_DISASM_WIN->generic.height);
+ make_visible_with_new_height (TUI_DISASM_WIN);
+ }
+}
+
+/* Callback for "set tui tab-width". */
+
+static void
+tui_set_tab_width (const char *ignore,
+ int from_tty, struct cmd_list_element *c)
+{
+ if (internal_tab_width == 0)
+ {
+ internal_tab_width = tui_tab_width;
+ error (_("Tab width must not be 0"));
+ }
+
+ tui_tab_width = internal_tab_width;
+ update_tab_width ();
+}
+
+/* Callback for "show tui tab-width". */
+
+static void
+tui_show_tab_width (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ fprintf_filtered (gdb_stdout, _("TUI tab width is %s spaces.\n"), value);
+
+}
/* Set the tab width of the specified window. */
static void
{
/* Make sure the curses mode is enabled. */
tui_enable ();
- if (arg != (char *) NULL)
+ if (arg != NULL)
{
int ts;
ts = atoi (arg);
- if (ts > 0)
+ if (ts <= 0)
+ warning (_("Tab widths greater than 0 must be specified."));
+ else
{
- tui_set_default_tab_len (ts);
- /* We don't really change the height of any windows, but
- calling these 2 functions causes a complete regeneration
- and redisplay of the window's contents, which will take
- the new tab width into account. */
- if (tui_win_list[SRC_WIN]
- && tui_win_list[SRC_WIN]->generic.is_visible)
- {
- make_invisible_and_set_new_height (TUI_SRC_WIN,
- TUI_SRC_WIN->generic.height);
- make_visible_with_new_height (TUI_SRC_WIN);
- }
- if (tui_win_list[DISASSEM_WIN]
- && tui_win_list[DISASSEM_WIN]->generic.is_visible)
- {
- make_invisible_and_set_new_height (TUI_DISASM_WIN,
- TUI_DISASM_WIN->generic.height);
- make_visible_with_new_height (TUI_DISASM_WIN);
- }
+ internal_tab_width = ts;
+ tui_tab_width = ts;
+
+ update_tab_width ();
}
- else
- warning (_("Tab widths greater than 0 must be specified."));
}
}
{
/* Make sure the curses mode is enabled. */
tui_enable ();
- if (arg != (char *) NULL)
+ if (arg != NULL)
{
std::string copy = arg;
char *buf = ©[0];
wname = buf_ptr;
buf_ptr = strchr (buf_ptr, ' ');
- if (buf_ptr != (char *) NULL)
+ if (buf_ptr != NULL)
{
*buf_ptr = (char) 0;
wname[i] = tolower (wname[i]);
win_info = tui_partial_win_by_name (wname);
- if (win_info == (struct tui_win_info *) NULL
- || !win_info->generic.is_visible)
+ if (win_info == NULL || !win_info->generic.is_visible)
warning (_("Invalid window specified. \n\
The window name specified must be valid and visible.\n"));
else
make_invisible_and_set_new_height (primary_win_info, new_height);
if (primary_win_info->generic.type == CMD_WIN)
{
- win_info = (tui_source_windows ())->list[0];
+ win_info = tui_source_windows ()[0];
src_win_info = win_info;
}
else
else
{
first_win = TUI_DATA_WIN;
- second_win = (tui_source_windows ())->list[0];
+ second_win = tui_source_windows ()[0];
}
if (primary_win_info == TUI_CMD_WIN)
{ /* Split the change in height accross the 1st & 2nd
win_info->generic.viewport_height--;
/* Now deal with the auxillary windows associated with win_info. */
+ tui_source_window_base *base;
switch (win_info->generic.type)
{
case SRC_WIN:
case DISASSEM_WIN:
- gen_win_info = win_info->detail.source_info.execution_info;
+ base = (tui_source_window_base *) win_info;
+ gen_win_info = base->execution_info;
tui_make_invisible (gen_win_info);
gen_win_info->height = height;
gen_win_info->origin.y = win_info->generic.origin.y;
if (win_info != TUI_CMD_WIN)
gen_win_info->viewport_height--;
- if (tui_win_has_locator (win_info))
+ if (win_info->has_locator ())
{
gen_win_info = tui_locator_win_info_ptr ();
tui_make_invisible (gen_win_info);
/* Delete all data item windows. */
for (i = 0; i < win_info->generic.content_size; i++)
{
- gen_win_info = (struct tui_gen_win_info *)
- &((struct tui_win_element *)
- win_info->generic.content[i])->which_element.data_window;
+ gen_win_info
+ = &win_info->generic.content[i]->which_element.data_window;
tui_delete_win (gen_win_info->handle);
gen_win_info->handle = NULL;
}
tui_make_visible (&win_info->generic);
tui_check_and_display_highlight_if_needed (win_info);
+ tui_source_window_base *base;
switch (win_info->generic.type)
{
case SRC_WIN:
case DISASSEM_WIN:
- tui_free_win_content (win_info->detail.source_info.execution_info);
- tui_make_visible (win_info->detail.source_info.execution_info);
+ base = (tui_source_window_base *) win_info;
+ tui_free_win_content (base->execution_info);
+ tui_make_visible (base->execution_info);
if (win_info->generic.content != NULL)
{
- struct gdbarch *gdbarch = win_info->detail.source_info.gdbarch;
+ struct gdbarch *gdbarch = base->gdbarch;
struct tui_line_or_address line_or_addr;
struct symtab_and_line cursal
= get_current_source_symtab_and_line ();
- line_or_addr = win_info->detail.source_info.start_line_or_addr;
+ line_or_addr = base->start_line_or_addr;
tui_free_win_content (&win_info->generic);
tui_update_source_window (win_info, gdbarch,
cursal.symtab, line_or_addr, TRUE);
}
tui_update_source_window (win_info, gdbarch, s, line, TRUE);
}
- if (tui_win_has_locator (win_info))
+ if (win_info->has_locator ())
{
tui_make_visible (tui_locator_win_info_ptr ());
tui_show_locator_content ();
struct tui_win_info *win_info;
if (primary_win_info == TUI_CMD_WIN)
- win_info = (tui_source_windows ())->list[0];
+ win_info = tui_source_windows ()[0];
else
win_info = TUI_CMD_WIN;
ok = ((new_height +
else
{
first_win = TUI_DATA_WIN;
- second_win = (tui_source_windows ())->list[0];
+ second_win = tui_source_windows ()[0];
}
/* We could simply add all the heights to obtain the same
result but below is more explicit since we subtract 1 for
/* First set up the default window to scroll, in case there is no
window name arg. */
- if (arg != (char *) NULL)
+ if (arg != NULL)
{
char *buf_ptr;
num_str = buf_ptr;
buf_ptr = strchr (buf_ptr, ' ');
- if (buf_ptr != (char *) NULL)
+ if (buf_ptr != NULL)
{
*buf_ptr = (char) 0;
if (num_to_scroll)
}
/* Process the window name if one is specified. */
- if (buf_ptr != (char *) NULL)
+ if (buf_ptr != NULL)
{
const char *wname;
*win_to_scroll = tui_partial_win_by_name (wname);
- if (*win_to_scroll == (struct tui_win_info *) NULL
+ if (*win_to_scroll == NULL
|| !(*win_to_scroll)->generic.is_visible)
error (_("Invalid window specified. \n\
The window name specified must be valid and visible.\n"));
else if (*win_to_scroll == TUI_CMD_WIN)
- *win_to_scroll = (tui_source_windows ())->list[0];
+ *win_to_scroll = tui_source_windows ()[0];
}
}
}
+
+/* Function to initialize gdb commands, for tui window
+ manipulation. */
+
+void
+_initialize_tui_win (void)
+{
+ static struct cmd_list_element *tui_setlist;
+ static struct cmd_list_element *tui_showlist;
+ struct cmd_list_element *cmd;
+
+ /* Define the classes of commands.
+ They will appear in the help list in the reverse of this order. */
+ add_prefix_cmd ("tui", class_tui, set_tui_cmd,
+ _("TUI configuration variables"),
+ &tui_setlist, "set tui ",
+ 0 /* allow-unknown */, &setlist);
+ add_prefix_cmd ("tui", class_tui, show_tui_cmd,
+ _("TUI configuration variables"),
+ &tui_showlist, "show tui ",
+ 0 /* allow-unknown */, &showlist);
+
+ add_com ("refresh", class_tui, tui_refresh_all_command,
+ _("Refresh the terminal display."));
+
+ cmd = add_com ("tabset", class_tui, tui_set_tab_width_command, _("\
+Set the width (in characters) of tab stops.\n\
+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"));
+ 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"));
+ add_com_alias ("fs", "focus", class_tui, 0);
+ set_cmd_completer (cmd, focus_completer);
+ add_com ("+", class_tui, tui_scroll_forward_command, _("\
+Scroll window forward.\n\
+Usage: + [WIN] [N]"));
+ add_com ("-", class_tui, tui_scroll_backward_command, _("\
+Scroll window backward.\n\
+Usage: - [WIN] [N]"));
+ add_com ("<", class_tui, tui_scroll_left_command, _("\
+Scroll window text to the left.\n\
+Usage: < [WIN] [N]"));
+ add_com (">", class_tui, tui_scroll_right_command, _("\
+Scroll window text to the right.\n\
+Usage: > [WIN] [N]"));
+
+ /* Define the tui control variables. */
+ add_setshow_enum_cmd ("border-kind", no_class, tui_border_kind_enums,
+ &tui_border_kind, _("\
+Set the kind of border for TUI windows."), _("\
+Show the kind of border for TUI windows."), _("\
+This variable controls the border of TUI windows:\n\
+ space use a white space\n\
+ ascii use ascii characters + - | for the border\n\
+ acs use the Alternate Character Set"),
+ tui_set_var_cmd,
+ show_tui_border_kind,
+ &tui_setlist, &tui_showlist);
+
+ add_setshow_enum_cmd ("border-mode", no_class, tui_border_mode_enums,
+ &tui_border_mode, _("\
+Set the attribute mode to use for the TUI window borders."), _("\
+Show the attribute mode to use for the TUI window borders."), _("\
+This variable controls the attributes to use for the window borders:\n\
+ normal normal display\n\
+ standout use highlight mode of terminal\n\
+ reverse use reverse video mode\n\
+ half use half bright\n\
+ half-standout use half bright and standout mode\n\
+ bold use extra bright or bold\n\
+ bold-standout use extra bright or bold with standout mode"),
+ tui_set_var_cmd,
+ show_tui_border_mode,
+ &tui_setlist, &tui_showlist);
+
+ add_setshow_enum_cmd ("active-border-mode", no_class, tui_border_mode_enums,
+ &tui_active_border_mode, _("\
+Set the attribute mode to use for the active TUI window border."), _("\
+Show the attribute mode to use for the active TUI window border."), _("\
+This variable controls the attributes to use for the active window border:\n\
+ normal normal display\n\
+ standout use highlight mode of terminal\n\
+ reverse use reverse video mode\n\
+ half use half bright\n\
+ half-standout use half bright and standout mode\n\
+ bold use extra bright or bold\n\
+ bold-standout use extra bright or bold with standout mode"),
+ tui_set_var_cmd,
+ show_tui_active_border_mode,
+ &tui_setlist, &tui_showlist);
+
+ add_setshow_zuinteger_cmd ("tab-width", no_class,
+ &internal_tab_width, _("\
+Set the tab width, in characters, for the TUI."), _("\
+Show the tab witdh, in characters, for the TUI"), _("\
+This variable controls how many spaces are used to display a tab character."),
+ tui_set_tab_width, tui_show_tab_width,
+ &tui_setlist, &tui_showlist);
+}