Skip to content

Commit

Permalink
patch 8.2.3870: MS-Windows: wrong dir when using right-click context …
Browse files Browse the repository at this point in the history
…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)
  • Loading branch information
nir9 authored and brammool committed Dec 22, 2021
1 parent fa46ead commit 1aeccdb
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 4 deletions.
10 changes: 7 additions & 3 deletions src/GvimExt/gvimext.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -884,7 +888,7 @@ searchpath(char *name)


STDMETHODIMP CShellExt::InvokeSingleGvim(HWND hParent,
LPCSTR /* pszWorkingDir */,
LPCWSTR workingDir,
LPCSTR /* pszCmd */,
LPCSTR /* pszParam */,
int /* iShowCmd */,
Expand Down Expand Up @@ -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.
)
Expand Down
2 changes: 1 addition & 1 deletion src/GvimExt/gvimext.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ class CShellExt : public IContextMenu,
int idHWnd);

STDMETHODIMP InvokeSingleGvim(HWND hParent,
LPCSTR pszWorkingDir,
LPCWSTR workingDir,
LPCSTR pszCmd,
LPCSTR pszParam,
int iShowCmd,
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
3870,
/**/
3869,
/**/
Expand Down

0 comments on commit 1aeccdb

Please sign in to comment.