From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH] Give a name to the TUI SingleKey keymap
Date: Wed, 11 Sep 2019 00:44:00 -0000 [thread overview]
Message-ID: <20190911004352.24819-1-tom@tromey.com> (raw)
Readline 8.0 has a feature that lets an application name a keymap.
This in turn makes it simpler for users to bind keys in keymaps in
their .inputrc.
This patch gives a name to the TUI SingleKey keymap, so that
additional bindings can be made there. For example:
$if gdb
set keymap SingleKey
"X": "echo hello\\n\n"
$endif
The call to rl_initialize, in tui_initialize_readline, had to be
removed so that .inputrc was not read too early. Note that Readline
explicitly documents that this call is not needed.
gdb/ChangeLog
2019-09-10 Tom Tromey <tom@tromey.com>
* tui/tui.c (tui_initialize_readline): Set name of keymap. Do not
call rl_initialize.
(tui_enable): Do not call rl_initialize.
gdb/doc/ChangeLog
2019-09-10 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Editing): Document readline application name.
(TUI Single Key Mode): Document TUI SingleKey keymap name.
---
gdb/ChangeLog | 6 ++++++
gdb/doc/ChangeLog | 5 +++++
gdb/doc/gdb.texinfo | 6 ++++++
gdb/tui/tui.c | 9 ++++++---
4 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index 53b7de91e47..5d82155a3b0 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -24975,6 +24975,9 @@ for more details about the Readline
interface. Users unfamiliar with @sc{gnu} Emacs or @code{vi} are
encouraged to read that chapter.
+@value{GDBN} sets the Readline application name to @samp{gdb}. This
+is useful for conditions in @file{.inputrc}.
+
@node Command History
@section Command History
@cindex command history
@@ -27577,6 +27580,9 @@ with the TUI SingleKey mode. Once the command is entered the TUI
SingleKey mode is restored. The only way to permanently leave
this mode is by typing @kbd{q} or @kbd{C-x s}.
+If @value{GDBN} was built with Readline 8.0 or later, the TUI
+SingleKey keymap will be named @samp{SingleKey}. This can be used in
+@file{.inputrc} to add additional bindings to this keymap.
@node TUI Commands
@section TUI-specific Commands
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index db34e0c0441..5d6b9f32036 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -329,13 +329,17 @@ tui_initialize_readline (void)
int i;
Keymap tui_ctlx_keymap;
- rl_initialize ();
-
rl_add_defun ("tui-switch-mode", tui_rl_switch_mode, -1);
rl_add_defun ("gdb-command", tui_rl_command_key, -1);
rl_add_defun ("next-keymap", tui_rl_next_keymap, -1);
tui_keymap = rl_make_bare_keymap ();
+
+ /* The named keymap feature was added in Readline 8.0. */
+#if RL_READLINE_VERSION >= 0x800
+ rl_set_keymap_name ("SingleKey", tui_keymap);
+#endif
+
tui_ctlx_keymap = rl_make_bare_keymap ();
tui_readline_standard_keymap = rl_get_keymap ();
@@ -467,7 +471,6 @@ tui_enable (void)
nodelay(w, FALSE);
nl();
keypad (w, TRUE);
- rl_initialize ();
tui_set_term_height_to (LINES);
tui_set_term_width_to (COLS);
def_prog_mode ();
--
2.17.2
next reply other threads:[~2019-09-11 0:44 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-11 0:44 Tom Tromey [this message]
2019-09-11 2:39 ` Eli Zaretskii
2019-09-17 21:23 ` Tom Tromey
2019-09-18 2:37 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190911004352.24819-1-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox