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

patch 9.1.0468: GvimExt does not consult HKEY_CURRENT_USER

Problem:  GvimExt does not consult HKEY_CURRENT_USER
Solution: Make GvimExt first consult HKEY_CURRENT_USER and then fall
          back to HKEY_LOCAL_MACHINE to find gvim (David Wagner)

fixes: #14904
closes: #14917

Signed-off-by: David Wagner <dwagner@rydia.us>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
David Wagner 2024-06-05 20:01:19 +02:00 committed by Christian Brabandt
parent 9c60890518
commit 84d9611b67
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09
2 changed files with 19 additions and 2 deletions

View File

@ -55,9 +55,11 @@ getGvimName(char *name, int runtime)
HKEY keyhandle;
DWORD hlen;
// Get the location of gvim from the registry.
// Get the location of gvim from the registry. Try
// HKEY_CURRENT_USER first, then fall back to HKEY_LOCAL_MACHINE if
// not found.
name[0] = 0;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0,
if (RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Vim\\Gvim", 0,
KEY_READ, &keyhandle) == ERROR_SUCCESS)
{
hlen = BUFSIZE;
@ -69,6 +71,19 @@ getGvimName(char *name, int runtime)
RegCloseKey(keyhandle);
}
if ((name[0] == 0) &&
(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0,
KEY_READ, &keyhandle) == ERROR_SUCCESS))
{
hlen = BUFSIZE;
if (RegQueryValueEx(keyhandle, "path", 0, NULL, (BYTE *)name, &hlen)
!= ERROR_SUCCESS)
name[0] = 0;
else
name[hlen] = 0;
RegCloseKey(keyhandle);
}
// Registry didn't work, use the search path.
if (name[0] == 0)
strcpy(name, searchpath((char *)"gvim.exe"));

View File

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