Mercurial > vim
changeset 20667:a126f643d566 v8.2.0887
patch 8.2.0887: searchcount().exact_match is 1 right after a match
Commit: https://github.com/vim/vim/commit/57f75a5a364ad4d8334fdf6b6b41420b48e08390
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 2 22:06:21 2020 +0200
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 https://github.com/vim/vim/issues/6189)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 02 Jun 2020 22:15:04 +0200 |
parents | e66b9b38cfab |
children | ba02770e447a |
files | src/search.c src/testdir/test_search_stat.vim src/version.c |
diffstat | 3 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/search.c +++ b/src/search.c @@ -3252,7 +3252,7 @@ update_search_stat( if (LTOREQ_POS(lastpos, p)) { cur = cnt; - if (LTOREQ_POS(p, endpos)) + if (LT_POS(p, endpos)) exact_match = TRUE; } fast_breakcheck();
--- a/src/testdir/test_search_stat.vim +++ b/src/testdir/test_search_stat.vim @@ -27,6 +27,14 @@ func Test_search_stat() call assert_equal( \ #{current: 1, exact_match: 1, total: 10, incomplete: 0, maxcount: 99}, \ 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( \ #{current: 1, exact_match: 0, total: 10, incomplete: 0, maxcount: 99}, \ searchcount(#{pattern: 'fooooobar', pos: [4, 1, 0]}))