diff --git a/test/old/testdir/test_system.vim b/test/old/testdir/test_system.vim index 30fab6d55f..a9086d1bdf 100644 --- a/test/old/testdir/test_system.vim +++ b/test/old/testdir/test_system.vim @@ -141,4 +141,42 @@ func Test_system_with_shell_quote() endtry endfunc +" Check that Vim does not execute anything from current directory +func Test_windows_external_cmd_in_cwd() + CheckMSWindows + + " just in case + call system('rd /S /Q Xfolder') + call mkdir('Xfolder', 'R') + cd Xfolder + + let contents = ['@echo off', 'echo filename1.txt:1:AAAA'] + call writefile(contents, 'findstr.cmd') + + let file1 = ['AAAA', 'THIS FILE SHOULD NOT BE FOUND'] + let file2 = ['BBBB', 'THIS FILE SHOULD BE FOUND'] + + call writefile(file1, 'filename1.txt') + call writefile(file2, 'filename2.txt') + + if has('quickfix') + " use silent to avoid hit-enter-prompt + sil grep BBBB filename*.txt + call assert_equal('filename2.txt', @%) + endif + + let output = system('findstr BBBB filename*') + " Match trailing newline byte + call assert_match('filename2.txt:BBBB.', output) + + if has('gui') + set guioptions+=! + let output = system('findstr BBBB filename*') + call assert_match('filename2.txt:BBBB.', output) + endif + + cd - + set guioptions& +endfunc + " vim: shiftwidth=2 sts=2 expandtab