Remove tui_scroll_direction enum
[deliverable/binutils-gdb.git] / gdb / tui / tui.c
index 7c3e70497a17f6e23528edc451b8affe8e6badc0..693c2ff4a03ead9c5e82460b09d84d1094d3d7af 100644 (file)
@@ -1,6 +1,6 @@
 /* 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.
 
@@ -75,8 +75,10 @@ static const struct tui_char_command tui_commands[] = {
   { 'd', "down" },
   { 'f', "finish" },
   { 'n', "next" },
+  { 'o', "nexti" },
   { 'r', "run" },
   { 's', "step" },
+  { 'i', "stepi" },
   { 'u', "up" },
   { 'v', "info locals" },
   { 'w', "where" },
@@ -94,7 +96,7 @@ tui_rl_switch_mode (int notused1, int notused2)
 
   /* 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)
        {
@@ -108,14 +110,13 @@ tui_rl_switch_mode (int notused1, int notused2)
          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.  */
@@ -235,9 +236,9 @@ tui_rl_other_window (int count, int key)
   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;
 }
@@ -408,12 +409,14 @@ tui_enable (void)
     {
       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);
 
@@ -427,7 +430,7 @@ tui_enable (void)
       /* 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)
        {
@@ -435,11 +438,20 @@ tui_enable (void)
                 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 ();
@@ -464,8 +476,8 @@ tui_enable (void)
       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
@@ -543,7 +555,7 @@ tui_disable (void)
 /* 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 ();
 }
@@ -551,7 +563,7 @@ tui_enable_command (char *args, int from_tty)
 /* 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 ();
 }
@@ -560,7 +572,7 @@ void
 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);
@@ -643,16 +655,16 @@ tui_show_assembly (struct gdbarch *gdbarch, CORE_ADDR addr)
   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
@@ -664,14 +676,11 @@ tui_get_command_dimension (unsigned int *width,
       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)
 {
This page took 0.026679 seconds and 4 git commands to generate.