@@ -9,6 +9,13 @@ STARTTEST
99:else
1010: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
1111:endif
12+ :function! DeleteDirectory(dir)
13+ : if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32")
14+ : exec "silent !rmdir /Q /S " . a:dir
15+ : else
16+ : exec "silent !rm -rf " . a:dir
17+ : endif
18+ :endfun
1219:if has("unix")
1320:let $CDIR = "."
1421/CDIR
@@ -20,6 +27,11 @@ STARTTEST
2027:endif
2128/TDIR
2229:endif
30+ :" Dummy writing for making that sure gf doesn't fail even if the current
31+ :" file is modified. It can be occurred when executing the following command
32+ :" directly on Windows without fixing the 'fileformat':
33+ :" > nmake -f Make_dos.mak test17.out
34+ :w! test.out
2335gf
2436:w! test.out
2537:brewind
@@ -31,10 +43,11 @@ ENDTEST
3143STARTTEST
3244:" check for 'include' without \zs or \ze
3345:lang C
34- :!rm -f ./Xbase.a
35- :!rm -rf ./Xdir1
36- :!mkdir -p Xdir1/dir2
37- :e Xdir1/dir2/foo.a
46+ :call delete("./Xbase.a")
47+ :call DeleteDirectory("Xdir1")
48+ :!mkdir Xdir1
49+ :!mkdir "Xdir1/dir2"
50+ :e! Xdir1/dir2/foo.a
3851i#include "bar.a"
3952:w
4053:e Xdir1/dir2/bar.a
@@ -55,15 +68,16 @@ ENDTEST
5568
5669STARTTEST
5770:" check for 'include' with \zs and \ze
58- :!rm -f ./Xbase.b
59- :!rm -rf ./Xdir1
60- :!mkdir -p Xdir1/dir2
71+ :call delete("./Xbase.b")
72+ :call DeleteDirectory("Xdir1")
73+ :!mkdir Xdir1
74+ :!mkdir "Xdir1/dir2"
6175:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
6276:function! DotsToSlashes()
6377: return substitute(v:fname, '\.', '/', 'g') . '.b'
6478:endfunction
6579:let &includeexpr='DotsToSlashes()'
66- :e Xdir1/dir2/foo.b
80+ :e! Xdir1/dir2/foo.b
6781i%inc /bar/
6882:w
6983:e Xdir1/dir2/bar.b
@@ -84,9 +98,10 @@ ENDTEST
8498
8599STARTTEST
86100:" check for 'include' with \zs and no \ze
87- :!rm -f ./Xbase.c
88- :!rm -rf ./Xdir1
89- :!mkdir -p Xdir1/dir2
101+ :call delete("./Xbase.c")
102+ :call DeleteDirectory("Xdir1")
103+ :!mkdir Xdir1
104+ :!mkdir "Xdir1/dir2"
90105:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
91106:function! StripNewlineChar()
92107: if v:fname =~ '\n$'
@@ -95,7 +110,7 @@ STARTTEST
95110: return v:fname
96111:endfunction
97112:let &includeexpr='StripNewlineChar()'
98- :e Xdir1/dir2/foo.c
113+ :e! Xdir1/dir2/foo.c
99114i%inc bar.c
100115:w
101116:e Xdir1/dir2/bar.c
@@ -115,6 +130,10 @@ i%inc FALSE.c foo.c
115130:checkpath!
116131:redir END
117132:brewind
133+ :" replace "\" to "/" for Windows
134+ :e test.out
135+ :%s#\\#/#g
136+ :w
118137:q
119138ENDTEST
120139
0 commit comments