summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nsis/gvim.nsi43
-rw-r--r--src/version.c2
2 files changed, 35 insertions, 10 deletions
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index 64c1bc76c5..3a6dc29856 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -228,6 +228,28 @@ FunctionEnd
!insertmacro GetParent ""
!insertmacro GetParent "un."
+# Get home directory
+!macro GetHomeDir un
+Function ${un}GetHomeDir
+ Push $0
+ Push $1
+ ReadEnvStr $0 "HOME"
+ ${If} $0 == ""
+ ReadEnvStr $0 "HOMEDRIVE"
+ ReadEnvStr $1 "HOMEPATH"
+ StrCpy $0 "$0$1"
+ ${If} $0 == ""
+ ReadEnvStr $0 "USERPROFILE"
+ ${EndIf}
+ ${EndIf}
+ Pop $1
+ Exch $0 # put $0 on top of stack, restore $0 to original value
+FunctionEnd
+!macroend
+
+!insertmacro GetHomeDir ""
+!insertmacro GetHomeDir "un."
+
# Check if Vim is already installed.
# return: Installed directory. If not found, it will be empty.
Function CheckOldVim
@@ -520,7 +542,8 @@ SectionGroup $(str_group_plugin) id_group_plugin
Section "$(str_section_plugin_home)" id_section_pluginhome
SectionIn 1 3
- StrCpy $1 "$1 -create-directories home"
+ # use ShellExecAsUser below instead
+ # StrCpy $1 "$1 -create-directories home"
SectionEnd
Section "$(str_section_plugin_vim)" id_section_pluginvim
@@ -594,6 +617,13 @@ Section -call_install_exe
DetailPrint "$(str_msg_registering)"
nsExec::Exec "$0\install.exe $1"
Pop $3
+
+ ${If} ${SectionIsSelected} ${id_section_pluginhome}
+ ReadEnvStr $3 "COMSPEC"
+ Call GetHomeDir
+ Pop $4
+ ShellExecAsUser::ShellExecAsUser "" "$3" '/c "cd /d "$4" & mkdir vimfiles & cd vimfiles & mkdir colors compiler doc ftdetect ftplugin indent keymap plugin syntax"' SW_HIDE
+ ${EndIf}
SectionEnd
##########################################################
@@ -1042,15 +1072,8 @@ SectionEnd
SectionGroup "un.$(str_ungroup_plugin)" id_ungroup_plugin
Section /o "un.$(str_unsection_plugin_home)" id_unsection_plugin_home
# get the home dir
- ReadEnvStr $0 "HOME"
- ${If} $0 == ""
- ReadEnvStr $0 "HOMEDRIVE"
- ReadEnvStr $1 "HOMEPATH"
- StrCpy $0 "$0$1"
- ${If} $0 == ""
- ReadEnvStr $0 "USERPROFILE"
- ${EndIf}
- ${EndIf}
+ Call un.GetHomeDir
+ Pop $0
${If} $0 != ""
!insertmacro RemoveVimfiles $0
diff --git a/src/version.c b/src/version.c
index 47c43e29a6..6cd2f16851 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1316,
+/**/
1315,
/**/
1314,