diff nsis/gvim.nsi @ 25354:54425c665ba9 v8.2.3214

patch 8.2.3214: MS-Windows: passing /D does not set the install location Commit: https://github.com/vim/vim/commit/7d60384a00755e5c0112cebeb5e232fc133c9eca Author: Christian Brabandt <cb@256bit.org> Date: Sat Jul 24 21:19:42 2021 +0200 patch 8.2.3214: MS-Windows: passing /D does not set the install location Problem: MS-Windows: passing /D does not set the install location. Solution: Adjust how the installer uses $VIM. Update the documentation. (Christian Brabandt, closes #8605)
author Bram Moolenaar <Bram@vim.org>
date Sat, 24 Jul 2021 21:30:04 +0200
parents d5b5267595c5
children 92c424550367
line wrap: on
line diff
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -126,10 +126,11 @@ RequestExecutionLevel highest
 # This adds '\Vim' to the user choice automagically.  The actual value is
 # obtained below with CheckOldVim.
 !ifdef WIN64
-InstallDir "$PROGRAMFILES64\Vim"
+  !define DEFAULT_INSTDIR "$PROGRAMFILES64\Vim"
 !else
-InstallDir "$PROGRAMFILES\Vim"
+  !define DEFAULT_INSTDIR "$PROGRAMFILES\Vim"
 !endif
+InstallDir ${DEFAULT_INSTDIR}
 
 # Types of installs we can perform:
 InstType $(str_type_typical)
@@ -710,8 +711,13 @@ Function .onInit
   !insertmacro MUI_LANGDLL_DISPLAY
 !endif
 
-  # Check $VIM
-  ReadEnvStr $INSTDIR "VIM"
+  ${If} $INSTDIR == ${DEFAULT_INSTDIR}
+    # Check $VIM
+    ReadEnvStr $3 "VIM"
+    ${If} $3 != ""
+      StrCpy $INSTDIR $3
+    ${EndIf}
+  ${EndIf}
 
   call CheckOldVim
   Pop $3
@@ -721,20 +727,11 @@ Function .onInit
     SectionSetInstTypes ${id_section_old_ver} 0
     SectionSetText ${id_section_old_ver} ""
   ${Else}
-    ${If} $INSTDIR == ""
+    ${If} $INSTDIR == ${DEFAULT_INSTDIR}
       StrCpy $INSTDIR $3
     ${EndIf}
   ${EndIf}
 
-  # If did not find a path: use the default dir.
-  ${If} $INSTDIR == ""
-!ifdef WIN64
-    StrCpy $INSTDIR "$PROGRAMFILES64\Vim"
-!else
-    StrCpy $INSTDIR "$PROGRAMFILES\Vim"
-!endif
-  ${EndIf}
-
   ${If} ${RunningX64}
     SetRegView 64
   ${EndIf}