Mercurial > vim
diff src/testdir/test_functions.vim @ 20593:89b0f161e6a6 v8.2.0850
patch 8.2.0850: MS-Windows: exepath() works different from cmd.exe
Commit: https://github.com/vim/vim/commit/95da136142628e06425f9d9eb2d1ca56a9e48feb
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat May 30 18:37:55 2020 +0200
patch 8.2.0850: MS-Windows: exepath() works different from cmd.exe
Problem: MS-Windows: exepath() works different from cmd.exe.
Solution: Make exepath() work better on MS-Windows. (closes https://github.com/vim/vim/issues/6115)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 30 May 2020 18:45:04 +0200 |
parents | 4411c2b96af9 |
children | 7b8ac5e49451 |
line wrap: on
line diff
--- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -1187,6 +1187,30 @@ func Test_Executable() call assert_equal(0, executable('notepad.exe.exe')) call assert_equal(0, executable('shell32.dll')) call assert_equal(0, executable('win.ini')) + + " get "notepad" path and remove the leading drive and sep. (ex. 'C:\') + let notepadcmd = exepath('notepad.exe') + let driveroot = notepadcmd[:2] + let notepadcmd = notepadcmd[3:] + new + " check that the relative path works in / + execute 'lcd' driveroot + call assert_equal(1, executable(notepadcmd)) + call assert_equal(driveroot .. notepadcmd, notepadcmd->exepath()) + bwipe + + " create "notepad.bat" + call mkdir('Xdir') + let notepadbat = fnamemodify('Xdir/notepad.bat', ':p') + call writefile([], notepadbat) + new + " check that the path and the pathext order is valid + lcd Xdir + let [pathext, $PATHEXT] = [$PATHEXT, '.com;.exe;.bat;.cmd'] + call assert_equal(notepadbat, exepath('notepad')) + let $PATHEXT = pathext + bwipe + eval 'Xdir'->delete('rf') elseif has('unix') call assert_equal(1, 'cat'->executable()) call assert_equal(0, executable('nodogshere'))