# HG changeset patch # User Bram Moolenaar # Date 1647107103 -3600 # Node ID bfa81ded42e29217e6db6db25ebbce57c9c78413 # Parent fa0290f89c7be4d4a9890ba627bbe5f028ba7009 patch 8.2.4553: linear tag search is a bit slow Commit: https://github.com/vim/vim/commit/8b530b3158cbd3aee2ad9cad8e7b7964faabb51e Author: Yegappan Lakshmanan Date: Sat Mar 12 17:38:29 2022 +0000 patch 8.2.4553: linear tag search is a bit slow Problem: Linear tag search is a bit slow. Solution: Remove a vim_ftell() call. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/9937) diff --git a/src/tag.c b/src/tag.c --- a/src/tag.c +++ b/src/tag.c @@ -2092,10 +2092,7 @@ findtags_get_next_line(findtags_state_T eof = cs_fgets(st->lbuf, st->lbuf_size); else #endif - { - sinfo_p->curr_offset = vim_ftell(st->fp); eof = vim_fgets(st->lbuf, st->lbuf_size, st->fp); - } } while (!eof && vim_isblankline(st->lbuf)); if (eof) @@ -2850,7 +2847,7 @@ line_read_in: return; } - if (st->state == TS_STEP_FORWARD) + if (st->state == TS_STEP_FORWARD || st->state == TS_LINEAR) // Seek to the same position to read the same line again vim_ignored = vim_fseek(st->fp, search_info.curr_offset, SEEK_SET); diff --git a/src/testdir/test_taglist.vim b/src/testdir/test_taglist.vim --- a/src/testdir/test_taglist.vim +++ b/src/testdir/test_taglist.vim @@ -259,8 +259,15 @@ func Test_tag_complete_with_overlong_lin call writefile(tagslines, 'Xtags') set tags=Xtags + " try with binary search + set tagbsearch call feedkeys(":tag inbou\\\"\", 'xt') call assert_equal('"tag inboundGSV inboundGovernor inboundGovernorCounters', @:) + " try with linear search + set notagbsearch + call feedkeys(":tag inbou\\\"\", 'xt') + call assert_equal('"tag inboundGSV inboundGovernor inboundGovernorCounters', @:) + set tagbsearch& call delete('Xtags') set tags& diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4553, +/**/ 4552, /**/ 4551,