public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Give a name to the TUI SingleKey keymap
@ 2019-09-18 21:17 Tom Tromey
  0 siblings, 0 replies; only message in thread
From: Tom Tromey @ 2019-09-18 21:17 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=11061048d1fed4465b0e62eb3c14dabf0beab59b

commit 11061048d1fed4465b0e62eb3c14dabf0beab59b
Author: Tom Tromey <tom@tromey.com>
Date:   Tue Sep 10 17:25:35 2019 -0600

    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.

Diff:
---
 gdb/ChangeLog       | 7 +++++++
 gdb/NEWS            | 4 ++++
 gdb/doc/ChangeLog   | 5 +++++
 gdb/doc/gdb.texinfo | 8 ++++++++
 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.
diff --git a/gdb/NEWS b/gdb/NEWS
index 947b743..1fefd81 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -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 ();


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-09-18 21:17 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-18 21:17 [binutils-gdb] Give a name to the TUI SingleKey keymap Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).