Enable -Wsuggest-override
[deliverable/binutils-gdb.git] / gdb / tui / tui-command.c
index 5a776fa9de3b6832a192cb25ce79c6d58e7e1cb4..6dde0fcd4a5dcea8be6fab9ede471a2802284ae3 100644 (file)
@@ -1,7 +1,6 @@
 /* Specific command window processing.
 
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
-   Free Software Foundation, Inc.
+   Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -9,7 +8,7 @@
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
-#include <ctype.h>
 #include "tui/tui.h"
 #include "tui/tui-data.h"
 #include "tui/tui-win.h"
 #include "tui/tui-io.h"
+#include "tui/tui-command.h"
 
 #include "gdb_curses.h"
-#include "gdb_string.h"
-
-
 /*****************************************
 ** STATIC LOCAL FUNCTIONS FORWARD DECLS    **
 ******************************************/
@@ -59,78 +53,53 @@ tui_dispatch_ctrl_char (unsigned int ch)
      on through and do nothing here.  */
   if (win_info == NULL || win_info == TUI_CMD_WIN)
     return ch;
-  else
+
+  switch (ch)
     {
-      unsigned int c = 0, ch_copy = ch;
-      int i;
-      char *term;
-
-      /* If this is an xterm, page next/prev keys aren't returned
-         ** by keypad as a single char, so we must handle them here.
-         ** Seems like a bug in the curses library?
-       */
-      term = (char *) getenv ("TERM");
-      if (term)
-       {
-         for (i = 0; term[i]; i++)
-           term[i] = toupper (term[i]);
-         if ((strcmp (term, "XTERM") == 0) && key_is_start_sequence (ch))
-           {
-             unsigned int page_ch = 0;
-             unsigned int tmp_char;
-              WINDOW *w = TUI_CMD_WIN->generic.handle;
-
-             tmp_char = 0;
-             while (!key_is_end_sequence (tmp_char))
-               {
-                 tmp_char = (int) wgetch (w);
-                 if (tmp_char == ERR)
-                   {
-                     return ch;
-                   }
-                 if (!tmp_char)
-                   break;
-                 if (tmp_char == 53)
-                   page_ch = KEY_PPAGE;
-                 else if (tmp_char == 54)
-                   page_ch = KEY_NPAGE;
-                 else
-                   {
-                     return 0;
-                   }
-               }
-             ch_copy = page_ch;
-           }
-       }
-
-      switch (ch_copy)
-       {
-       case KEY_NPAGE:
-         tui_scroll_forward (win_info, 0);
-         break;
-       case KEY_PPAGE:
-         tui_scroll_backward (win_info, 0);
-         break;
-       case KEY_DOWN:
-       case KEY_SF:
-         tui_scroll_forward (win_info, 1);
-         break;
-       case KEY_UP:
-       case KEY_SR:
-         tui_scroll_backward (win_info, 1);
-         break;
-       case KEY_RIGHT:
-         tui_scroll_left (win_info, 1);
-         break;
-       case KEY_LEFT:
-         tui_scroll_right (win_info, 1);
-         break;
-       case '\f':
-          break;
-       default:
-         c = ch_copy;
-         break;
-       }
-      return c;
+    case KEY_NPAGE:
+      tui_scroll_forward (win_info, 0);
+      break;
+    case KEY_PPAGE:
+      tui_scroll_backward (win_info, 0);
+      break;
+    case KEY_DOWN:
+    case KEY_SF:
+      tui_scroll_forward (win_info, 1);
+      break;
+    case KEY_UP:
+    case KEY_SR:
+      tui_scroll_backward (win_info, 1);
+      break;
+    case KEY_RIGHT:
+      tui_scroll_left (win_info, 1);
+      break;
+    case KEY_LEFT:
+      tui_scroll_right (win_info, 1);
+      break;
+    case '\f':
+      break;
+    default:
+      /* We didn't recognize the character as a control character, so pass it
+         through.  */
+      return ch;
     }
+
+  /* We intercepted the control character, so return 0 (which readline
+     will interpret as a no-op).  */
+  return 0;
+}
+
+/* See tui-command.h.  */
+
+void
+tui_refresh_cmd_win (void)
+{
+  WINDOW *w = TUI_CMD_WIN->generic.handle;
+
+  wrefresh (w);
+
+  /* FIXME: It's not clear why this is here.
+     It was present in the original tui_puts code and is kept in order to
+     not introduce some subtle breakage.  */
+  fflush (stdout);
 }
This page took 0.026715 seconds and 4 git commands to generate.