vim-patch:8.0.1489: there is no easy way to get the global directory (#9109)

Problem:    There is no easy way to get the global directory, esp. if some
            windows have a local directory.
Solution:   Make getcwd(-1) return the global directory. (Andy Massimino,
            closes vim/vim#2606)
5459129af2
This commit is contained in:
Jan Edmund Lazo 2018-10-12 15:25:00 -04:00 committed by Justin M. Keyes
parent 15a71338e3
commit 167b72a647

View File

@ -37,6 +37,7 @@ function SetUp()
new new
call mkdir('Xtopdir') call mkdir('Xtopdir')
cd Xtopdir cd Xtopdir
let g:topdir = getcwd()
call mkdir('Xdir1') call mkdir('Xdir1')
call mkdir('Xdir2') call mkdir('Xdir2')
call mkdir('Xdir3') call mkdir('Xdir3')
@ -56,38 +57,46 @@ function Test_GetCwd()
3wincmd w 3wincmd w
lcd Xdir1 lcd Xdir1
call assert_equal("a Xdir1 1", GetCwdInfo(0, 0)) call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W wincmd W
call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0)) call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W wincmd W
lcd Xdir3 lcd Xdir3
call assert_equal("c Xdir3 1", GetCwdInfo(0, 0)) call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0)) call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0)) call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0)) call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W wincmd W
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr())) call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr())) call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr())) call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
call assert_equal(g:topdir, getcwd(-1))
tabnew x tabnew x
new y new y
new z new z
3wincmd w 3wincmd w
call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0)) call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W wincmd W
lcd Xdir2 lcd Xdir2
call assert_equal("y Xdir2 1", GetCwdInfo(0, 0)) call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
call assert_equal(g:topdir, getcwd(-1))
wincmd W wincmd W
lcd Xdir3 lcd Xdir3
call assert_equal("z Xdir3 1", GetCwdInfo(0, 0)) call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0)) call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0)) call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0)) call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
call assert_equal(g:topdir, getcwd(-1))
let tp_nr = tabpagenr() let tp_nr = tabpagenr()
tabrewind tabrewind
call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr)) call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr)) call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr)) call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
call assert_equal(g:topdir, getcwd(-1))
endfunc endfunc
function Test_GetCwd_lcd_shellslash() function Test_GetCwd_lcd_shellslash()