diff options
author | Bram Moolenaar <Bram@vim.org> | 2015-11-19 20:11:54 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2015-11-19 20:11:54 +0100 |
commit | d29c6fea94947b3f4b54fbd5a6f832a7d744bf27 (patch) | |
tree | e7a1038edad7ed8ae58ce1ac444ffa7680ffc98b /src | |
parent | 5d8afebb5bf7fb1e8ce06062451dc6a1f9a53ac0 (diff) | |
download | vim-git-d29c6fea94947b3f4b54fbd5a6f832a7d744bf27.tar.gz |
patch 7.4.929v7.4.929
Problem: "gv" after paste selects one character less if 'selection' is
"exclusive".
Solution: Increment the end position. (Christian Brabandt)
Diffstat (limited to 'src')
-rw-r--r-- | src/normal.c | 3 | ||||
-rw-r--r-- | src/testdir/test94.in | 15 | ||||
-rw-r--r-- | src/testdir/test94.ok | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |