diff options
Diffstat (limited to 'src/GvimExt/gvimext.cpp')
-rw-r--r-- | src/GvimExt/gvimext.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/GvimExt/gvimext.cpp b/src/GvimExt/gvimext.cpp index e56379caef..dd26eb1b69 100644 --- a/src/GvimExt/gvimext.cpp +++ b/src/GvimExt/gvimext.cpp @@ -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. ) |