diff options
author | Bram Moolenaar <Bram@vim.org> | 2023-01-10 17:29:29 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-01-10 17:29:29 +0000 |
commit | 79c11e399be3d96ed6d1c7458b1380e878ec717b (patch) | |
tree | b139ea23e8bba198910da239d3aae57e6ba18d27 | |
parent | 2bc849ff811059d25310399f982c6706faa7eb35 (diff) | |
download | vim-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.c | 4 | ||||
-rw-r--r-- | src/testdir/test_visual.vim | 12 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |