forked from aniani/vim
136 lines
2.4 KiB
Plaintext
136 lines
2.4 KiB
Plaintext
Tests for:
|
||
- "gf" on ${VAR},
|
||
- ":checkpath!" with various 'include' settings.
|
||
|
||
STARTTEST
|
||
:so small.vim
|
||
:if has("ebcdic")
|
||
: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}
|
||
:else
|
||
: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
|
||
:endif
|
||
:"
|
||
:if has("unix")
|
||
:let $CDIR = "."
|
||
/CDIR
|
||
:else
|
||
:if has("amiga")
|
||
:let $TDIR = "/testdir"
|
||
:else
|
||
:let $TDIR = "."
|
||
:endif
|
||
/TDIR
|
||
:endif
|
||
:" Dummy writing for making that sure gf doesn't fail even if the current
|
||
:" file is modified. It can be occurred when executing the following command
|
||
:" directly on Windows without fixing the 'fileformat':
|
||
:" > nmake -f Make_dos.mak test17.out
|
||
:w! test.out
|
||
gf
|
||
:set ff=unix
|
||
:w! test.out
|
||
:brewind
|
||
ENDTEST
|
||
|
||
${CDIR}/test17a.in
|
||
$TDIR/test17a.in
|
||
|
||
STARTTEST
|
||
:" check for 'include' without \zs or \ze
|
||
:lang C
|
||
:call delete("./Xbase.a")
|
||
:call delete("Xdir1", "rf")
|
||
:!mkdir Xdir1
|
||
:!mkdir "Xdir1/dir2"
|
||
:e! Xdir1/dir2/foo.a
|
||
i#include "bar.a":
|
||
:w
|
||
:e Xdir1/dir2/bar.a
|
||
i#include "baz.a":
|
||
:w
|
||
:e Xdir1/dir2/baz.a
|
||
i#include "foo.a":
|
||
:w
|
||
:e Xbase.a
|
||
:set path=Xdir1/dir2
|
||
i#include <foo.a>:
|
||
:w
|
||
:redir! >>test.out
|
||
:checkpath!
|
||
:redir END
|
||
:brewind
|
||
ENDTEST
|
||
|
||
STARTTEST
|
||
:" check for 'include' with \zs and \ze
|
||
:call delete("./Xbase.b")
|
||
:call delete("Xdir1", "rf")
|
||
:!mkdir Xdir1
|
||
:!mkdir "Xdir1/dir2"
|
||
:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
|
||
:function! DotsToSlashes()
|
||
: return substitute(v:fname, '\.', '/', 'g') . '.b'
|
||
:endfunction
|
||
:let &includeexpr='DotsToSlashes()'
|
||
:e! Xdir1/dir2/foo.b
|
||
i%inc /bar/:
|
||
:w
|
||
:e Xdir1/dir2/bar.b
|
||
i%inc /baz/:
|
||
:w
|
||
:e Xdir1/dir2/baz.b
|
||
i%inc /foo/:
|
||
:w
|
||
:e Xbase.b
|
||
:set path=Xdir1/dir2
|
||
i%inc /foo/:
|
||
:w
|
||
:redir! >>test.out
|
||
:checkpath!
|
||
:redir END
|
||
:brewind
|
||
ENDTEST
|
||
|
||
STARTTEST
|
||
:" check for 'include' with \zs and no \ze
|
||
:call delete("./Xbase.c")
|
||
:call delete("Xdir1", "rf")
|
||
:!mkdir Xdir1
|
||
:!mkdir "Xdir1/dir2"
|
||
:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
|
||
:function! StripNewlineChar()
|
||
: if v:fname =~ '\n$'
|
||
: return v:fname[:-2]
|
||
: endif
|
||
: return v:fname
|
||
:endfunction
|
||
:let &includeexpr='StripNewlineChar()'
|
||
:e! Xdir1/dir2/foo.c
|
||
i%inc bar.c:
|
||
:w
|
||
:e Xdir1/dir2/bar.c
|
||
i%inc baz.c:
|
||
:w
|
||
:e Xdir1/dir2/baz.c
|
||
i%inc foo.c:
|
||
:w
|
||
:e Xdir1/dir2/FALSE.c
|
||
i%inc foo.c:
|
||
:w
|
||
:e Xbase.c
|
||
:set path=Xdir1/dir2
|
||
i%inc FALSE.c foo.c:
|
||
:w
|
||
:redir! >>test.out
|
||
:checkpath!
|
||
:redir END
|
||
:brewind
|
||
:" change "\" to "/" for Windows and fix 'fileformat'
|
||
:e test.out
|
||
:%s#\\#/#g
|
||
:set ff&
|
||
:w
|
||
:q
|
||
ENDTEST
|
||
|