]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/tui/tui-command.c
GDB copyright headers update after running GDB's copyright.py script.
[thirdparty/binutils-gdb.git] / gdb / tui / tui-command.c
CommitLineData
f377b406 1/* Specific command window processing.
f33c6cbf 2
618f726f 3 Copyright (C) 1998-2016 Free Software Foundation, Inc.
f33c6cbf 4
f377b406
SC
5 Contributed by Hewlett-Packard Company.
6
7 This file is part of GDB.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
a9762ec7 11 the Free Software Foundation; either version 3 of the License, or
f377b406
SC
12 (at your option) any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License
a9762ec7 20 along with this program. If not, see <http://www.gnu.org/licenses/>. */
c906108c 21
96ec9981 22#include "defs.h"
d7b2e967
AC
23#include "tui/tui.h"
24#include "tui/tui-data.h"
25#include "tui/tui-win.h"
26#include "tui/tui-io.h"
2c0b251b 27#include "tui/tui-command.h"
f33c6cbf 28
6a83354a 29#include "gdb_curses.h"
c906108c
SS
30/*****************************************
31** STATIC LOCAL FUNCTIONS FORWARD DECLS **
32******************************************/
33
34
35
36/*****************************************
37** PUBLIC FUNCTIONS **
38******************************************/
39
1cc6d956
MS
40/* Dispatch the correct tui function based upon the control
41 character. */
c906108c 42unsigned int
b0a30fce 43tui_dispatch_ctrl_char (unsigned int ch)
c906108c 44{
6d012f14 45 struct tui_win_info *win_info = tui_win_with_focus ();
c906108c 46
ca9d4aea
SC
47 /* Handle the CTRL-L refresh for each window. */
48 if (ch == '\f')
49 tui_refresh_all_win ();
50
51 /* If the command window has the logical focus, or no-one does
1cc6d956
MS
52 assume it is the command window; in this case, pass the character
53 on through and do nothing here. */
6d012f14 54 if (win_info == NULL || win_info == TUI_CMD_WIN)
c906108c 55 return ch;
e3555239
PP
56
57 switch (ch)
c906108c 58 {
e3555239
PP
59 case KEY_NPAGE:
60 tui_scroll_forward (win_info, 0);
61 break;
62 case KEY_PPAGE:
63 tui_scroll_backward (win_info, 0);
64 break;
65 case KEY_DOWN:
66 case KEY_SF:
67 tui_scroll_forward (win_info, 1);
68 break;
69 case KEY_UP:
70 case KEY_SR:
71 tui_scroll_backward (win_info, 1);
72 break;
73 case KEY_RIGHT:
74 tui_scroll_left (win_info, 1);
75 break;
76 case KEY_LEFT:
77 tui_scroll_right (win_info, 1);
78 break;
79 case '\f':
80 break;
81 default:
82 /* We didn't recognize the character as a control character, so pass it
83 through. */
84 return ch;
c906108c 85 }
e3555239
PP
86
87 /* We intercepted the control character, so return 0 (which readline
88 will interpret as a no-op). */
89 return 0;
9b2d6cca 90}
518be979
DE
91
92/* See tui-command.h. */
93
94void
95tui_refresh_cmd_win (void)
96{
97 WINDOW *w = TUI_CMD_WIN->generic.handle;
98
99 wrefresh (w);
100
101 /* FIXME: It's not clear why this is here.
102 It was present in the original tui_puts code and is kept in order to
103 not introduce some subtle breakage. */
104 fflush (stdout);
105}