To: vim-dev@vim.org Subject: Patch 6.2.520 (extra) Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 6.2.520 (extra) Problem: The NSIS installer is outdated. Solution: Make it work with NSIS 2.0. Also include console executables for Win 95/98/ME and Win NT/2000/XP. Use LZWA compression. Use "/oname" to avoid having to rename files before running NSIS. Files: Makefile, nsis/gvim.nsi *** ../vim-6.2.519/Makefile Fri Mar 12 15:26:18 2004 --- Makefile Sun May 2 15:06:28 2004 *************** *** 118,124 **** # - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and # "uninstald16.exe". # 32 bit DOS version: ! # - Set environment for compiling with DJGPP; "make -f Make_djg.mak". # - "rm testdir/*.out", "make -f Make_djg.mak test" and check the output. # - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and # "uninstald32.exe". --- 120,126 ---- # - Rename the executables to "vimd16.exe", "xxdd16.exe", "installd16.exe" and # "uninstald16.exe". # 32 bit DOS version: ! # - Set environment for compiling with DJGPP; "gmake -f Make_djg.mak". # - "rm testdir/*.out", "make -f Make_djg.mak test" and check the output. # - Rename the executables to "vimd32.exe", "xxdd32.exe", "installd32.exe" and # "uninstald32.exe". *************** *** 156,165 **** # - "make doslang". # NSIS self installing exe: # - Unpack the doslang archive on the PC. ! # - rename gvim_ole.exe to gvim.exe ! # - rename installw32.exe to install.exe ! # - rename uninstalw32.exe to uninstal.exe ! # - rename xxdw32.exe to xxd/xxd.exe # - put gvimext.dll in src/GvimExt and VisVim.dll in src/VisVim (get them # from a binary archive or build them) # - make sure there is a diff.exe two levels up --- 158,166 ---- # - "make doslang". # NSIS self installing exe: # - Unpack the doslang archive on the PC. ! # - Make sure gvim_ole.exe, vimd32.exe, vimw32.exe, installw32.exe, ! # uninstalw32.exe and xxdw32.exe have been build as mentioned above. ! # - Move the files from the "runtime" directory one level up. # - put gvimext.dll in src/GvimExt and VisVim.dll in src/VisVim (get them # from a binary archive or build them) # - make sure there is a diff.exe two levels up *** ../vim-6.2.519/nsis/gvim.nsi Tue Jun 3 21:43:31 2003 --- nsis/gvim.nsi Sun May 2 16:55:20 2004 *************** *** 1,6 **** # NSIS file to create a self-installing exe for Vim. ! # It needs NSIS version 1.80 or later. ! # Last modification: 2001 Oct 31 # WARNING: if you make changes to this script, look out for $0 to be valid, # because this line is very dangerous: RMDir /r $0 --- 1,6 ---- # NSIS file to create a self-installing exe for Vim. ! # It requires NSIS version 2.0 or later. ! # Last change: 2004 May 02 # WARNING: if you make changes to this script, look out for $0 to be valid, # because this line is very dangerous: RMDir /r $0 *************** *** 17,40 **** Name "Vim ${VER_MAJOR}.${VER_MINOR}" OutFile gvim${VER_MAJOR}${VER_MINOR}.exe ! CRCCheck on ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer." DirText "Choose a directory to install Vim (must end in 'vim')" - SetDatablockOptimize on Icon icons\vim_16c.ico ! EnabledBitmap icons\enabled.bmp ! DisabledBitmap icons\disabled.bmp UninstallText "This will uninstall Vim ${VER_MAJOR}.${VER_MINOR} from your system." UninstallIcon icons\vim_uninst_16c.ico ! BGGradient 004000 008200 ffffff LicenseText "You should read the following before installing:" LicenseData ..\doc\uganda.nsis.txt !ifdef HAVE_UPX !packhdr temp.dat "upx --best --compress-icons=1 temp.dat" !endif ! # This add '\vim' to the user choice automagically. ! InstallDir "C:\vim" # Types of installs we can perform: InstType Typical --- 17,44 ---- Name "Vim ${VER_MAJOR}.${VER_MINOR}" OutFile gvim${VER_MAJOR}${VER_MINOR}.exe ! CRCCheck force ! SetCompressor lzma ! SetDatablockOptimize on ! ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer." DirText "Choose a directory to install Vim (must end in 'vim')" Icon icons\vim_16c.ico ! # NSIS2 uses a different strategy with six diferent images in a strip... ! #EnabledBitmap icons\enabled.bmp ! #DisabledBitmap icons\disabled.bmp UninstallText "This will uninstall Vim ${VER_MAJOR}.${VER_MINOR} from your system." UninstallIcon icons\vim_uninst_16c.ico ! BGGradient 004000 008200 FFFFFF LicenseText "You should read the following before installing:" LicenseData ..\doc\uganda.nsis.txt !ifdef HAVE_UPX !packhdr temp.dat "upx --best --compress-icons=1 temp.dat" !endif ! ! # This adds '\vim' to the user choice automagically. ! InstallDir $PROGRAMFILES\Vim # Types of installs we can perform: InstType Typical *************** *** 50,62 **** MessageBox MB_YESNO|MB_ICONQUESTION \ "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \ IDYES NoAbort ! ! Abort ; causes installer to quit. ! NoAbort: # run the install program to check for already installed versions SetOutPath $TEMP ! File ..\src\install.exe ExecWait "$TEMP\install.exe -uninstall-check" Delete $TEMP\install.exe --- 54,65 ---- MessageBox MB_YESNO|MB_ICONQUESTION \ "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer.$\n Continue?" \ IDYES NoAbort ! Abort ; causes installer to quit. ! NoAbort: # run the install program to check for already installed versions SetOutPath $TEMP ! File /oname=install.exe ..\src\installw32.exe ExecWait "$TEMP\install.exe -uninstall-check" Delete $TEMP\install.exe *************** *** 71,77 **** # If ReadINIStr failed for some reason, use default dir. StrCmp $INSTDIR "" 0 IniOK ! StrCpy $INSTDIR "C:\vim" IniOK: # Should check for the value of $VIM and use it. Unfortunately I don't know --- 74,80 ---- # If ReadINIStr failed for some reason, use default dir. StrCmp $INSTDIR "" 0 IniOK ! StrCpy $INSTDIR "$PROGRAMFILES\Vim" IniOK: # Should check for the value of $VIM and use it. Unfortunately I don't know *************** *** 80,92 **** # StrCpy $INSTDIR "$VIM" # No_Vim: ! # User variables: ! # $0 - holds the directory the executables are installed to ! # $1 - holds the parameters to be passed to install.exe. Starts with OLE ! # registration (since a non-OLE gvim will not complain, and we want to ! # always register an OLE gvim). StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}" StrCpy $1 "-register-OLE" FunctionEnd --- 83,97 ---- # StrCpy $INSTDIR "$VIM" # No_Vim: ! # User variables: ! # $0 - holds the directory the executables are installed to ! # $1 - holds the parameters to be passed to install.exe. Starts with OLE ! # registration (since a non-OLE gvim will not complain, and we want to ! # always register an OLE gvim). ! # $2 - holds the names to create batch files for StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}" StrCpy $1 "-register-OLE" + StrCpy $2 "gvim evim gview gvimdiff" FunctionEnd *************** *** 100,107 **** Function .onVerifyInstDir StrCpy $0 $INSTDIR 3 -3 StrCmp $0 "vim" PathGood ! Abort ! PathGood: FunctionEnd --- 105,111 ---- Function .onVerifyInstDir StrCpy $0 $INSTDIR 3 -3 StrCmp $0 "vim" PathGood ! Abort PathGood: FunctionEnd *************** *** 110,116 **** MessageBox MB_YESNO|MB_ICONQUESTION \ "The installation process has been successfull. Happy Vimming! \ $\n$\n Do you want to see the README file now?" IDNO NoReadme ! Exec '$0\gvim.exe -R "$0\README.txt"' NoReadme: FunctionEnd --- 114,120 ---- MessageBox MB_YESNO|MB_ICONQUESTION \ "The installation process has been successfull. Happy Vimming! \ $\n$\n Do you want to see the README file now?" IDNO NoReadme ! Exec '$0\gvim.exe -R "$0\README.txt"' NoReadme: FunctionEnd *************** *** 143,364 **** ########################################################## Section "Vim executables and runtime files" ! SectionIn 1 2 3 ! ! # we need also this here if the user changes the instdir ! StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}" ! ! SetOutPath $0 ! File ..\src\gvim.exe ! File ..\src\install.exe ! File ..\src\uninstal.exe ! File ..\src\vimrun.exe ! File ..\src\xxd\xxd.exe ! File ..\..\diff.exe ! File ..\vimtutor.bat ! File ..\README.txt ! File ..\uninstal.txt ! File ..\*.vim ! File ..\rgb.txt ! ! SetOutPath $0\colors ! File ..\colors\*.* ! ! SetOutPath $0\compiler ! File ..\compiler\*.* ! ! SetOutPath $0\doc ! File ..\doc\*.txt ! File ..\doc\tags ! ! SetOutPath $0\ftplugin ! File ..\ftplugin\*.* ! SetOutPath $0\indent ! File ..\indent\*.* ! ! SetOutPath $0\macros ! File ..\macros\*.* ! ! SetOutPath $0\plugin ! File ..\plugin\*.* ! ! SetOutPath $0\syntax ! File ..\syntax\*.* ! ! SetOutPath $0\tools ! File ..\tools\*.* ! ! SetOutPath $0\tutor ! File ..\tutor\*.* SectionEnd ! ########################################################## ! SectionDivider ########################################################## Section "Create icons on the Desktop" ! SectionIn 1 3 ! ! StrCpy $1 "$1 -install-icons" SectionEnd ########################################################## Section "Add Vim to the Start Menu" ! SectionIn 1 3 ! ! StrCpy $1 "$1 -add-start-menu" SectionEnd ########################################################## Section "Add an Edit-with-Vim context menu entry" ! SectionIn 1 3 ! ! SetOutPath $0 ! File ..\src\GvimExt\gvimext.dll ! ! StrCpy $1 "$1 -install-popup" SectionEnd ! ########################################################## ! SectionDivider ########################################################## Section "Create a _vimrc if it doesn't exist" ! SectionIn 1 3 ! ! StrCpy $1 "$1 -create-vimrc" SectionEnd ########################################################## Section "Create .bat files for command line use" ! SectionIn 3 ! ! StrCpy $1 "$1 -create-batfiles gvim evim gview gvimdiff" SectionEnd ########################################################## Section "Create plugin directories in HOME or VIM" ! SectionIn 1 3 ! ! StrCpy $1 "$1 -create-directories home" SectionEnd ########################################################## Section "Create plugin directories in VIM" ! SectionIn 3 ! ! StrCpy $1 "$1 -create-directories vim" SectionEnd ########################################################## - SectionDivider - ########################################################## Section "VisVim Extension for MS Visual Studio" ! SectionIn 3 ! ! SetOutPath $0 ! File ..\src\VisVim\VisVim.dll ! File ..\src\VisVim\README_VisVim.txt ! ExecWait "regsvr32.exe /s $0\VisVim.dll" SectionEnd ########################################################## !ifdef HAVE_NLS ! Section "Native Language Support" ! SectionIn 1 3 ! ! SetOutPath $0\lang ! File /r ..\lang\*.* ! SetOutPath $0\keymap ! File ..\keymap\README.txt ! File ..\keymap\*.vim ! SetOutPath $0 ! File ..\libintl.dll ! SectionEnd !endif ########################################################## Section -call_install_exe ! ! SetOutPath $0 ! ExecWait "$0\install.exe $1" ! SectionEnd ########################################################## Section -post ! ! BringToFront ! SectionEnd ########################################################## Section Uninstall ! # Apparently $INSTDIR is set to the directory where the uninstaller is created. ! # Thus the "vim61" directory is included in it. ! StrCpy $0 "$INSTDIR" ! ! ; If VisVim was installed, unregister the DLL ! IfFileExists "$0\VisVim.dll" Has_VisVim No_VisVim ! Has_VisVim: ! ExecWait "regsvr32.exe /u /s $0\VisVim.dll" ! ! No_VisVim: ! ! ; delete the context menu entry and batch files ! ExecWait "$0\uninstal.exe -nsis" ! ! # We may have been put to the background when uninstall did something. ! BringToFront ! ! # ask the user if the Vim version dir must be removed ! MessageBox MB_YESNO|MB_ICONQUESTION \ ! "Would you like to delete $0?$\n \ ! $\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes ! ! Delete /REBOOTOK $0\gvimext.dll ! ClearErrors ! RMDir /r $0 ! ! IfErrors ErrorMess NoErrorMess ! ErrorMess: ! MessageBox MB_OK|MB_ICONEXCLAMATION \ ! "Some files in $0 have not been deleted!$\nYou must do it manually." ! NoErrorMess: ! ! NoRemoveExes: ! ! # get the parent dir of the installation ! Push $INSTDIR ! Call un.GetParent ! Pop $0 ! ! StrCpy $1 $0 ! ! # if a plugin dir was created at installation ask the user to remove it ! # first look in the root of the installation then in HOME ! IfFileExists $1\vimfiles AskRemove 0 ! ReadEnvStr $1 "HOME" ! StrCmp $1 "" NoRemove 0 ! ! IfFileExists $1\vimfiles 0 NoRemove ! ! AskRemove: ! MessageBox MB_YESNO|MB_ICONQUESTION \ ! "Remove all files in your $1\vimfiles directory? \ ! $\nIf you have created something there that you want to keep, click No" IDNO Fin ! RMDir /r $1\vimfiles ! NoRemove: ! ! # ask the user if the Vim root dir must be removed ! MessageBox MB_YESNO|MB_ICONQUESTION \ ! "Would you like to remove $0?$\n \ ! $\nIt contains your Vim configuration files!" IDNO NoDelete ! RMDir /r $0 ; skipped if no ! NoDelete: ! ! Fin: ! ! Call un.onUnInstSuccess SectionEnd --- 147,371 ---- ########################################################## Section "Vim executables and runtime files" ! SectionIn 1 2 3 ! # we need also this here if the user changes the instdir ! StrCpy $0 "$INSTDIR\vim${VER_MAJOR}${VER_MINOR}" + SetOutPath $0 + File /oname=gvim.exe ..\src\gvim_ole.exe + File /oname=install.exe ..\src\installw32.exe + File /oname=uninstal.exe ..\src\uninstalw32.exe + File ..\src\vimrun.exe + File /oname=xxd.exe ..\src\xxdw32.exe + File ..\..\diff.exe + File ..\vimtutor.bat + File ..\README.txt + File ..\uninstal.txt + File ..\*.vim + File ..\rgb.txt + + SetOutPath $0\colors + File ..\colors\*.* + + SetOutPath $0\compiler + File ..\compiler\*.* + + SetOutPath $0\doc + File ..\doc\*.txt + File ..\doc\tags + + SetOutPath $0\ftplugin + File ..\ftplugin\*.* + + SetOutPath $0\indent + File ..\indent\*.* + + SetOutPath $0\macros + File ..\macros\*.* + + SetOutPath $0\plugin + File ..\plugin\*.* + + SetOutPath $0\syntax + File ..\syntax\*.* + + SetOutPath $0\tools + File ..\tools\*.* + + SetOutPath $0\tutor + File ..\tutor\*.* + SectionEnd + + ########################################################## + Section "Vim console program (vim.exe)" + SectionIn 1 3 + + SetOutPath $0 + ReadRegStr $R0 HKLM \ + "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion + IfErrors 0 lbl_winnt + # Windows 95/98/ME + File /oname=vim.exe ..\src\vimd32.exe + Goto lbl_done + lbl_winnt: + # Windows NT/2000/XT + File /oname=vim.exe ..\src\vimw32.exe + lbl_done: + StrCpy $2 "$2 vim view vimdiff" SectionEnd ! ########################################################## Section "Create icons on the Desktop" ! SectionIn 1 3 + StrCpy $1 "$1 -install-icons" SectionEnd + ########################################################## Section "Add Vim to the Start Menu" ! SectionIn 1 3 + StrCpy $1 "$1 -add-start-menu" SectionEnd + ########################################################## Section "Add an Edit-with-Vim context menu entry" ! SectionIn 1 3 + SetOutPath $0 + File ..\src\GvimExt\gvimext.dll + StrCpy $1 "$1 -install-popup" SectionEnd ! ########################################################## Section "Create a _vimrc if it doesn't exist" ! SectionIn 1 3 + StrCpy $1 "$1 -create-vimrc" SectionEnd + ########################################################## Section "Create .bat files for command line use" ! SectionIn 3 + StrCpy $1 "$1 -create-batfiles $2" SectionEnd + ########################################################## Section "Create plugin directories in HOME or VIM" ! SectionIn 1 3 + StrCpy $1 "$1 -create-directories home" SectionEnd + ########################################################## Section "Create plugin directories in VIM" ! SectionIn 3 + StrCpy $1 "$1 -create-directories vim" SectionEnd ########################################################## Section "VisVim Extension for MS Visual Studio" ! SectionIn 3 + SetOutPath $0 + File ..\src\VisVim\VisVim.dll + File ..\src\VisVim\README_VisVim.txt + ExecWait "regsvr32.exe /s $0\VisVim.dll" SectionEnd + ########################################################## !ifdef HAVE_NLS ! Section "Native Language Support" ! SectionIn 1 3 ! SetOutPath $0\lang ! File /r ..\lang\*.* ! SetOutPath $0\keymap ! File ..\keymap\README.txt ! File ..\keymap\*.vim ! SetOutPath $0 ! File ..\libintl.dll ! SectionEnd !endif + ########################################################## Section -call_install_exe ! SetOutPath $0 ! ExecWait "$0\install.exe $1" SectionEnd + ########################################################## Section -post ! BringToFront SectionEnd ########################################################## Section Uninstall + # Apparently $INSTDIR is set to the directory where the uninstaller is + # created. Thus the "vim61" directory is included in it. + StrCpy $0 "$INSTDIR" + + # If VisVim was installed, unregister the DLL + IfFileExists "$0\VisVim.dll" Has_VisVim No_VisVim + Has_VisVim: + ExecWait "regsvr32.exe /u /s $0\VisVim.dll" + + No_VisVim: + + # delete the context menu entry and batch files + ExecWait "$0\uninstal.exe -nsis" + + # We may have been put to the background when uninstall did something. + BringToFront + + # ask the user if the Vim version dir must be removed + MessageBox MB_YESNO|MB_ICONQUESTION \ + "Would you like to delete $0?$\n \ + $\nIt contains the Vim executables and runtime files." IDNO NoRemoveExes + + Delete /REBOOTOK $0\gvimext.dll + ClearErrors + RMDir /r $0 + + IfErrors ErrorMess NoErrorMess + ErrorMess: + MessageBox MB_OK|MB_ICONEXCLAMATION \ + "Some files in $0 have not been deleted!$\nYou must do it manually." + NoErrorMess: + + NoRemoveExes: + # get the parent dir of the installation + Push $INSTDIR + Call un.GetParent + Pop $0 + StrCpy $1 $0 + + # if a plugin dir was created at installation ask the user to remove it + # first look in the root of the installation then in HOME + IfFileExists $1\vimfiles AskRemove 0 + ReadEnvStr $1 "HOME" + StrCmp $1 "" NoRemove 0 + + IfFileExists $1\vimfiles 0 NoRemove + + AskRemove: + MessageBox MB_YESNO|MB_ICONQUESTION \ + "Remove all files in your $1\vimfiles directory? \ + $\nIf you have created something there that you want to keep, click No" IDNO Fin + RMDir /r $1\vimfiles + NoRemove: + + # ask the user if the Vim root dir must be removed + MessageBox MB_YESNO|MB_ICONQUESTION \ + "Would you like to remove $0?$\n \ + $\nIt contains your Vim configuration files!" IDNO NoDelete + RMDir /r $0 ; skipped if no + NoDelete: ! Fin: ! Call un.onUnInstSuccess SectionEnd *** ../vim-6.2.519/src/version.c Sat May 1 21:04:31 2004 --- src/version.c Sun May 2 16:46:38 2004 *************** *** 639,640 **** --- 639,642 ---- { /* Add new patch number below this line */ + /**/ + 520, /**/ -- From "know your smileys": *<|:-) Santa Claus (Ho Ho Ho) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ Project leader for A-A-P -- http://www.A-A-P.org /// \\\ Buy at Amazon and help AIDS victims -- http://ICCF.nl/click1.html ///