/* General functions for the WDB TUI.
- Copyright (C) 1998-2016 Free Software Foundation, Inc.
+ Copyright (C) 1998-2019 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
{ 'd', "down" },
{ 'f', "finish" },
{ 'n', "next" },
+ { 'o', "nexti" },
{ 'r', "run" },
{ 's', "step" },
+ { 'i', "stepi" },
{ 'u', "up" },
{ 'v', "info locals" },
{ 'w', "where" },
/* Don't let exceptions escape. We're in the middle of a readline
callback that isn't prepared for that. */
- TRY
+ try
{
if (tui_active)
{
tui_enable ();
}
}
- CATCH (ex, RETURN_MASK_ALL)
+ catch (const gdb_exception &ex)
{
exception_print (gdb_stderr, ex);
if (!tui_active)
rl_prep_terminal (0);
}
- END_CATCH
/* Clear the readline in case switching occurred in middle of
something. */
if (win_info)
{
tui_set_win_focus_to (win_info);
- if (TUI_DATA_WIN && TUI_DATA_WIN->generic.is_visible)
- tui_refresh_data_win ();
- keypad (TUI_CMD_WIN->generic.handle, (win_info != TUI_CMD_WIN));
+ if (TUI_DATA_WIN && TUI_DATA_WIN->is_visible)
+ TUI_DATA_WIN->refresh_all ();
+ keypad (TUI_CMD_WIN->handle, (win_info != TUI_CMD_WIN));
}
return 0;
}
{
WINDOW *w;
SCREEN *s;
- const char *cap;
+#ifndef __MINGW32__
+ const char *cap;
+#endif
const char *interp;
/* If the top level interpreter is not the console/tui (e.g.,
MI), enabling curses will certainly lose. */
- interp = interp_name (top_level_interpreter ());
+ interp = top_level_interpreter ()->name ();
if (strcmp (interp, INTERP_TUI) != 0)
error (_("Cannot enable the TUI when the interpreter is '%s'"), interp);
/* The MinGW port of ncurses requires $TERM to be unset in order
to activate the Windows console driver. */
if (s == NULL)
- s = newterm ("unknown", stdout, stdin);
+ s = newterm ((char *) "unknown", stdout, stdin);
#endif
if (s == NULL)
{
gdb_getenv_term ());
}
w = stdscr;
+ if (has_colors ())
+ {
+#ifdef HAVE_USE_DEFAULT_COLORS
+ /* Ncurses extension to help with resetting to the default
+ color. */
+ use_default_colors ();
+#endif
+ start_color ();
+ }
/* Check required terminal capabilities. The MinGW port of
ncurses does have them, but doesn't expose them through "cup". */
#ifndef __MINGW32__
- cap = tigetstr ("cup");
+ cap = tigetstr ((char *) "cup");
if (cap == NULL || cap == (char *) -1 || *cap == '\0')
{
endwin ();
tui_show_frame_info (0);
tui_set_layout (SRC_COMMAND);
tui_set_win_focus_to (TUI_SRC_WIN);
- keypad (TUI_CMD_WIN->generic.handle, TRUE);
- wrefresh (TUI_CMD_WIN->generic.handle);
+ keypad (TUI_CMD_WIN->handle, TRUE);
+ wrefresh (TUI_CMD_WIN->handle);
tui_finish_init = 0;
}
else
/* Command wrapper for enabling tui mode. */
static void
-tui_enable_command (char *args, int from_tty)
+tui_enable_command (const char *args, int from_tty)
{
tui_enable ();
}
/* Command wrapper for leaving tui mode. */
static void
-tui_disable_command (char *args, int from_tty)
+tui_disable_command (const char *args, int from_tty)
{
tui_disable ();
}
strcat_to_buf (char *buf, int buflen,
const char *item_to_add)
{
- if (item_to_add != (char *) NULL && buf != (char *) NULL)
+ if (item_to_add != NULL && buf != NULL)
{
if ((strlen (buf) + strlen (item_to_add)) <= buflen)
strcat (buf, item_to_add);
tui_update_source_windows_with_addr (gdbarch, addr);
}
-int
+bool
tui_is_window_visible (enum tui_win_type type)
{
if (tui_active == 0)
- return 0;
+ return false;
if (tui_win_list[type] == 0)
- return 0;
+ return false;
- return tui_win_list[type]->generic.is_visible;
+ return tui_win_list[type]->is_visible;
}
int
return 0;
}
- *width = TUI_CMD_WIN->generic.width;
- *height = TUI_CMD_WIN->generic.height;
+ *width = TUI_CMD_WIN->width;
+ *height = TUI_CMD_WIN->height;
return 1;
}
-/* Provide a prototype to silence -Wmissing-prototypes. */
-extern initialize_file_ftype _initialize_tui;
-
void
_initialize_tui (void)
{