From 8b530b3158cbd3aee2ad9cad8e7b7964faabb51e Mon Sep 17 00:00:00 2001 From: Yegappan Lakshmanan Date: Sat, 12 Mar 2022 17:38:29 +0000 Subject: [PATCH] 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) --- src/tag.c | 5 +---- src/testdir/test_taglist.vim | 7 +++++++ src/version.c | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/tag.c b/src/tag.c index 45b3062dee..4cf11dc226 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 04ca02decf..23ef1078f3 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 acc5ccf6d6..0c90e2dab7 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, /**/ -- 2.47.3