1
0
forked from aniani/vim

patch 8.2.0887: searchcount().exact_match is 1 right after a match

Problem:    Searchcount().exact_match is 1 right after a match.
Solution:   Use LT_POS() instead of LTOREQ_POS(). (closes #6189)
This commit is contained in:
Bram Moolenaar
2020-06-02 22:06:21 +02:00
parent c17e66c5c0
commit 57f75a5a36
3 changed files with 11 additions and 1 deletions

View File

@@ -3252,7 +3252,7 @@ update_search_stat(
if (LTOREQ_POS(lastpos, p)) if (LTOREQ_POS(lastpos, p))
{ {
cur = cnt; cur = cnt;
if (LTOREQ_POS(p, endpos)) if (LT_POS(p, endpos))
exact_match = TRUE; exact_match = TRUE;
} }
fast_breakcheck(); fast_breakcheck();

View File

@@ -27,6 +27,14 @@ func Test_search_stat()
call assert_equal( call assert_equal(
\ #{current: 1, exact_match: 1, total: 10, incomplete: 0, maxcount: 99}, \ #{current: 1, exact_match: 1, total: 10, incomplete: 0, maxcount: 99},
\ searchcount(#{pattern: 'fooooobar', pos: [3, 1, 0]})) \ searchcount(#{pattern: 'fooooobar', pos: [3, 1, 0]}))
" on last char of match
call assert_equal(
\ #{current: 1, exact_match: 1, total: 10, incomplete: 0, maxcount: 99},
\ searchcount(#{pattern: 'fooooobar', pos: [3, 9, 0]}))
" on char after match
call assert_equal(
\ #{current: 1, exact_match: 0, total: 10, incomplete: 0, maxcount: 99},
\ searchcount(#{pattern: 'fooooobar', pos: [3, 10, 0]}))
call assert_equal( call assert_equal(
\ #{current: 1, exact_match: 0, total: 10, incomplete: 0, maxcount: 99}, \ #{current: 1, exact_match: 0, total: 10, incomplete: 0, maxcount: 99},
\ searchcount(#{pattern: 'fooooobar', pos: [4, 1, 0]})) \ searchcount(#{pattern: 'fooooobar', pos: [4, 1, 0]}))

View File

@@ -746,6 +746,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 */
/**/
887,
/**/ /**/
886, 886,
/**/ /**/