mirror of
https://github.com/vim/vim
synced 2025-07-16 01:01:58 +00:00
patch 8.2.2822: MS-Windows: unnessarily loading libraries when unregistering
Problem: MS-Windows: unnessarily loading libraries when unregistering OLE. Solution: Also skip loading libraries when invoked with "-unregister". Run Vim for README.txt with user privileges.
This commit is contained in:
@ -66,6 +66,9 @@ To build the installable .exe:
|
||||
|
||||
Install NSIS if you didn't do that already.
|
||||
Also install UPX, if you want a compressed file.
|
||||
Download and include the ShellExecAsUser.dll Unicode version which can be
|
||||
sourced from: https://nsis.sourceforge.io/ShellExecAsUser_plug-in
|
||||
|
||||
|
||||
Unpack the images:
|
||||
cd nsis
|
||||
|
@ -119,9 +119,9 @@ RequestExecutionLevel highest
|
||||
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
!define MUI_LICENSEPAGE_CHECKBOX
|
||||
!define MUI_FINISHPAGE_RUN "$0\gvim.exe"
|
||||
!define MUI_FINISHPAGE_RUN
|
||||
!define MUI_FINISHPAGE_RUN_FUNCTION LaunchApplication
|
||||
!define MUI_FINISHPAGE_RUN_TEXT $(str_show_readme)
|
||||
!define MUI_FINISHPAGE_RUN_PARAMETERS "-R $\"$0\README.txt$\""
|
||||
|
||||
# This adds '\Vim' to the user choice automagically. The actual value is
|
||||
# obtained below with CheckOldVim.
|
||||
@ -300,6 +300,11 @@ Function CheckOldVim
|
||||
Exch $0 # put $0 on top of stack, restore $0 to original value
|
||||
FunctionEnd
|
||||
|
||||
Function LaunchApplication
|
||||
SetOutPath $0
|
||||
ShellExecAsUser::ShellExecAsUser "" "$0\gvim.exe" "-R $"$0\README.txt$""
|
||||
FunctionEnd
|
||||
|
||||
##########################################################
|
||||
Section "$(str_section_old_ver)" id_section_old_ver
|
||||
SectionIn 1 2 3 RO
|
||||
|
@ -162,9 +162,10 @@ main
|
||||
}
|
||||
#endif
|
||||
#ifdef MSWIN
|
||||
// Need to find "-register" before loading any libraries.
|
||||
// Need to find "-register" and "-unregister" before loading any libraries.
|
||||
for (i = 1; i < argc; ++i)
|
||||
if (STRICMP(argv[i] + 1, "register") == 0
|
||||
if ((STRICMP(argv[i] + 1, "register") == 0
|
||||
|| STRICMP(argv[i] + 1, "unregister") == 0)
|
||||
&& (argv[i][0] == '-' || argv[i][0] == '/'))
|
||||
{
|
||||
found_register_arg = TRUE;
|
||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2822,
|
||||
/**/
|
||||
2821,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user