summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-12-21 20:27:47 +0100
committerBram Moolenaar <Bram@vim.org>2017-12-21 20:27:47 +0100
commitb73fa629d6d3d705c1f8e8d5f8109fc9abd7bb6f (patch)
tree9969ba546d128ada78ef1cb7603caa135b4df255 /src
parentae6f8651251013bafef9de1aed09069deaae8122 (diff)
patch 8.0.1419: cursor column is not updated after ]sv8.0.1419
Problem: Cursor column is not updated after ]s. (Gary Johnson) Solution: Set the curswant flag.
Diffstat (limited to 'src')
-rw-r--r--src/evalfunc.c3
-rw-r--r--src/normal.c2
-rw-r--r--src/testdir/test_spell.vim31
-rw-r--r--src/version.c2
4 files changed, 38 insertions, 0 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 7f78a9d707..764a4db641 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -11173,7 +11173,10 @@ f_spellbadword(typval_T *argvars UNUSED, typval_T *rettv)
/* Find the start and length of the badly spelled word. */
len = spell_move_to(curwin, FORWARD, TRUE, TRUE, &attr);
if (len != 0)
+ {
word = ml_get_cursor();
+ curwin->w_set_curswant = TRUE;
+ }
}
else if (curwin->w_p_spell && *curbuf->b_s.b_p_spl != NUL)
{
diff --git a/src/normal.c b/src/normal.c
index a8e65ffd62..745a2f68ce 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -6814,6 +6814,8 @@ nv_brackets(cmdarg_T *cap)
clearopbeep(cap->oap);
break;
}
+ else
+ curwin->w_set_curswant = TRUE;
# ifdef FEAT_FOLDING
if (cap->oap->op_type == OP_NOP && (fdo_flags & FDO_SEARCH) && KeyTyped)
foldOpenCursor();
diff --git a/src/testdir/test_spell.vim b/src/testdir/test_spell.vim
index 54209fec72..3e8ba1defa 100644
--- a/src/testdir/test_spell.vim
+++ b/src/testdir/test_spell.vim
@@ -28,6 +28,37 @@ func Test_wrap_search()
set nospell
endfunc
+func Test_curswant()
+ new
+ call setline(1, ['Another plong line', 'abcdefghijklmnopq'])
+ set spell wrapscan
+ normal 0]s
+ call assert_equal('plong', expand('<cword>'))
+ normal j
+ call assert_equal(9, getcurpos()[2])
+ normal 0[s
+ call assert_equal('plong', expand('<cword>'))
+ normal j
+ call assert_equal(9, getcurpos()[2])
+
+ normal 0]S
+ call assert_equal('plong', expand('<cword>'))
+ normal j
+ call assert_equal(9, getcurpos()[2])
+ normal 0[S
+ call assert_equal('plong', expand('<cword>'))
+ normal j
+ call assert_equal(9, getcurpos()[2])
+
+ normal 1G0
+ call assert_equal('plong', spellbadword()[0])
+ normal j
+ call assert_equal(9, getcurpos()[2])
+
+ bwipe!
+ set nospell
+endfunc
+
func Test_z_equal_on_invalid_utf8_word()
split
set spell
diff --git a/src/version.c b/src/version.c
index 9f034d78c6..6ae2135355 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1419,
+/**/
1418,
/**/
1417,