From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21238 invoked by alias); 18 Dec 2017 12:06:21 -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: List-Unsubscribe: X-Seq: 42142 Received: (qmail 4594 invoked by uid 1010); 18 Dec 2017 12:06:21 -0000 X-Qmail-Scanner-Diagnostics: from rcpt-mqugw.biglobe.ne.jp by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(133.208.100.4):SA:0(-2.6/5.0):. Processed in 3.355002 secs); 18 Dec 2017 12:06:21 -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=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: takimoto-j@kba.biglobe.ne.jp X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | X-Biglobe-Sender: From: Jun T Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: Zle widgets for vi-mode word motion: patch and a question Date: Mon, 18 Dec 2017 20:05:55 +0900 References: <21671458-6017-48A0-B90E-D33CF207F81B@kba.biglobe.ne.jp> To: zsh-workers@zsh.org In-Reply-To: <21671458-6017-48A0-B90E-D33CF207F81B@kba.biglobe.ne.jp> Message-Id: X-Mailer: Apple Mail (2.3273) X-Biglobe-Spnum: 64504 Sorry, I've found a simple bug in my previous patch (fixed by the last hunk in the patch below). I also noticed that, in a few widgets, wrong functions were called for negative numeric argument (the first three hunks). diff --git a/Src/Zle/zle_word.c b/Src/Zle/zle_word.c index 4910d765b..89959b20c 100644 --- a/Src/Zle/zle_word.c +++ b/Src/Zle/zle_word.c @@ -86,7 +86,7 @@ viforwardword(char **args) if (n < 0) { int ret; zmult = -n; - ret = backwardword(args); + ret = vibackwardword(args); zmult = n; return ret; } @@ -168,7 +168,7 @@ viforwardblankwordend(char **args) if (n < 0) { int ret; zmult = -n; - ret = viforwardblankwordend(args); + ret = vibackwardblankwordend(args); zmult = n; return ret; } @@ -276,7 +276,7 @@ vibackwardword(char **args) if (n < 0) { int ret; zmult = -n; - ret = backwardword(args); + ret = viforwardword(args); zmult = n; return ret; } @@ -482,7 +482,7 @@ vibackwardkillword(UNUSED(char **args)) cc = wordclass(zleline[pos]); for (;;) { x = pos; - if (x < lim) + if (x <= lim) break; DECPOS(pos); if (wordclass(zleline[pos]) != cc)