From patchwork Tue Sep 17 21:23:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 34555 Received: (qmail 85968 invoked by alias); 17 Sep 2019 21:23:31 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 85960 invoked by uid 89); 17 Sep 2019 21:23:31 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-19.3 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.1 spammy=hows, typing, HX-Languages-Length:4636, restored X-HELO: gateway36.websitewelcome.com Received: from gateway36.websitewelcome.com (HELO gateway36.websitewelcome.com) (192.185.193.119) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 17 Sep 2019 21:23:29 +0000 Received: from cm16.websitewelcome.com (cm16.websitewelcome.com [100.42.49.19]) by gateway36.websitewelcome.com (Postfix) with ESMTP id AE8D1400C8426 for ; Tue, 17 Sep 2019 15:50:32 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id AKwaialRM4FKpAKwaib4fw; Tue, 17 Sep 2019 16:23:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=O65oWnxYWxPiP23Fd9NQrPMj49wtqrNsWgwU6/Ao6v4=; b=xCMWSFC0WB6osuYGzAOcG/YNqK XmewWEoiTEmMkoi8p3sTVOI6Dyw0xMXCIZj78obLD4Pi8GlVeIh+VsiKbC8Lipl3F/Ek2xvhqu7i1 57tecRj3y9UVPBvPeigLRjupG; Received: from 71-218-73-27.hlrn.qwest.net ([71.218.73.27]:56030 helo=bapiya) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from ) id 1iAKwZ-004JhT-Q1; Tue, 17 Sep 2019 16:23:27 -0500 From: Tom Tromey To: Eli Zaretskii Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [PATCH] Give a name to the TUI SingleKey keymap References: <20190911004352.24819-1-tom@tromey.com> <83sgp31rpq.fsf@gnu.org> Date: Tue, 17 Sep 2019 15:23:26 -0600 In-Reply-To: <83sgp31rpq.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 11 Sep 2019 05:39:45 +0300") Message-ID: <87ef0ehb1t.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1.91 (gnu/linux) MIME-Version: 1.0 Eli> The documentation part is OK, but please add index entries to the new Eli> information, so that it could be easily found if someone forgets the Eli> details. Eli> Also, should this be in NEWS? Yes. How's this? Tom commit 1830e30762c53b88057e33b6044660a3da136099 Author: Tom Tromey 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-17 Tom Tromey * 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-17 Tom Tromey * gdb.texinfo (Editing): Document readline application name. (TUI Single Key Mode): Document TUI SingleKey keymap name. diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4c354700c45..f5596f2e809 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2019-09-17 Tom Tromey + + * 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-11 Christian Biesinger * auto-load.c (auto_load_expand_dir_vars): Update. diff --git a/gdb/NEWS b/gdb/NEWS index f382e887c0c..8f4ba6c03dd 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -318,6 +318,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 96c04091973..79024096c07 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2019-09-17 Tom Tromey + + * gdb.texinfo (Editing): Document readline application name. + (TUI Single Key Mode): Document TUI SingleKey keymap name. + 2019-09-10 Tom Tromey * gdb.texinfo (Index Files): Update Ada text. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 79824a0226a..5c50a7e28ac 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -24975,6 +24975,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 @@ -27577,6 +27581,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 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 ();