summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2023-01-10 17:29:29 +0000
committerBram Moolenaar <Bram@vim.org>2023-01-10 17:29:29 +0000
commit79c11e399be3d96ed6d1c7458b1380e878ec717b (patch)
treeb139ea23e8bba198910da239d3aae57e6ba18d27
parent2bc849ff811059d25310399f982c6706faa7eb35 (diff)
downloadvim-git-79c11e399be3d96ed6d1c7458b1380e878ec717b.tar.gz
patch 9.0.1172: when 'selection' is "exclusive" then "1v" is one char shortv9.0.1172
Problem: When 'selection' is "exclusive" then "1v" is one char short. Solution: Add one character when 'selection' is "exclusive. (closes #11791)
-rw-r--r--src/normal.c4
-rw-r--r--src/testdir/test_visual.vim12
-rw-r--r--src/version.c2
3 files changed, 17 insertions, 1 deletions
diff --git a/src/normal.c b/src/normal.c
index cc4e2467f..c319be599 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5472,7 +5472,9 @@ nv_visual(cmdarg_T *cap)
if (resel_VIsual_line_count <= 1)
{
update_curswant_force();
- curwin->w_curswant += resel_VIsual_vcol * cap->count0 - 1;
+ curwin->w_curswant += resel_VIsual_vcol * cap->count0;
+ if (*p_sel != 'e')
+ --curwin->w_curswant;
}
else
curwin->w_curswant = resel_VIsual_vcol;
diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim
index 573a2cf49..df781a019 100644
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -1336,6 +1336,18 @@ func Test_visual_reselect_with_count()
bwipe!
endfunc
+func Test_visual_reselect_exclusive()
+ new
+ call setline(1, ['abcde', 'abcde'])
+ set selection=exclusive
+ normal 1G0viwd
+ normal 2G01vd
+ call assert_equal(['', ''], getline(1, 2))
+
+ set selection&
+ bwipe!
+endfunc
+
func Test_visual_block_insert_round_off()
new
" The number of characters are tuned to fill a 4096 byte allocated block,
diff --git a/src/version.c b/src/version.c
index da397ee4b..6ab7b95de 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1172,
+/**/
1171,
/**/
1170,