diff options
author | Tom Tromey <tom@tromey.com> | 2019-09-10 17:25:35 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-09-18 15:03:29 -0600 |
commit | 11061048d1fed4465b0e62eb3c14dabf0beab59b (patch) | |
tree | fda69cbe391d420c44ee650f6b2267d77efd71e4 | |
parent | 7a27b85f6d9b5eea9bd1493f903158fbea4b2231 (diff) | |
download | gdb-11061048d1fed4465b0e62eb3c14dabf0beab59b.zip gdb-11061048d1fed4465b0e62eb3c14dabf0beab59b.tar.gz gdb-11061048d1fed4465b0e62eb3c14dabf0beab59b.tar.bz2 |
Give a name to the TUI SingleKey keymap
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-18 Tom Tromey <tom@tromey.com>
* NEWS: Add entry.
* 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-18 Tom Tromey <tom@tromey.com>
* gdb.texinfo (Editing): Document readline application name.
(TUI Single Key Mode): Document TUI SingleKey keymap name.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/NEWS | 4 | ||||
-rw-r--r-- | gdb/doc/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/doc/gdb.texinfo | 8 | ||||
-rw-r--r-- | gdb/tui/tui.c | 9 |
5 files changed, 30 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1ad694a..f8228b4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2019-09-18 Tom Tromey <tom@tromey.com> + + * NEWS: Add entry. + * tui/tui.c (tui_initialize_readline): Set name of keymap. Do not + call rl_initialize. + (tui_enable): Do not call rl_initialize. + 2019-09-18 Christian Groessler <chris@groessler.org> * alpha-linux-nat.c: Include gdbarch.h. @@ -323,6 +323,10 @@ maint show test-options-completion-result GDB now bundles GNU readline 8.0, but if you choose to use --with-system-readline, only readline >= 7.0 can be used. +* The TUI SingleKey keymap is now named "SingleKey". This can be used + from .inputrc to bind keys in this keymap. This feature is only + available when gdb is built against GNU readline 8.0 or later. + *** Changes in GDB 8.3 * GDB and GDBserver now support access to additional registers on diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index a16d32d..8eaaab3 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2019-09-18 Tom Tromey <tom@tromey.com> + + * gdb.texinfo (Editing): Document readline application name. + (TUI Single Key Mode): Document TUI SingleKey keymap name. + 2019-09-17 Andrew Burgess <andrew.burgess@embecosm.com> * gdb.texinfo (Source Path): Additional text to better describe diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index f4bfd9f..a129ea0 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -25056,6 +25056,10 @@ for more details about the Readline interface. Users unfamiliar with @sc{gnu} Emacs or @code{vi} are encouraged to read that chapter. +@cindex Readline application name +@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 @@ -27658,6 +27662,10 @@ 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}. +@cindex SingleKey keymap name +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 db34e0c..5d6b9f3 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 (); |