mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
patch 8.2.4512: the find_tags_in_file() function is much too long
Problem: The find_tags_in_file() function is much too long. Solution: Refactor into multiple smaller functions. (Yegappan Lakshmanan, closes #9892)
This commit is contained in:
committed by
Bram Moolenaar
parent
c12dc47b8f
commit
df1bbea436
2
Filelist
2
Filelist
@ -198,7 +198,6 @@ SRC_ALL = \
|
||||
src/testdir/view_util.vim \
|
||||
src/testdir/test[0-9]*.ok \
|
||||
src/testdir/test77a.ok \
|
||||
src/testdir/test83-tags? \
|
||||
src/testdir/test77a.com \
|
||||
src/testdir/test_*.vim \
|
||||
src/testdir/python2/*.py \
|
||||
@ -1000,6 +999,7 @@ LANG_GEN = \
|
||||
runtime/doc/*-tr.1 \
|
||||
runtime/doc/*-tr.UTF-8.1 \
|
||||
runtime/lang/README.txt \
|
||||
runtime/lang/Makefile \
|
||||
runtime/lang/menu_*.vim \
|
||||
runtime/keymap/README.txt \
|
||||
runtime/keymap/*.vim \
|
||||
|
@ -3010,7 +3010,6 @@ shadow: runtime pixmaps
|
||||
../../testdir/sautest \
|
||||
../../testdir/samples \
|
||||
../../testdir/dumps \
|
||||
../../testdir/test83-tags? \
|
||||
../../testdir/*.ok \
|
||||
../../testdir/testluaplugin \
|
||||
.
|
||||
|
@ -8106,8 +8106,7 @@ hgr_search_file(
|
||||
|
||||
// Convert a line if 'encoding' is not utf-8 and
|
||||
// the line contains a non-ASCII character.
|
||||
if (p_vc->vc_type != CONV_NONE
|
||||
&& has_non_ascii(IObuff))
|
||||
if (p_vc->vc_type != CONV_NONE && has_non_ascii(IObuff))
|
||||
{
|
||||
line = string_convert(p_vc, IObuff, NULL);
|
||||
if (line == NULL)
|
||||
|
@ -1,2 +0,0 @@
|
||||
!_TAG_FILE_ENCODING cp932 //
|
||||
<EFBFBD>`<60>a<EFBFBD>b Xtags2.txt /<2F>`<60>a<EFBFBD>b
|
@ -1,102 +0,0 @@
|
||||
!_TAG_FILE_SORTED 1 //
|
||||
!_TAG_FILE_ENCODING cp932 //
|
||||
abc1 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc2 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc3 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc4 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc5 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc6 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc7 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc8 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc9 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc10 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc11 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc12 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc13 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc14 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc15 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc16 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc17 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc18 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc19 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc20 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc21 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc22 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc23 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc24 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc25 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc26 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc27 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc28 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc29 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc30 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc31 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc32 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc33 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc34 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc35 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc36 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc37 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc38 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc39 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc40 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc41 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc42 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc43 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc44 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc45 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc46 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc47 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc48 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc49 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc50 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc51 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc52 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc53 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc54 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc55 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc56 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc57 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc58 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc59 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc60 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc61 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc62 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc63 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc64 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc65 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc66 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc67 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc68 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc69 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc70 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc71 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc72 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc73 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc74 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc75 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc76 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc77 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc78 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc79 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc80 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc81 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc82 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc83 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc84 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc85 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc86 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc87 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc88 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc89 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc90 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc91 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc92 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc93 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc94 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc95 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc96 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc97 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc98 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc99 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
||||
abc100 Xtags3.txt /<2F>`<60>a<EFBFBD>b
|
@ -230,7 +230,6 @@ func Test_tag_symbolic()
|
||||
endfunc
|
||||
|
||||
" Tests for tag search with !_TAG_FILE_ENCODING.
|
||||
" Depends on the test83-tags2 and test83-tags3 files.
|
||||
func Test_tag_file_encoding()
|
||||
if has('vms')
|
||||
throw 'Skipped: does not work on VMS'
|
||||
@ -262,18 +261,31 @@ func Test_tag_file_encoding()
|
||||
|
||||
" case2:
|
||||
new
|
||||
set tags=test83-tags2
|
||||
let content = ['!_TAG_FILE_ENCODING cp932 //',
|
||||
\ "\x82`\x82a\x82b Xtags2.txt /\x82`\x82a\x82b"]
|
||||
call writefile(content, 'Xtags')
|
||||
set tags=Xtags
|
||||
tag /.BC
|
||||
call assert_equal('Xtags2.txt', expand('%:t'))
|
||||
call assert_equal('ABC', getline('.'))
|
||||
call delete('Xtags')
|
||||
close
|
||||
|
||||
" case3:
|
||||
new
|
||||
set tags=test83-tags3
|
||||
let contents = [
|
||||
\ "!_TAG_FILE_SORTED 1 //",
|
||||
\ "!_TAG_FILE_ENCODING cp932 //"]
|
||||
for i in range(1, 100)
|
||||
call add(contents, 'abc' .. i
|
||||
\ .. " Xtags3.txt /\x82`\x82a\x82b")
|
||||
endfor
|
||||
call writefile(contents, 'Xtags')
|
||||
set tags=Xtags
|
||||
tag abc50
|
||||
call assert_equal('Xtags3.txt', expand('%:t'))
|
||||
call assert_equal('ABC', getline('.'))
|
||||
call delete('Xtags')
|
||||
close
|
||||
|
||||
set tags&
|
||||
@ -324,6 +336,7 @@ func Test_tagjump_etags()
|
||||
\ ], 'Xtags2')
|
||||
tag main
|
||||
call assert_equal(2, line('.'))
|
||||
call assert_fails('tag bar', 'E426:')
|
||||
|
||||
" corrupted tag line
|
||||
call writefile([
|
||||
@ -349,6 +362,27 @@ func Test_tagjump_etags()
|
||||
\ ], 'Xtags')
|
||||
call assert_fails('tag foo', 'E431:')
|
||||
|
||||
" end of file after a CTRL-L line
|
||||
call writefile([
|
||||
\ "\x0c",
|
||||
\ "Xmain.c,64",
|
||||
\ "void foo() {}\x7ffoo\x011,0",
|
||||
\ "\x0c",
|
||||
\ ], 'Xtags')
|
||||
call assert_fails('tag main', 'E426:')
|
||||
|
||||
" error in an included tags file
|
||||
call writefile([
|
||||
\ "\x0c",
|
||||
\ "Xtags2,include"
|
||||
\ ], 'Xtags')
|
||||
call writefile([
|
||||
\ "\x0c",
|
||||
\ "Xmain.c,64",
|
||||
\ "void foo() {}",
|
||||
\ ], 'Xtags2')
|
||||
call assert_fails('tag foo', 'E431:')
|
||||
|
||||
call delete('Xtags')
|
||||
call delete('Xtags2')
|
||||
call delete('Xmain.c')
|
||||
@ -1432,6 +1466,11 @@ func Test_tagfile_errors()
|
||||
\ "foo Xfile 1"], 'Xtags')
|
||||
call assert_fails('tag foo', 'E431:')
|
||||
|
||||
" file name and search pattern are not separated by a tab
|
||||
call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
|
||||
\ "foo\tXfile 1;"], 'Xtags')
|
||||
call assert_fails('tag foo', 'E431:')
|
||||
|
||||
call delete('Xtags')
|
||||
call delete('Xfile')
|
||||
set tags&
|
||||
|
@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
4512,
|
||||
/**/
|
||||
4511,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user