From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23735 invoked by alias); 3 Apr 2016 04:42:08 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 38233 Received: (qmail 10401 invoked from network); 3 Apr 2016 04:42:07 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id; bh=lizaYfBxf7wx3jmXTnQVCO9D1UB09Nxmao9ws5AOE7M=; b=S/Q674Q1Ujp9eCaLEUu4bISNra8i7/t8JAuGXPYSj3+Ixn/ktMEDiAtAqNqkDiNjkJ yXiAIIhC4xCiXIuoL/41Gi/FFoM/nf4YK+965zg7TEs9vPiPlIkS8oNWz4JpnROcDZku 5li6oin2l106gUiMX+FXKH4WfM8D0WBDl/KurYQKeK4dZW9jXorNlFz1uQNy9IXuxg74 i/pG+xQeOU7BUkmRr9gpja6ezDsT/9NlefG+sbYsr9tRb3A5LbeyrM00ePAnqEd8gGFV +yVKSNH5wQowFTC7mCUzLCnT7l+J/fc0dC0EN6tbPjpxIQaVPLMu1oW09ClVpYbmxFu8 SZ7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=lizaYfBxf7wx3jmXTnQVCO9D1UB09Nxmao9ws5AOE7M=; b=XA+xd51pHMXpRaB/wkfRhVwIewy7G89SFGQXP2NsdVQ+uZCTAnZMNrlbwWvWmwTL7Z g/IjqelrPSAsboBEMwOuzHd7OIE/Aq/nGRXt5XHnMpBCy4f1hn4et6eq8+j3qToRGNfE 6B2BLX2k/dtdoPSNGBCYn7gQMsS8xwBt51Nmvu4Kw4jIV5d0jYk6T66LfevsNGL7SKMI TdVgyK6h9mq/qK4JQalMidNpsusv8WYwOl7pSddo0f4mF7zusdgiOal6HhmjnPpmd8JA AkcUGARVUNxdtYFMc8fZzGgdY5YK/zqDapiumUXLBJDVqklXBDmlU01C2dStSEAQGwRZ LL4Q== X-Gm-Message-State: AD7BkJL+qOtDWPWhRzoXdHrD+wyXv3J0Ht1rHNgx2iKUgWvy7BIfFF3f9h166ePAnXrK4Q== X-Received: by 10.194.5.36 with SMTP id p4mr2778182wjp.167.1459658522094; Sat, 02 Apr 2016 21:42:02 -0700 (PDT) From: Mikael Magnusson To: zsh-workers@zsh.org Subject: PATCH: Add SHORT_KEYBIND_DISCARD option Date: Sun, 3 Apr 2016 06:41:54 +0200 Message-Id: <1459658514-24610-1-git-send-email-mikachu@gmail.com> X-Mailer: git-send-email 2.6.1 Not sure how popular this option would be, but I'm fine with keeping it local too. Basically when we encounter an undefined key, instead of discarding the entire common prefix, we discard only one byte and try again. In most particular, it means if you happen to press escape or ctrl-x before pasting, we still properly detect the bracketed-paste starting code. --- Src/Zle/zle_keymap.c | 8 ++++++-- Src/options.c | 1 + Src/zsh.h | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Src/Zle/zle_keymap.c b/Src/Zle/zle_keymap.c index 7b11933..e8de0cd 100644 --- a/Src/Zle/zle_keymap.c +++ b/Src/Zle/zle_keymap.c @@ -1610,8 +1610,12 @@ getkeymapcmd(Keymap km, Thingy *funcp, char **strp) if (!ispfx) break; } - if(!lastlen && keybuflen) - lastlen = keybuflen; + if(!lastlen && keybuflen) { + if (isset(SHORTKEYBINDDISCARD)) + lastlen = 1; + else + lastlen = keybuflen; + } else lastchar = lastc; if(lastlen != keybuflen) { diff --git a/Src/options.c b/Src/options.c index 008ebf1..fa20eb9 100644 --- a/Src/options.c +++ b/Src/options.c @@ -248,6 +248,7 @@ static struct optname optns[] = { {{NULL, "shinstdin", OPT_SPECIAL}, SHINSTDIN}, {{NULL, "shnullcmd", OPT_EMULATE|OPT_BOURNE}, SHNULLCMD}, {{NULL, "shoptionletters", OPT_EMULATE|OPT_BOURNE}, SHOPTIONLETTERS}, +{{NULL, "shortkeybinddiscard",0}, SHORTKEYBINDDISCARD}, {{NULL, "shortloops", OPT_EMULATE|OPT_NONBOURNE},SHORTLOOPS}, {{NULL, "shwordsplit", OPT_EMULATE|OPT_BOURNE}, SHWORDSPLIT}, {{NULL, "singlecommand", OPT_SPECIAL}, SINGLECOMMAND}, diff --git a/Src/zsh.h b/Src/zsh.h index cbaa351..0dc3248 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -2358,6 +2358,7 @@ enum { SHNULLCMD, SHOPTIONLETTERS, SHORTLOOPS, + SHORTKEYBINDDISCARD, SHWORDSPLIT, SINGLECOMMAND, SINGLELINEZLE, -- 2.6.1