Mercurial > vim
changeset 24565:138e9caf4a7a v8.2.2822
patch 8.2.2822: MS-Windows: unnessarily loading libraries when unregistering
Commit: https://github.com/vim/vim/commit/4a22897591dc8ff64560bef693af49f171faf557
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat May 1 22:41:39 2021 +0200
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.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 01 May 2021 22:45:04 +0200 |
parents | 0099ec55d9c8 |
children | 9bc67522a0c0 |
files | nsis/README.txt nsis/gvim.nsi src/main.c src/version.c |
diffstat | 4 files changed, 16 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/nsis/README.txt +++ b/nsis/README.txt @@ -66,6 +66,9 @@ 8. Get gettext and iconv DLLs from the 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
--- a/nsis/gvim.nsi +++ b/nsis/gvim.nsi @@ -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
--- a/src/main.c +++ b/src/main.c @@ -162,10 +162,11 @@ 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 - && (argv[i][0] == '-' || argv[i][0] == '/')) + if ((STRICMP(argv[i] + 1, "register") == 0 + || STRICMP(argv[i] + 1, "unregister") == 0) + && (argv[i][0] == '-' || argv[i][0] == '/')) { found_register_arg = TRUE; break;