about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2015-08-22 21:54:31 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2015-08-22 21:54:31 -0700
commit43079e5d8ec4e3016c380a6043c90f94fe45d72a (patch)
tree346191c8ad09e9601b2de9e8a51cc1da676c3de8
parent1cfe4ca1926bc2c8041290bb0d8c3dccf8662f52 (diff)
downloadzsh-43079e5d8ec4e3016c380a6043c90f94fe45d72a.tar.gz
zsh-43079e5d8ec4e3016c380a6043c90f94fe45d72a.tar.xz
zsh-43079e5d8ec4e3016c380a6043c90f94fe45d72a.zip
36274: clear virangeflag when getvirange() has an error (the next keystroke is not a motion/selection).
-rw-r--r--ChangeLog3
-rw-r--r--Src/Zle/zle_vi.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1cc9ff1ec..746caece8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2015-08-22  Barton E. Schaefer  <schaefer@zsh.org>
 
+	* 36274: Src/Zle/zle_vi.c: clear virangeflag when getvirange()
+	has an error (the next keystroke is not a motion/selection).
+
 	* 36273: Src/Zle/zle_move.c: teach endofline() and endoflinehist()
 	about invicmdmode() cursor placement.
 
diff --git a/Src/Zle/zle_vi.c b/Src/Zle/zle_vi.c
index 1a11ca7d5..42dc46e7e 100644
--- a/Src/Zle/zle_vi.c
+++ b/Src/Zle/zle_vi.c
@@ -224,6 +224,7 @@ getvirange(int wf)
 	    ZS_memcpy(zleline, lastline, zlell = lastll);
 	    zlecs = pos;
 	    mark = mpos;
+	    virangeflag = 0;
 	    return -1;
 	}
 
@@ -232,6 +233,7 @@ getvirange(int wf)
 	if (!zlell || (zlecs == pos && (mark == -1 || mark == zlecs) &&
 		    virangeflag != 2) || ret == -1) {
 	    mark = mpos;
+	    virangeflag = 0;
 	    return -1;
 	}
 	virangeflag = 0;