Patch 9.0.1316

3 views
Skip to first unread message

Bram Moolenaar

unread,
Feb 17, 2023, 3:05:42 PM2/17/23
to vim...@googlegroups.com

Patch 9.0.1316
Problem: MS-Windows: vimfiles dir created with admin group.
Solution: Use ShellExecAsUser to create the vimfiles directory. (Christopher
Plewright, Ken Takata, closes #12000, closes #11888)
Files: nsis/gvim.nsi


*** ../vim-9.0.1315/nsis/gvim.nsi 2022-10-08 17:12:16.735701562 +0100
--- nsis/gvim.nsi 2023-02-17 20:03:25.012869506 +0000
***************
*** 228,233 ****
--- 228,255 ----
!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,526 ****
Section "$(str_section_plugin_home)" id_section_pluginhome
SectionIn 1 3

! StrCpy $1 "$1 -create-directories home"
SectionEnd

Section "$(str_section_plugin_vim)" id_section_pluginvim
--- 542,549 ----
Section "$(str_section_plugin_home)" id_section_pluginhome
SectionIn 1 3

! # use ShellExecAsUser below instead
! # StrCpy $1 "$1 -create-directories home"
SectionEnd

Section "$(str_section_plugin_vim)" id_section_pluginvim
***************
*** 594,599 ****
--- 617,629 ----
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,1056 ****
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}

${If} $0 != ""
!insertmacro RemoveVimfiles $0
--- 1072,1079 ----
SectionGroup "un.$(str_ungroup_plugin)" id_ungroup_plugin
Section /o "un.$(str_unsection_plugin_home)" id_unsection_plugin_home
# get the home dir
! Call un.GetHomeDir
! Pop $0

${If} $0 != ""
!insertmacro RemoveVimfiles $0
*** ../vim-9.0.1315/src/version.c 2023-02-17 16:40:16.975600489 +0000
--- src/version.c 2023-02-17 20:02:26.008895341 +0000
***************
*** 697,698 ****
--- 697,700 ----
{ /* Add new patch number below this line */
+ /**/
+ 1316,
/**/

--
There are three kinds of persons: Those who can count and those who can't.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// \\\
\\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages