Tests for 'tagcase' option

STARTTEST
:so small.vim
:lang mess C
:/^start text$/+1,/^end text$/w! Xtext
:/^start tags$/+1,/^end tags$/-1w! Xtags
:set tags=Xtags
:e Xtext
:"
:" Verify default values.
:set ic& | setg tc& | setl tc&
:call append('$', "ic=".&ic." g:tc=".&g:tc." l:tc=".&l:tc." tc=".&tc)
:"
:" Verify that the local setting accepts <empty> but that the global setting
:" does not.  The first of these (setting the local value to <empty>) should
:" succeed; the other two should fail.
:let v:errmsg = ""
:setl tc=
:call append('$', v:errmsg)
:let v:errmsg = ""
:setg tc=
:call append('$', v:errmsg)
:let v:errmsg = ""
:set tc=
:call append('$', v:errmsg)
:"
:" Verify that the correct number of matching tags is found for all values of
:" 'ignorecase' and global and local values 'tagcase', in all combinations.
:for &ic in [0, 1]
:  for &g:tc in ["followic", "ignore", "match"]
:    for &l:tc in ["", "followic", "ignore", "match"]
:      call append('$', "ic=".&ic." g:tc=".&g:tc." l:tc=".&l:tc." tc=".&tc)
:      call append('$', len(taglist("^foo$")))
:      call append('$', len(taglist("^Foo$")))
:    endfor
:  endfor
:endfor
:"
:1,/^end text$/d
:w! test.out
:qa!
ENDTEST

start text

Foo
Bar
foo

end text

start tags
Bar	Xtext	3
Foo	Xtext	2
foo	Xtext	4
end tags
