Mercurial > vim
changeset 26682:64dac9ff015e v8.2.3870
patch 8.2.3870: MS-Windows: wrong dir when using right-click context menu
Commit: https://github.com/vim/vim/commit/1aeccdb464d81f0af047b399cbad160307a91f7c
Author: Nir Lichtman <nir@lichtman.org>
Date: Wed Dec 22 15:21:15 2021 +0000
patch 8.2.3870: MS-Windows: wrong dir when using right-click context menu
Problem: MS-Windows: wrong working directory when opening two files with
right-click context menu. (Gabriel Dupras)
Solution: Use the working directory and pass it on to the process creation.
(Nir Lichtman, closes #9382, closes #8874)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 22 Dec 2021 16:30:04 +0100 |
parents | 94138e1e9980 |
children | d267ab922b57 |
files | src/GvimExt/gvimext.cpp src/GvimExt/gvimext.h src/version.c |
diffstat | 3 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/GvimExt/gvimext.cpp +++ b/src/GvimExt/gvimext.cpp @@ -776,8 +776,12 @@ STDMETHODIMP CShellExt::InvokeCommand(LP // development. return E_FAIL; } + + LPCMINVOKECOMMANDINFOEX lpcmiex = (LPCMINVOKECOMMANDINFOEX)lpcmi; + LPCWSTR currentDirectory = lpcmi->cbSize == sizeof(CMINVOKECOMMANDINFOEX) ? lpcmiex->lpDirectoryW : NULL; + hr = InvokeSingleGvim(lpcmi->hwnd, - lpcmi->lpDirectory, + currentDirectory, lpcmi->lpVerb, lpcmi->lpParameters, lpcmi->nShow, @@ -884,7 +888,7 @@ searchpath(char *name) STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent, - LPCSTR /* pszWorkingDir */, + LPCWSTR workingDir, LPCSTR /* pszCmd */, LPCSTR /* pszParam */, int /* iShowCmd */, @@ -944,7 +948,7 @@ STDMETHODIMP CShellExt::InvokeSingleGvim FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. - NULL, // Use parent's starting directory. + workingDir, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi) // Pointer to PROCESS_INFORMATION structure. )