mirror of
https://github.com/vim/vim.git
synced 2025-09-30 04:44:14 -04:00
Fix that uninstaller isn't found on 64-bit Windows.
This commit is contained in:
@@ -450,7 +450,7 @@ Section Uninstall
|
|||||||
AskRemove:
|
AskRemove:
|
||||||
MessageBox MB_YESNO|MB_ICONQUESTION \
|
MessageBox MB_YESNO|MB_ICONQUESTION \
|
||||||
"Remove all files in your $1\vimfiles directory? \
|
"Remove all files in your $1\vimfiles directory? \
|
||||||
$\nIf you have created something there that you want to keep, click No" IDNO Fin
|
$\nCAREFUL: If you have created something there that you want to keep, click No" IDNO Fin
|
||||||
RMDir /r $1\vimfiles
|
RMDir /r $1\vimfiles
|
||||||
NoRemove:
|
NoRemove:
|
||||||
|
|
||||||
|
@@ -30,10 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
Windows 7: installing Vim again doesn't find the previously installed Vim.
|
|
||||||
|
|
||||||
Move more common code from if_python.c and if_python3.c to if_py_both.h
|
|
||||||
|
|
||||||
Before release 7.3:
|
Before release 7.3:
|
||||||
- Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
|
- Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
|
||||||
|
|
||||||
|
@@ -462,8 +462,8 @@ uninstall_check(int skip_question)
|
|||||||
DWORD new_num_keys;
|
DWORD new_num_keys;
|
||||||
int foundone = 0;
|
int foundone = 0;
|
||||||
|
|
||||||
code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, uninstall_key, 0, KEY_READ,
|
code = RegOpenKeyEx(HKEY_LOCAL_MACHINE, uninstall_key, 0,
|
||||||
&key_handle);
|
KEY_WOW64_64KEY | KEY_READ, &key_handle);
|
||||||
CHECK_REG_ERROR(code);
|
CHECK_REG_ERROR(code);
|
||||||
|
|
||||||
for (key_index = 0;
|
for (key_index = 0;
|
||||||
@@ -475,8 +475,8 @@ uninstall_check(int skip_question)
|
|||||||
if (strncmp("Vim", subkey_name_buff, 3) == 0)
|
if (strncmp("Vim", subkey_name_buff, 3) == 0)
|
||||||
{
|
{
|
||||||
/* Open the key named Vim* */
|
/* Open the key named Vim* */
|
||||||
code = RegOpenKeyEx(key_handle, subkey_name_buff, 0, KEY_READ,
|
code = RegOpenKeyEx(key_handle, subkey_name_buff, 0,
|
||||||
&uninstall_key_handle);
|
KEY_WOW64_64KEY | KEY_READ, &uninstall_key_handle);
|
||||||
CHECK_REG_ERROR(code);
|
CHECK_REG_ERROR(code);
|
||||||
|
|
||||||
/* get the DisplayName out of it to show the user */
|
/* get the DisplayName out of it to show the user */
|
||||||
@@ -1352,14 +1352,6 @@ init_vimrc_choices(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(WIN3264)
|
#if defined(WIN3264)
|
||||||
/*
|
|
||||||
* Modern way of creating registry entries, also works on 64 bit windows when
|
|
||||||
* compiled as a 32 bit program.
|
|
||||||
*/
|
|
||||||
# ifndef KEY_WOW64_64KEY
|
|
||||||
# define KEY_WOW64_64KEY 0x0100
|
|
||||||
# endif
|
|
||||||
|
|
||||||
static LONG
|
static LONG
|
||||||
reg_create_key(
|
reg_create_key(
|
||||||
HKEY root,
|
HKEY root,
|
||||||
|
@@ -83,6 +83,14 @@ char *searchpath(char *name);
|
|||||||
# define TRUE 1
|
# define TRUE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Modern way of creating registry entries, also works on 64 bit windows when
|
||||||
|
* compiled as a 32 bit program.
|
||||||
|
*/
|
||||||
|
# ifndef KEY_WOW64_64KEY
|
||||||
|
# define KEY_WOW64_64KEY 0x0100
|
||||||
|
# endif
|
||||||
|
|
||||||
#define VIM_STARTMENU "Programs\\Vim " VIM_VERSION_SHORT
|
#define VIM_STARTMENU "Programs\\Vim " VIM_VERSION_SHORT
|
||||||
|
|
||||||
int interactive; /* non-zero when running interactively */
|
int interactive; /* non-zero when running interactively */
|
||||||
|
@@ -50,14 +50,6 @@ WINOLEAUTAPI UnRegisterTypeLib(REFGUID libID, WORD wVerMajor,
|
|||||||
WORD wVerMinor, LCID lcid, SYSKIND syskind);
|
WORD wVerMinor, LCID lcid, SYSKIND syskind);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* Modern way of creating registry entries, also works on 64 bit windows when
|
|
||||||
* compiled as a 32 bit program.
|
|
||||||
*/
|
|
||||||
# ifndef KEY_WOW64_64KEY
|
|
||||||
# define KEY_WOW64_64KEY 0x0100
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
1. Internal definitions for this file
|
1. Internal definitions for this file
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
@@ -166,7 +158,7 @@ CVim *CVim::Create(int *pbDoRestart)
|
|||||||
// RegCreateKeyEx succeeds even if key exists. W.Briscoe W2K 20021011
|
// RegCreateKeyEx succeeds even if key exists. W.Briscoe W2K 20021011
|
||||||
if (RegCreateKeyEx(HKEY_CLASSES_ROOT, MYVIPROGID, 0, NULL,
|
if (RegCreateKeyEx(HKEY_CLASSES_ROOT, MYVIPROGID, 0, NULL,
|
||||||
REG_OPTION_NON_VOLATILE,
|
REG_OPTION_NON_VOLATILE,
|
||||||
KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL, &hKey, NULL))
|
KEY_ALL_ACCESS, NULL, &hKey, NULL))
|
||||||
{
|
{
|
||||||
delete me;
|
delete me;
|
||||||
return NULL; // Unable to write to registry. Quietly fail.
|
return NULL; // Unable to write to registry. Quietly fail.
|
||||||
@@ -658,7 +650,8 @@ static void RecursiveDeleteKey(HKEY hKeyParent, const char *child)
|
|||||||
{
|
{
|
||||||
// Open the child
|
// Open the child
|
||||||
HKEY hKeyChild;
|
HKEY hKeyChild;
|
||||||
LONG result = RegOpenKeyEx(hKeyParent, child, 0, KEY_ALL_ACCESS, &hKeyChild);
|
LONG result = RegOpenKeyEx(hKeyParent, child, 0,
|
||||||
|
KEY_ALL_ACCESS, &hKeyChild);
|
||||||
if (result != ERROR_SUCCESS)
|
if (result != ERROR_SUCCESS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -701,7 +694,7 @@ static void SetKeyAndValue(const char *key, const char *subkey, const char *valu
|
|||||||
long result = RegCreateKeyEx(HKEY_CLASSES_ROOT,
|
long result = RegCreateKeyEx(HKEY_CLASSES_ROOT,
|
||||||
buffer,
|
buffer,
|
||||||
0, NULL, REG_OPTION_NON_VOLATILE,
|
0, NULL, REG_OPTION_NON_VOLATILE,
|
||||||
KEY_WOW64_64KEY | KEY_ALL_ACCESS, NULL,
|
KEY_ALL_ACCESS, NULL,
|
||||||
&hKey, NULL);
|
&hKey, NULL);
|
||||||
if (result != ERROR_SUCCESS)
|
if (result != ERROR_SUCCESS)
|
||||||
return;
|
return;
|
||||||
|
@@ -46,8 +46,8 @@ popup_gvim_path(char *buf)
|
|||||||
int r;
|
int r;
|
||||||
|
|
||||||
/* Open the key where the path to gvim.exe is stored. */
|
/* Open the key where the path to gvim.exe is stored. */
|
||||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0, KEY_READ,
|
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0,
|
||||||
&key_handle) != ERROR_SUCCESS)
|
KEY_WOW64_64KEY | KEY_READ, &key_handle) != ERROR_SUCCESS)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* get the DisplayName out of it to show the user */
|
/* get the DisplayName out of it to show the user */
|
||||||
@@ -72,8 +72,8 @@ openwith_gvim_path(char *buf)
|
|||||||
|
|
||||||
/* Open the key where the path to gvim.exe is stored. */
|
/* Open the key where the path to gvim.exe is stored. */
|
||||||
if (RegOpenKeyEx(HKEY_CLASSES_ROOT,
|
if (RegOpenKeyEx(HKEY_CLASSES_ROOT,
|
||||||
"Applications\\gvim.exe\\shell\\edit\\command", 0, KEY_READ,
|
"Applications\\gvim.exe\\shell\\edit\\command", 0,
|
||||||
&key_handle) != ERROR_SUCCESS)
|
KEY_WOW64_64KEY | KEY_READ, &key_handle) != ERROR_SUCCESS)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* get the DisplayName out of it to show the user */
|
/* get the DisplayName out of it to show the user */
|
||||||
@@ -95,7 +95,8 @@ remove_popup(void)
|
|||||||
++fail;
|
++fail;
|
||||||
if (RegDeleteKey(HKEY_CLASSES_ROOT, "*\\shellex\\ContextMenuHandlers\\gvim") != ERROR_SUCCESS)
|
if (RegDeleteKey(HKEY_CLASSES_ROOT, "*\\shellex\\ContextMenuHandlers\\gvim") != ERROR_SUCCESS)
|
||||||
++fail;
|
++fail;
|
||||||
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved", 0, KEY_ALL_ACCESS, &kh) != ERROR_SUCCESS)
|
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved", 0,
|
||||||
|
KEY_WOW64_64KEY | KEY_ALL_ACCESS, &kh) != ERROR_SUCCESS)
|
||||||
++fail;
|
++fail;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user