forked from aniani/vim
patch 9.1.0428: Tag guessing leaves wrong search history with very short names
Problem: Tag guessing leaves wrong search history with very short names (after 9.1.0426). Solution: Use the correct variable for pattern length (zeertzjq). closes: #14817 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
ffed1540f3
commit
42cd192daa
@@ -3945,7 +3945,7 @@ jumpto_tag(
|
||||
// Guess again: "^char * \<func ("
|
||||
pbuflen = vim_snprintf((char *)pbuf, LSIZE, "^\\[#a-zA-Z_]\\.\\*\\<%s\\s\\*(",
|
||||
tagp.tagname);
|
||||
if (!do_search(NULL, '/', '/', pbuf, len, (long)1,
|
||||
if (!do_search(NULL, '/', '/', pbuf, pbuflen, (long)1,
|
||||
search_options, NULL))
|
||||
found = 0;
|
||||
}
|
||||
|
@@ -1560,4 +1560,22 @@ func Test_tagbsearch()
|
||||
set tags& tagbsearch&
|
||||
endfunc
|
||||
|
||||
" Test tag guessing with very short names
|
||||
func Test_tag_guess_short()
|
||||
call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
|
||||
\ "y\tXf\t/^y()/"],
|
||||
\ 'Xt', 'D')
|
||||
set tags=Xt cpoptions+=t
|
||||
call writefile(['', 'int * y () {}', ''], 'Xf', 'D')
|
||||
|
||||
let v:statusmsg = ''
|
||||
let @/ = ''
|
||||
ta y
|
||||
call assert_match('E435:', v:statusmsg)
|
||||
call assert_equal(2, line('.'))
|
||||
call assert_match('<y', @/)
|
||||
|
||||
set tags& cpoptions-=t
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
428,
|
||||
/**/
|
||||
427,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user