From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.bugs Subject: bug#32501: Bouncing parentheses broken in REPL with vi-mode enabled Date: Fri, 24 Aug 2018 01:36:00 -0400 Message-ID: <87tvnkcon3.fsf@netris.org> References: <0290e793-0acc-31ed-1d7e-61ed65b9bcf2@gmail.com> <87pny9by7s.fsf@netris.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1535089250 17612 195.159.176.226 (24 Aug 2018 05:40:50 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 24 Aug 2018 05:40:50 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) Cc: 32501@debbugs.gnu.org To: Daniel Tam Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Fri Aug 24 07:40:46 2018 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ft4px-0004SW-Rh for guile-bugs@m.gmane.org; Fri, 24 Aug 2018 07:40:45 +0200 Original-Received: from localhost ([::1]:39957 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ft4s3-0006TB-Vx for guile-bugs@m.gmane.org; Fri, 24 Aug 2018 01:42:56 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54710) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ft4ro-0006O5-Ff for bug-guile@gnu.org; Fri, 24 Aug 2018 01:42:44 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ft4nK-0004kj-DQ for bug-guile@gnu.org; Fri, 24 Aug 2018 01:38:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:54254) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ft4nK-0004jq-6m for bug-guile@gnu.org; Fri, 24 Aug 2018 01:38:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ft4nJ-0004qF-Rk for bug-guile@gnu.org; Fri, 24 Aug 2018 01:38:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Mark H Weaver Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Fri, 24 Aug 2018 05:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 32501 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 32501-submit@debbugs.gnu.org id=B32501.153508906118573 (code B ref 32501); Fri, 24 Aug 2018 05:38:01 +0000 Original-Received: (at 32501) by debbugs.gnu.org; 24 Aug 2018 05:37:41 +0000 Original-Received: from localhost ([127.0.0.1]:59269 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ft4mz-0004pU-03 for submit@debbugs.gnu.org; Fri, 24 Aug 2018 01:37:41 -0400 Original-Received: from world.peace.net ([64.112.178.59]:41786) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ft4mx-0004pI-Ci for 32501@debbugs.gnu.org; Fri, 24 Aug 2018 01:37:39 -0400 Original-Received: from mhw by world.peace.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1ft4mr-0000w2-G9; Fri, 24 Aug 2018 01:37:33 -0400 In-Reply-To: <87pny9by7s.fsf@netris.org> (Mark H. Weaver's message of "Wed, 22 Aug 2018 22:42:15 -0400") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: "bug-guile" Xref: news.gmane.org gmane.lisp.guile.bugs:9132 Archived-At: Hello again, I wrote: > The relevant function is 'init_bouncing_parens' in > guile-readline/readline.c: > > static void > init_bouncing_parens () > { > if (strncmp (rl_get_keymap_name (rl_get_keymap ()), "vi", 2)) > { > rl_bind_key (')', match_paren); > rl_bind_key (']', match_paren); > rl_bind_key ('}', match_paren); > } > } [...] > The right fix might be to simply remove the 'if' check above. Actually, it probably won't be that simple. Whereas in emacs mode, we can probably rely on these bindings being added to the correct keymap, namely 'emacs_standard_keymap', when in vi mode it's likely that these bindings would end up in the wrong keymap, namely 'vi_movement_keymap'. When in vi mode, these mappings should be added to 'vi_insertion_keymap', and that probably involves using 'rl_bind_key_in_map' instead of 'rl_bind_key'. Mark