summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/normal.c3
-rw-r--r--src/testdir/test94.in15
-rw-r--r--src/testdir/test94.ok9
-rw-r--r--src/version.c2
4 files changed, 29 insertions, 0 deletions
diff --git a/src/normal.c b/src/normal.c
index b994056e6..b9170ace5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -9496,6 +9496,9 @@ nv_put(cap)
{
curbuf->b_visual.vi_start = curbuf->b_op_start;
curbuf->b_visual.vi_end = curbuf->b_op_end;
+ /* need to adjust cursor position */
+ if (*p_sel == 'e')
+ inc(&curbuf->b_visual.vi_end);
}
/* When all lines were selected and deleted do_put() leaves an empty
diff --git a/src/testdir/test94.in b/src/testdir/test94.in
index 287d9dc9c..aa86fc1df 100644
--- a/src/testdir/test94.in
+++ b/src/testdir/test94.in
@@ -210,6 +210,21 @@ $vp
:-2yank
$v$p
:$put ='---'
+:
+:$put =''
+:$put ='gv in exclusive select mode after operation'
+:$put ='zzz '
+:$put ='äà '
+:set selection=exclusive
+kv3lyjv3lpgvcxxx
+:$put ='---'
+:
+:$put =''
+:$put ='gv in exclusive select mode without operation'
+:$put ='zzz '
+:set selection=exclusive
+0v3lgvcxxx
+:$put ='---'
:/^start:/+2,$w! test.out
:q!
ENDTEST
diff --git a/src/testdir/test94.ok b/src/testdir/test94.ok
index a1b037813..c02392217 100644
--- a/src/testdir/test94.ok
+++ b/src/testdir/test94.ok
@@ -112,3 +112,12 @@ cc
aaa
---
+
+gv in exclusive select mode after operation
+zzz
+xxx
+---
+
+gv in exclusive select mode without operation
+xxx
+---
diff --git a/src/version.c b/src/version.c
index 77a256448..fc286b828 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 929,
+/**/
928,
/**/
927,