This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Intercept and handle Delete/Home/End keys in the TUI
- From: Patrick Palka <patrick at parcs dot ath dot cx>
- To: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Cc: Patrick Palka <patrick at parcs dot ath dot cx>
- Date: Wed, 3 Jun 2015 19:55:11 -0400
- Subject: Re: [PATCH] Intercept and handle Delete/Home/End keys in the TUI
- Authentication-results: sourceware.org; auth=none
- References: <1433374131-30902-1-git-send-email-patrick at parcs dot ath dot cx>
On Wed, Jun 3, 2015 at 7:28 PM, Patrick Palka <patrick@parcs.ath.cx> wrote:
> These keys are mapped by wgetch() to special ncurses-specific values and
> are otherwise passed through to readline, to no useful effect.
>
> This patch intercepts these keys in the TUI and gives them their
> expected function.
The commit message is slightly misleading. These keys work as
expected when the command window is in focus. But when another window
is in focus, these keys currently have no function. This patch gives
them their expected function when the command window is not in focus.
Alternatively when the command window is not in focus the Home and
Delete keys could be given the function of scrolling the source/disasm
windows all the way up or down. Personally I don't think that is very
useful. I think the traditional binding would probably see more use.
Nonetheless I will reword the commit message to mention the focus aspect.
>
> gdb/ChangeLog:
>
> * tui/tui-command.c: Include "readline/readline.h".
> (tui_dispatch_ctrl_char): Handle KEY_DC, KEY_HOME and KEY_END.
> ---
> gdb/tui/tui-command.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/gdb/tui/tui-command.c b/gdb/tui/tui-command.c
> index 03ec076..84ba2b7 100644
> --- a/gdb/tui/tui-command.c
> +++ b/gdb/tui/tui-command.c
> @@ -27,6 +27,7 @@
> #include "tui/tui-command.h"
>
> #include "gdb_curses.h"
> +#include "readline/readline.h"
> /*****************************************
> ** STATIC LOCAL FUNCTIONS FORWARD DECLS **
> ******************************************/
> @@ -76,6 +77,15 @@ tui_dispatch_ctrl_char (unsigned int ch)
> case KEY_LEFT:
> tui_scroll_right (win_info, 1);
> break;
> + case KEY_DC:
> + rl_delete (1, ch);
> + break;
> + case KEY_HOME:
> + rl_point = 0;
> + break;
> + case KEY_END:
> + rl_point = rl_end;
> + break;
> case '\f':
> break;
> default:
> --
> 2.4.2.387.gf86f31a.dirty
>