summary refs log tree commit diff
diff options
context:
space:
mode:
-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)