Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

Test for shortpathname ':8' extension.
Only for use on Win32 systems!

STARTTEST
:so small.vim
:fun! TestIt(file, bits, expected)
        let res=fnamemodify(a:file,a:bits)
        if a:expected == ''
                echo "'".a:file."'->(".a:bits.")->'".res."'"
        else
                if substitute(res,'/','\\', 'g') != substitute( a:expected, '/','\\', 'g') 
                        echo "FAILED: '".a:file."'->(".a:bits.")->'".res."'"
                        echo "Expected: '".a:expected."'"
                else
                        echo "OK"
                endif
        endif
endfun
:fun! MakeDir( dirname )
        "exe '!mkdir '.substitute(a:dirname,'/','\\','g')
        call system('mkdir '.substitute(a:dirname,'/','\\','g'))
endfun
:fun! RMDir( dirname)
        "exe '!rmdir '.substitute(a:dirname,'/','\\','g')
        call system('rmdir '.substitute(a:dirname,'/','\\','g'))
endfun
:fun! MakeFile( filename)
        "exe '!copy nul '.substitute(a:filename,'/','\\','g')
        call system('copy nul '.substitute(a:filename,'/','\\','g'))
endfun
:fun! TestColonEight()
   redir! >test.out
        " This could change for CygWin to //cygdrive/c
        let dir1='c:/x.x.y'
        if filereadable(dir1) || isdirectory(dir1)
                call confirm( "'".dir1."' exists, cannot run test" )
                return
        endif
        let file1=dir1.'/zz.y.txt'
        let nofile1=dir1.'/z.y.txt'
        let dir2=dir1.'/VimIsTheGreatestSinceSlicedBread'
        let file2=dir2.'/z.txt'
        let nofile2=dir2.'/zz.txt'
        let resdir1='c:/XX2235~1.Y'
        let resfile1=resdir1.'/ZZY~1.TXT'
        let resnofile1=resdir1.'/z.y.txt'
        let resdir2=resdir1.'/VIMIST~1'
        let resfile2=resdir2.'/z.txt'
        let resnofile2=resdir2.'/zz.txt'
        call MakeDir( dir1 )
        call MakeDir( dir2 )
        call MakeFile( file1 )
        call MakeFile( file2 )
        call TestIt(file1, ':p:8', resfile1)
        call TestIt(nofile1, ':p:8', resnofile1)
        call TestIt(file2, ':p:8', resfile2)
        call TestIt(nofile2, ':p:8', resnofile2)
        call TestIt(nofile2, ':p:8:h', fnamemodify(resnofile2,':h'))
        exe 'cd '.dir1
        call TestIt(file1, ':.:8', strpart(resfile1,strlen(resdir1)+1))
        call TestIt(nofile1, ':.:8', strpart(resnofile1,strlen(resdir1)+1))
        call TestIt(file2, ':.:8', strpart(resfile2,strlen(resdir1)+1))
        call TestIt(nofile2, ':.:8', strpart(resnofile2,strlen(resdir1)+1))
        let $HOME=dir1
        call TestIt(file1, ':~:8', '~'.strpart(resfile1,strlen(resdir1)))
        call TestIt(nofile1, ':~:8', '~'.strpart(resnofile1,strlen(resdir1)))
        call TestIt(file2, ':~:8', '~'.strpart(resfile2,strlen(resdir1)))
        call TestIt(nofile2, ':~:8', '~'.strpart(resnofile2,strlen(resdir1)))
        cd c:/
        call delete( file2 )
        call delete( file1 )
        call RMDir( dir2 )
        call RMDir( dir1 )
       echo
   redir END
endfun
:let dir = getcwd()
:call TestColonEight()
:exe "cd " . dir
:edit! test.out
:set ff=dos
:w
:qa!
ENDTEST