comparison src/testdir/test_autocmd.vim @ 18568:26a04a556982 v8.1.2278

patch 8.1.2278: using "cd" with "exe" may fail Commit: https://github.com/vim/vim/commit/3503d7c94a6c8c2a5ca1665d648d0cb81afcc863 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Nov 9 20:10:17 2019 +0100 patch 8.1.2278: using "cd" with "exe" may fail Problem: Using "cd" with "exe" may fail. Solution: Use chdir() instead.
author Bram Moolenaar <Bram@vim.org>
date Sat, 09 Nov 2019 20:15:04 +0100
parents 0cb608fc9c60
children 75c466dcf61c
comparison
equal deleted inserted replaced
18567:ed3a8eb92f76 18568:26a04a556982
1729 let s:dir_bar = s:dir_this . '/bar' 1729 let s:dir_bar = s:dir_this . '/bar'
1730 call mkdir(s:dir_bar) 1730 call mkdir(s:dir_bar)
1731 endfunc 1731 endfunc
1732 1732
1733 function s:After_test_dirchanged() 1733 function s:After_test_dirchanged()
1734 exe 'cd' s:dir_this 1734 call chdir(s:dir_this)
1735 call delete(s:dir_foo, 'd') 1735 call delete(s:dir_foo, 'd')
1736 call delete(s:dir_bar, 'd') 1736 call delete(s:dir_bar, 'd')
1737 augroup test_dirchanged 1737 augroup test_dirchanged
1738 autocmd! 1738 autocmd!
1739 augroup END 1739 augroup END
1741 1741
1742 function Test_dirchanged_global() 1742 function Test_dirchanged_global()
1743 call s:Before_test_dirchanged() 1743 call s:Before_test_dirchanged()
1744 autocmd test_dirchanged DirChanged global call add(s:li, "cd:") 1744 autocmd test_dirchanged DirChanged global call add(s:li, "cd:")
1745 autocmd test_dirchanged DirChanged global call add(s:li, expand("<afile>")) 1745 autocmd test_dirchanged DirChanged global call add(s:li, expand("<afile>"))
1746 exe 'cd' s:dir_foo 1746 call chdir(s:dir_foo)
1747 call assert_equal(["cd:", s:dir_foo], s:li) 1747 call assert_equal(["cd:", s:dir_foo], s:li)
1748 exe 'cd' s:dir_foo 1748 call chdir(s:dir_foo)
1749 call assert_equal(["cd:", s:dir_foo], s:li) 1749 call assert_equal(["cd:", s:dir_foo], s:li)
1750 exe 'lcd' s:dir_bar 1750 exe 'lcd ' .. fnameescape(s:dir_bar)
1751 call assert_equal(["cd:", s:dir_foo], s:li) 1751 call assert_equal(["cd:", s:dir_foo], s:li)
1752 call s:After_test_dirchanged() 1752 call s:After_test_dirchanged()
1753 endfunc 1753 endfunc
1754 1754
1755 function Test_dirchanged_local() 1755 function Test_dirchanged_local()
1756 call s:Before_test_dirchanged() 1756 call s:Before_test_dirchanged()
1757 autocmd test_dirchanged DirChanged window call add(s:li, "lcd:") 1757 autocmd test_dirchanged DirChanged window call add(s:li, "lcd:")
1758 autocmd test_dirchanged DirChanged window call add(s:li, expand("<afile>")) 1758 autocmd test_dirchanged DirChanged window call add(s:li, expand("<afile>"))
1759 exe 'cd' s:dir_foo 1759 call chdir(s:dir_foo)
1760 call assert_equal([], s:li) 1760 call assert_equal([], s:li)
1761 exe 'lcd' s:dir_bar 1761 exe 'lcd ' .. fnameescape(s:dir_bar)
1762 call assert_equal(["lcd:", s:dir_bar], s:li) 1762 call assert_equal(["lcd:", s:dir_bar], s:li)
1763 exe 'lcd' s:dir_bar 1763 exe 'lcd ' .. fnameescape(s:dir_bar)
1764 call assert_equal(["lcd:", s:dir_bar], s:li) 1764 call assert_equal(["lcd:", s:dir_bar], s:li)
1765 call s:After_test_dirchanged() 1765 call s:After_test_dirchanged()
1766 endfunc 1766 endfunc
1767 1767
1768 function Test_dirchanged_auto() 1768 function Test_dirchanged_auto()
1772 call s:Before_test_dirchanged() 1772 call s:Before_test_dirchanged()
1773 call test_autochdir() 1773 call test_autochdir()
1774 autocmd test_dirchanged DirChanged auto call add(s:li, "auto:") 1774 autocmd test_dirchanged DirChanged auto call add(s:li, "auto:")
1775 autocmd test_dirchanged DirChanged auto call add(s:li, expand("<afile>")) 1775 autocmd test_dirchanged DirChanged auto call add(s:li, expand("<afile>"))
1776 set acd 1776 set acd
1777 exe 'cd ..' 1777 cd ..
1778 call assert_equal([], s:li) 1778 call assert_equal([], s:li)
1779 exe 'edit ' . s:dir_foo . '/Xfile' 1779 exe 'edit ' . s:dir_foo . '/Xfile'
1780 call assert_equal(s:dir_foo, getcwd()) 1780 call assert_equal(s:dir_foo, getcwd())
1781 call assert_equal(["auto:", s:dir_foo], s:li) 1781 call assert_equal(["auto:", s:dir_foo], s:li)
1782 set noacd 1782 set noacd