1Test for shortpathname ':8' extension.
2Only for use on Win32 systems!
3
4STARTTEST
5:so small.vim
6:fun! TestIt(file, bits, expected)
7	let res=fnamemodify(a:file,a:bits)
8	if a:expected == ''
9		echo "'".a:file."'->(".a:bits.")->'".res."'"
10	else
11		if substitute(res,'/','\\', 'g') != substitute( a:expected, '/','\\', 'g') 
12			echo "FAILED: '".a:file."'->(".a:bits.")->'".res."'"
13			echo "Expected: '".a:expected."'"
14		else
15			echo "OK"
16		endif
17	endif
18endfun
19:fun! MakeDir( dirname )
20	"exe '!mkdir '.substitute(a:dirname,'/','\\','g')
21	call system('mkdir '.substitute(a:dirname,'/','\\','g'))
22endfun
23:fun! RMDir( dirname)
24	"exe '!rmdir '.substitute(a:dirname,'/','\\','g')
25	call system('rmdir '.substitute(a:dirname,'/','\\','g'))
26endfun
27:fun! MakeFile( filename)
28	"exe '!copy nul '.substitute(a:filename,'/','\\','g')
29	call system('copy nul '.substitute(a:filename,'/','\\','g'))
30endfun
31:fun! TestColonEight()
32   redir! >test.out
33	" This could change for CygWin to //cygdrive/c
34	let dir1='c:/x.x.y'
35	if filereadable(dir1) || isdirectory(dir1)
36		call confirm( "'".dir1."' exists, cannot run test" )
37		return
38	endif
39	let file1=dir1.'/zz.y.txt'
40	let nofile1=dir1.'/z.y.txt'
41	let dir2=dir1.'/VimIsTheGreatestSinceSlicedBread'
42	let file2=dir2.'/z.txt'
43	let nofile2=dir2.'/zz.txt'
44	let resdir1='c:/XX2235~1.Y'
45	let resfile1=resdir1.'/ZZY~1.TXT'
46	let resnofile1=resdir1.'/z.y.txt'
47	let resdir2=resdir1.'/VIMIST~1'
48	let resfile2=resdir2.'/z.txt'
49	let resnofile2=resdir2.'/zz.txt'
50	call MakeDir( dir1 )
51	call MakeDir( dir2 )
52	call MakeFile( file1 )
53	call MakeFile( file2 )
54	call TestIt(file1, ':p:8', resfile1)
55	call TestIt(nofile1, ':p:8', resnofile1)
56	call TestIt(file2, ':p:8', resfile2)
57	call TestIt(nofile2, ':p:8', resnofile2)
58	call TestIt(nofile2, ':p:8:h', fnamemodify(resnofile2,':h'))
59	exe 'cd '.dir1
60	call TestIt(file1, ':.:8', strpart(resfile1,strlen(resdir1)+1))
61	call TestIt(nofile1, ':.:8', strpart(resnofile1,strlen(resdir1)+1))
62	call TestIt(file2, ':.:8', strpart(resfile2,strlen(resdir1)+1))
63	call TestIt(nofile2, ':.:8', strpart(resnofile2,strlen(resdir1)+1))
64	let $HOME=dir1
65	call TestIt(file1, ':~:8', '~'.strpart(resfile1,strlen(resdir1)))
66	call TestIt(nofile1, ':~:8', '~'.strpart(resnofile1,strlen(resdir1)))
67	call TestIt(file2, ':~:8', '~'.strpart(resfile2,strlen(resdir1)))
68	call TestIt(nofile2, ':~:8', '~'.strpart(resnofile2,strlen(resdir1)))
69	cd c:/
70	call delete( file2 )
71	call delete( file1 )
72	call RMDir( dir2 )
73	call RMDir( dir1 )
74       echo
75   redir END
76endfun
77:let dir = getcwd()
78:call TestColonEight()
79:exe "cd " . dir
80:edit! test.out
81:set ff=dos
82:w
83:qa!
84ENDTEST
85
86