To: vim_dev@googlegroups.com Subject: Patch 9.0.1316 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@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 ///