Mercurial > vim
view src/testdir/test_getcwd.in @ 7914:35973ce58c84 v7.4.1253
commit https://github.com/vim/vim/commit/608a8919cae982cb38e38725a843df47b234dae6
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Feb 3 22:39:51 2016 +0100
patch 7.4.1253
Problem: Python test server not displaying second of two commands.
Solaris doesn't have "pkill --full".
Solution: Also echo the second command. Use "pkill -f".
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 03 Feb 2016 22:45:04 +0100 |
parents | d4370fef0175 |
children | 05e7d084c6c2 |
line wrap: on
line source
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! DeleteDirectory(dir) : if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32") : exec "silent !rmdir /Q /S " . a:dir : else : exec "silent !rm -rf " . a:dir : endif :endfun :" :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 DeleteDirectory("Xtopdir") :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 DeleteDirectory("Xtopdir") :qa! ENDTEST