forked from aniani/vim
94 lines
2.2 KiB
Plaintext
94 lines
2.2 KiB
Plaintext
Tests for getcwd(), haslocaldir(), and :lcd vim: set ft=vim :
|
|
|
|
STARTTEST
|
|
:so small.vim
|
|
:" Do all test in a separate window to avoid E211 when we recursively
|
|
:" delete the Xtopdir directory during cleanup
|
|
:"
|
|
:" This will cause a few errors, do it silently.
|
|
:set visualbell
|
|
:set nocp viminfo+=nviminfo
|
|
:"
|
|
:function! GetCwdInfo(win, tab)
|
|
: let tab_changed = 0
|
|
: let mod = ":t"
|
|
: if a:tab > 0 && a:tab != tabpagenr()
|
|
: let tab_changed = 1
|
|
: exec "tabnext " . a:tab
|
|
: endif
|
|
: let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
|
|
: if tab_changed
|
|
: tabprevious
|
|
: endif
|
|
: if a:win == 0 && a:tab == 0
|
|
: let dirname = fnamemodify(getcwd(), mod)
|
|
: let lflag = haslocaldir()
|
|
: elseif a:tab == 0
|
|
: let dirname = fnamemodify(getcwd(a:win), mod)
|
|
: let lflag = haslocaldir(a:win)
|
|
: else
|
|
: let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
|
|
: let lflag = haslocaldir(a:win, a:tab)
|
|
: endif
|
|
: return bufname . ' ' . dirname . ' ' . lflag
|
|
:endfunction
|
|
:" On windows a stale "Xtopdir" directory may exist, remove it so that
|
|
:" we start from a clean state.
|
|
:call delete("Xtopdir", "rf")
|
|
:let r=[]
|
|
:new
|
|
:let cwd=getcwd()
|
|
:let test_out = cwd . '/test.out'
|
|
:call mkdir('Xtopdir')
|
|
:cd Xtopdir
|
|
:call mkdir('Xdir1')
|
|
:call mkdir('Xdir2')
|
|
:call mkdir('Xdir3')
|
|
:new a
|
|
:new b
|
|
:new c
|
|
:3wincmd w
|
|
:lcd Xdir1
|
|
:call add(r, GetCwdInfo(0, 0))
|
|
:wincmd W
|
|
:call add(r, GetCwdInfo(0, 0))
|
|
:wincmd W
|
|
:lcd Xdir3
|
|
:call add(r, GetCwdInfo(0, 0))
|
|
:call add(r, GetCwdInfo(bufwinnr("a"), 0))
|
|
:call add(r, GetCwdInfo(bufwinnr("b"), 0))
|
|
:call add(r, GetCwdInfo(bufwinnr("c"), 0))
|
|
:wincmd W
|
|
:call add(r, GetCwdInfo(bufwinnr("a"), tabpagenr()))
|
|
:call add(r, GetCwdInfo(bufwinnr("b"), tabpagenr()))
|
|
:call add(r, GetCwdInfo(bufwinnr("c"), tabpagenr()))
|
|
:"
|
|
:tabnew x
|
|
:new y
|
|
:new z
|
|
:3wincmd w
|
|
:call add(r, GetCwdInfo(0, 0))
|
|
:wincmd W
|
|
:lcd Xdir2
|
|
:call add(r, GetCwdInfo(0, 0))
|
|
:wincmd W
|
|
:lcd Xdir3
|
|
:call add(r, GetCwdInfo(0, 0))
|
|
:call add(r, GetCwdInfo(bufwinnr("x"), 0))
|
|
:call add(r, GetCwdInfo(bufwinnr("y"), 0))
|
|
:call add(r, GetCwdInfo(bufwinnr("z"), 0))
|
|
:let tp_nr = tabpagenr()
|
|
:tabrewind
|
|
:call add(r, GetCwdInfo(3, tp_nr))
|
|
:call add(r, GetCwdInfo(2, tp_nr))
|
|
:call add(r, GetCwdInfo(1, tp_nr))
|
|
:"
|
|
:call writefile(r, test_out, "a")
|
|
:q
|
|
:exec "cd " . cwd
|
|
:call delete("Xtopdir", "rf")
|
|
:qa!
|
|
ENDTEST
|
|
|
|
|