diff nsis/gvim.nsi @ 12708:77960063e2e7 v8.0.1232

patch 8.0.1232: MS-Windows users are confused about default mappings commit https://github.com/vim/vim/commit/c3fdf7f80b2febdd8a8f7a1310631567d257d66a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 28 18:36:48 2017 +0200 patch 8.0.1232: MS-Windows users are confused about default mappings Problem: MS-Windows users are confused about default mappings. Solution: Don't map keys in the console where they don't work. Add a choice in the installer to use MS-Windows key bindings or not. (Christian Brabandt, Ken Takata, closes #2093)
author Christian Brabandt <cb@256bit.org>
date Sat, 28 Oct 2017 18:45:04 +0200
parents 52d928d016bc
children 218102da5226
line wrap: on
line diff
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -83,6 +83,7 @@ SilentInstall normal
 # These are the pages we use
 Page license
 Page components
+Page custom SetCustom ValidateCustom ": _vimrc setting"
 Page directory "" "" CheckInstallDir
 Page instfiles
 UninstPage uninstConfirm
@@ -135,6 +136,10 @@ Function .onInit
   StrCpy $1 "-register-OLE"
   StrCpy $2 "gvim evim gview gvimdiff vimtutor"
 
+  # Extract InstallOptions files
+  # $PLUGINSDIR will automatically be removed when the installer closes
+  InitPluginsDir
+  File /oname=$PLUGINSDIR\vimrc.ini "vimrc.ini"
 FunctionEnd
 
 Function .onUserAbort
@@ -404,7 +409,7 @@ Section "Add an Edit-with-Vim context me
 SectionEnd
 
 ##########################################################
-Section "Create a _vimrc if it doesn't exist"
+Section "Create a _vimrc if it doesn't exist" sec_vimrc_id
 	SectionIn 1 3
 
 	StrCpy $1 "$1 -create-vimrc"
@@ -463,6 +468,45 @@ Section -post
 SectionEnd
 
 ##########################################################
+Function SetCustom
+	# Display the InstallOptions dialog
+
+	# Check if a _vimrc should be created
+	SectionGetFlags ${sec_vimrc_id} $0
+	IntOp $0 $0 & 1
+	StrCmp $0 "1" +2 0
+	  Abort
+
+	Push $3
+	  InstallOptions::dialog "$PLUGINSDIR\vimrc.ini"
+	  Pop $3
+	Pop $3
+FunctionEnd
+
+Function ValidateCustom
+	ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 2" "State"
+	StrCmp $3 "1" 0 +3
+	  StrCpy $1 "$1 -vimrc-remap no"
+	  Goto behave
+
+	  StrCpy $1 "$1 -vimrc-remap win"
+
+	behave:
+	ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 5" "State"
+	StrCmp $3 "1" 0 +3
+	  StrCpy $1 "$1 -vimrc-behave unix"
+	  Goto done
+
+	ReadINIStr $3 "$PLUGINSDIR\vimrc.ini" "Field 6" "State"
+	StrCmp $3 "1" 0 +3
+	  StrCpy $1 "$1 -vimrc-behave mswin"
+	  Goto done
+
+	  StrCpy $1 "$1 -vimrc-behave default"
+	done:
+FunctionEnd
+
+##########################################################
 Section Uninstall
 	# Apparently $INSTDIR is set to the directory where the uninstaller is
 	# created.  Thus the "vim61" directory is included in it.