summary refs log tree commit diff
diff options
context:
space:
mode:
authorJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2017-12-18 23:49:31 +0900
committerJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2017-12-18 23:49:31 +0900
commitdae5d1d5ba8d1e3035d8bc299f221c54e8c90de6 (patch)
tree29b60d2327e3be6b6efa9deaf87aaaa7f81a1820
parent5f33a93afb4da354ce81a564805826995550d275 (diff)
downloadzsh-dae5d1d5ba8d1e3035d8bc299f221c54e8c90de6.tar.gz
zsh-dae5d1d5ba8d1e3035d8bc299f221c54e8c90de6.tar.xz
zsh-dae5d1d5ba8d1e3035d8bc299f221c54e8c90de6.zip
42412: fix a bug in 42116
Also fix a few widgets which were calling wrong function when negative
numeric argument was given.
-rw-r--r--ChangeLog6
-rw-r--r--Src/Zle/zle_word.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index e8913487d..60bbcf640 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2017-12-18  Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
 
+	* 42412: Src/Zle/zle_word.c: fix a bug in 42116. Also fix a few
+	widgets which were calling wrong function when negative numeric
+	argument was given.
+
+2017-12-18  Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
+
 	* 42116: Src/Zle/zle_word.c, Src/Zle/textobjects.c, Src/Zle/zle.h,
 	Test/X02zlevi.ztst: multibyte support for Zle vi-mode word motion
 
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)