diff options
author | Tom Tromey <tom@tromey.com> | 2019-07-02 15:43:00 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-07-17 12:19:22 -0600 |
commit | 2d8b51cba307333b6a068296d9668cd01164de28 (patch) | |
tree | 98cde2a1b492383c0fe77adc949329d39d1120d3 /gdb/tui/tui-io.c | |
parent | 18ab23af8b3d473f795ce48ee54a47e1a3e7ae47 (diff) | |
download | gdb-2d8b51cba307333b6a068296d9668cd01164de28.zip gdb-2d8b51cba307333b6a068296d9668cd01164de28.tar.gz gdb-2d8b51cba307333b6a068296d9668cd01164de28.tar.bz2 |
Move tui_dispatch_ctrl_char to tui-io.c
tui_dispatch_ctrl_char is only called from a single spot in tui-io.c,
so move the function to that file and make it static.
gdb/ChangeLog
2019-07-17 Tom Tromey <tom@tromey.com>
* tui/tui-io.c (tui_dispatch_ctrl_char): Move from tui-command.c.
Now static.
* tui/tui-command.h (tui_dispatch_ctrl_char): Don't declare.
* tui/tui-command.c (tui_dispatch_ctrl_char): Move to tui-io.c.
Diffstat (limited to 'gdb/tui/tui-io.c')
-rw-r--r-- | gdb/tui/tui-io.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c index cb27306..938f5ab 100644 --- a/gdb/tui/tui-io.c +++ b/gdb/tui/tui-io.c @@ -912,6 +912,57 @@ tui_initialize_io (void) #endif } +/* Dispatch the correct tui function based upon the control + character. */ +static unsigned int +tui_dispatch_ctrl_char (unsigned int ch) +{ + struct tui_win_info *win_info = tui_win_with_focus (); + + /* Handle the CTRL-L refresh for each window. */ + if (ch == '\f') + tui_refresh_all_win (); + + /* If no window has the focus, or if the focus window can't scroll, + just pass the character through. */ + if (win_info == NULL || !win_info->can_scroll ()) + return ch; + + switch (ch) + { + case KEY_NPAGE: + win_info->forward_scroll (0); + break; + case KEY_PPAGE: + win_info->backward_scroll (0); + break; + case KEY_DOWN: + case KEY_SF: + win_info->forward_scroll (1); + break; + case KEY_UP: + case KEY_SR: + win_info->backward_scroll (1); + break; + case KEY_RIGHT: + win_info->left_scroll (1); + break; + case KEY_LEFT: + win_info->right_scroll (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; +} + /* Get a character from the command window. This is called from the readline package. */ static int |