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:
parent
fa46ead31a
commit
1aeccdb464
@ -776,8 +776,12 @@ STDMETHODIMP CShellExt::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi)
|
|||||||
// development.
|
// development.
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LPCMINVOKECOMMANDINFOEX lpcmiex = (LPCMINVOKECOMMANDINFOEX)lpcmi;
|
||||||
|
LPCWSTR currentDirectory = lpcmi->cbSize == sizeof(CMINVOKECOMMANDINFOEX) ? lpcmiex->lpDirectoryW : NULL;
|
||||||
|
|
||||||
hr = InvokeSingleGvim(lpcmi->hwnd,
|
hr = InvokeSingleGvim(lpcmi->hwnd,
|
||||||
lpcmi->lpDirectory,
|
currentDirectory,
|
||||||
lpcmi->lpVerb,
|
lpcmi->lpVerb,
|
||||||
lpcmi->lpParameters,
|
lpcmi->lpParameters,
|
||||||
lpcmi->nShow,
|
lpcmi->nShow,
|
||||||
@ -884,7 +888,7 @@ searchpath(char *name)
|
|||||||
|
|
||||||
|
|
||||||
STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
|
STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
|
||||||
LPCSTR /* pszWorkingDir */,
|
LPCWSTR workingDir,
|
||||||
LPCSTR /* pszCmd */,
|
LPCSTR /* pszCmd */,
|
||||||
LPCSTR /* pszParam */,
|
LPCSTR /* pszParam */,
|
||||||
int /* iShowCmd */,
|
int /* iShowCmd */,
|
||||||
@ -944,7 +948,7 @@ STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
|
|||||||
FALSE, // Set handle inheritance to FALSE.
|
FALSE, // Set handle inheritance to FALSE.
|
||||||
0, // No creation flags.
|
0, // No creation flags.
|
||||||
NULL, // Use parent's environment block.
|
NULL, // Use parent's environment block.
|
||||||
NULL, // Use parent's starting directory.
|
workingDir, // Use parent's starting directory.
|
||||||
&si, // Pointer to STARTUPINFO structure.
|
&si, // Pointer to STARTUPINFO structure.
|
||||||
&pi) // Pointer to PROCESS_INFORMATION structure.
|
&pi) // Pointer to PROCESS_INFORMATION structure.
|
||||||
)
|
)
|
||||||
|
@ -130,7 +130,7 @@ protected:
|
|||||||
int idHWnd);
|
int idHWnd);
|
||||||
|
|
||||||
STDMETHODIMP InvokeSingleGvim(HWND hParent,
|
STDMETHODIMP InvokeSingleGvim(HWND hParent,
|
||||||
LPCSTR pszWorkingDir,
|
LPCWSTR workingDir,
|
||||||
LPCSTR pszCmd,
|
LPCSTR pszCmd,
|
||||||
LPCSTR pszParam,
|
LPCSTR pszParam,
|
||||||
int iShowCmd,
|
int iShowCmd,
|
||||||
|
@ -749,6 +749,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
3870,
|
||||||
/**/
|
/**/
|
||||||
3869,
|
3869,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user