diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-05-01 22:41:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-05-01 22:41:39 +0200 |
commit | 4a22897591dc8ff64560bef693af49f171faf557 (patch) | |
tree | a936b936655168c2dc0a0bea3aa3ca0e55f19c61 | |
parent | 3d0e7a956afb6f913466e96bd462eff0c92ad4c6 (diff) |
patch 8.2.2822: MS-Windows: unnessarily loading libraries when unregisteringv8.2.2822
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.
-rw-r--r-- | nsis/README.txt | 3 | ||||
-rw-r--r-- | nsis/gvim.nsi | 9 | ||||
-rw-r--r-- | src/main.c | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 16 insertions, 5 deletions
diff --git a/nsis/README.txt b/nsis/README.txt index c0a184d6a3..0d01ec86db 100644 --- a/nsis/README.txt +++ b/nsis/README.txt @@ -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 diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi index 498d98dc84..58ed85c5eb 100644 --- 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 diff --git a/src/main.c b/src/main.c index 686fb14324..277e31790b 100644 --- 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; diff --git a/src/version.c b/src/version.c index 8140e20fa7..acf0e73938 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2822, +/**/ 2821, /**/ 2820, |