Permalink
Browse files

patch 8.0.0364: ]s does not move cursor with two spell errors in one …

…line

Problem:    ]s does not move cursor with two spell errors in one line. (Manuel
            Ortega)
Solution:   Don't stop search immediately when wrapped, search the line first.
            (Ken Takata)  Add a test.
  • Loading branch information...
brammool committed Feb 25, 2017
1 parent 3834e3d commit d3f78dc9ebd729475a7f24a50a91112e300d5ac9
Showing with 30 additions and 6 deletions.
  1. +1 −0 src/Makefile
  2. +6 −6 src/spell.c
  3. +1 −0 src/testdir/Make_all.mak
  4. +20 −0 src/testdir/test_spell.vim
  5. +2 −0 src/version.c
View
@@ -2193,6 +2193,7 @@ test_arglist \
test_smartindent \
test_sort \
test_source_utf8 \
+ test_spell \
test_startup \
test_startup_utf8 \
test_stat \
View
@@ -1734,14 +1734,14 @@ spell_move_to(
if (curline)
break; /* only check cursor line */
+ /* If we are back at the starting line and searched it again there
+ * is no match, give up. */
+ if (lnum == wp->w_cursor.lnum && wrapped)
+ break;
+
/* Advance to next line. */
if (dir == BACKWARD)
{
- /* If we are back at the starting line and searched it again there
- * is no match, give up. */
- if (lnum == wp->w_cursor.lnum && wrapped)
- break;
-
if (lnum > 1)
--lnum;
else if (!p_ws)
@@ -1775,7 +1775,7 @@ spell_move_to(
/* If we are back at the starting line and there is no match then
* give up. */
- if (lnum == wp->w_cursor.lnum && (!found_one || wrapped))
+ if (lnum == wp->w_cursor.lnum && !found_one)
break;
/* Skip the characters at the start of the next line that were
View
@@ -192,6 +192,7 @@ NEW_TESTS = test_arglist.res \
test_search.res \
test_signs.res \
test_smartindent.res \
+ test_spell.res \
test_startup.res \
test_startup_utf8.res \
test_stat.res \
View
@@ -0,0 +1,20 @@
+" Test spell checking
+" TODO: move test58 tests here
+
+if !has('spell')
+ finish
+endif
+
+func Test_wrap_search()
+ new
+ call setline(1, ['The', '', 'A plong line with two zpelling mistakes', '', 'End'])
+ set spell wrapscan
+ normal ]s
+ call assert_equal('plong', expand('<cword>'))
+ normal ]s
+ call assert_equal('zpelling', expand('<cword>'))
+ normal ]s
+ call assert_equal('plong', expand('<cword>'))
+ bwipe!
+ set nospell
+endfunc
View
@@ -764,6 +764,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 364,
/**/
363,
/**/

0 comments on commit d3f78dc

Please sign in to comment.