From: Yegappan Lakshmanan Date: Sat, 12 Mar 2022 17:38:29 +0000 (+0000) Subject: patch 8.2.4553: linear tag search is a bit slow X-Git-Tag: v8.2.4553 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b530b3158cbd3aee2ad9cad8e7b7964faabb51e;p=vim 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 #9937) --- diff --git a/src/tag.c b/src/tag.c index 45b3062de..4cf11dc22 100644 --- a/src/tag.c +++ b/src/tag.c @@ -2092,10 +2092,7 @@ findtags_get_next_line(findtags_state_T *st, tagsearch_info_T *sinfo_p) 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 index 04ca02dec..23ef1078f 100644 --- a/src/testdir/test_taglist.vim +++ b/src/testdir/test_taglist.vim @@ -259,8 +259,15 @@ func Test_tag_complete_with_overlong_line() 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 index acc5ccf6d..0c90e2dab 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4553, /**/ 4552, /**/