1
0
forked from aniani/vim

patch 8.2.1568: prop_find() skips properties in the same line

Problem:    prop_find() skips properties in the same line if "skipstart" is
            used.
Solution:   Use "continue" instead of "break". (closes #6840)
This commit is contained in:
Bram Moolenaar
2020-09-02 19:59:00 +02:00
parent 6efa46f4ef
commit 4da7a259f6
3 changed files with 20 additions and 2 deletions

View File

@@ -211,6 +211,22 @@ func Test_prop_find()
call prop_clear(1,6) call prop_clear(1,6)
call prop_type_delete('prop_name') call prop_type_delete('prop_name')
" Multiple props per line, start on the first, should find the second.
let expected = {'lnum': 1, 'id': 0, 'col': 14, 'end': 1, 'type': 'misspell', 'length': 2, 'start': 1}
eval ['the quikc bronw fox jumsp over the layz dog']->repeat(2)->setline(1)
call prop_type_add('misspell', #{highlight: 'ErrorMsg'})
for lnum in [1, 2]
for col in [8, 14, 24, 38]
call prop_add(lnum, col, #{type: 'misspell', length: 2})
endfor
endfor
call cursor(1, 8)
let result = prop_find(#{type: 'misspell', skipstart: 1}, 'f')
call assert_equal(expected, result)
call prop_type_delete('misspell')
bwipe!
endfunc endfunc
func Test_prop_find_smaller_len_than_match_col() func Test_prop_find_smaller_len_than_match_col()

View File

@@ -718,7 +718,7 @@ f_prop_find(typval_T *argvars, typval_T *rettv)
// on a prop and we're not skipping. // on a prop and we're not skipping.
if (start_pos_has_prop && !skipstart) if (start_pos_has_prop && !skipstart)
dir = -1; dir = -1;
break; continue;
} }
// If skipstart is true, skip the prop at start pos (even if // If skipstart is true, skip the prop at start pos (even if
@@ -726,7 +726,7 @@ f_prop_find(typval_T *argvars, typval_T *rettv)
if (start_pos_has_prop && skipstart && !seen_end) if (start_pos_has_prop && skipstart && !seen_end)
{ {
start_pos_has_prop = 0; start_pos_has_prop = 0;
break; continue;
} }
prop_fill_dict(rettv->vval.v_dict, &prop, buf); prop_fill_dict(rettv->vval.v_dict, &prop, buf);

View File

@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1568,
/**/ /**/
1567, 1567,
/**/ /**/