0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

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)
This commit is contained in:
Nir Lichtman 2021-12-22 15:21:15 +00:00 committed by Bram Moolenaar
parent fa46ead31a
commit 1aeccdb464
3 changed files with 10 additions and 4 deletions

View File

@ -776,8 +776,12 @@ STDMETHODIMP CShellExt::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
// 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(HWND hParent,
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.
)

View File

@ -130,7 +130,7 @@ protected:
int idHWnd);
STDMETHODIMP InvokeSingleGvim(HWND hParent,
LPCSTR pszWorkingDir,
LPCWSTR workingDir,
LPCSTR pszCmd,
LPCSTR pszParam,
int iShowCmd,

View File

@ -749,6 +749,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3870,
/**/
3869,
/**/