[Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx:[795] vendor/fuse-emulator/current/fuse
Brought to you by:
fredm
From: <fr...@us...> - 2016-05-24 14:04:18
|
Revision: 795 http://sourceforge.net/p/fuse-for-macosx/code/795 Author: fredm Date: 2016-05-24 14:04:16 +0000 (Tue, 24 May 2016) Log Message: ----------- To prepare to load . into vendor/fuse-emulator/current, perform 3 renames. * vendor/fuse-emulator/current/fuse/data/win32/fuse.manifest.in: Renamed from vendor/fuse-emulator/current/fuse/ui/win32/fuse.manifest.in. * vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in: Renamed from vendor/fuse-emulator/current/fuse/ui/win32/installer/fuse.nsi.in. * vendor/fuse-emulator/current/fuse/data/win32/winfuse.ico: Renamed from vendor/fuse-emulator/current/fuse/winfuse.ico. Added Paths: ----------- vendor/fuse-emulator/current/fuse/data/win32/ vendor/fuse-emulator/current/fuse/data/win32/fuse.manifest.in vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in vendor/fuse-emulator/current/fuse/data/win32/winfuse.ico Removed Paths: ------------- vendor/fuse-emulator/current/fuse/ui/win32/fuse.manifest.in vendor/fuse-emulator/current/fuse/ui/win32/installer/fuse.nsi.in vendor/fuse-emulator/current/fuse/winfuse.ico Copied: vendor/fuse-emulator/current/fuse/data/win32/fuse.manifest.in (from rev 794, vendor/fuse-emulator/current/fuse/ui/win32/fuse.manifest.in) =================================================================== --- vendor/fuse-emulator/current/fuse/data/win32/fuse.manifest.in (rev 0) +++ vendor/fuse-emulator/current/fuse/data/win32/fuse.manifest.in 2016-05-24 14:04:16 UTC (rev 795) @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> +<assemblyIdentity + version="@FUSE_FULL_VERSION@" + processorArchitecture="*" + name="fuse.exe" + type="win32" +/> +<description>Fuse (Free Unix Spectrum Emulator)</description> +<dependency> + <dependentAssembly> + <assemblyIdentity + type="win32" + name="Microsoft.Windows.Common-Controls" + version="6.0.0.0" + processorArchitecture="*" + publicKeyToken="6595b64144ccf1df" + language="*" + /> + </dependentAssembly> +</dependency> +</assembly> Copied: vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in (from rev 794, vendor/fuse-emulator/current/fuse/ui/win32/installer/fuse.nsi.in) =================================================================== --- vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in (rev 0) +++ vendor/fuse-emulator/current/fuse/data/win32/installer.nsi.in 2016-05-24 14:04:16 UTC (rev 795) @@ -0,0 +1,384 @@ +## NSIS (nsis.sf.net) script to produce installer for win32 platform +## Copyright (c) 2009 Marek Januszewski + +## $Id: fuse.nsi.in 5010 2013-05-31 18:32:45Z sbaldovi $ + +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License along +## with this program; if not, write to the Free Software Foundation, Inc., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +## +## Author contact information: +## +## E-mail: phi...@sh... + +!define FUSE_VERSION "@PACKAGE_VERSION@" ; could have letters like -RC1 +!define FUSE_FULL_VERSION "@FUSE_FULL_VERSION@" ; must have four numeric tokens +!define DISPLAY_NAME "Free Unix Spectrum Emulator (Fuse) ${FUSE_VERSION}" +!define SETUP_FILENAME "@PACKAGE@-${FUSE_VERSION}-win32-setup" +!define SETUP_FILE "${SETUP_FILENAME}.exe" +!define HKLM_REG_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fuse" +!define PROG_ID "Fuse.Files.1" + +;Include Modern UI +!include "MUI2.nsh" +!include "Sections.nsh" +!include "Util.nsh" + +;-------------------------------- +;General + +Name "${DISPLAY_NAME}" +outFile "${SETUP_FILE}" +Caption "${DISPLAY_NAME}" + +installDir "$PROGRAMFILES\Fuse" + +; [Additional Installer Settings ] +XPStyle on +SetCompress force +SetCompressor lzma + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_LICENSE "COPYING.txt" + !define MUI_COMPONENTSPAGE_SMALLDESC + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !define MUI_FINISHPAGE_RUN "$INSTDIR\fuse.exe" + !define MUI_FINISHPAGE_NOREBOOTSUPPORT + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + !define MUI_FINISHPAGE_SHOWREADME_CHECKED + !define MUI_FINISHPAGE_SHOWREADME "" + !define MUI_FINISHPAGE_SHOWREADME_TEXT "Delete configuration file" + !define MUI_FINISHPAGE_SHOWREADME_FUNCTION un.DeleteConfigFile + !insertmacro MUI_UNPAGE_FINISH + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Version Information + + VIProductVersion ${FUSE_FULL_VERSION} + VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "" + VIAddVersionKey /LANG=${LANG_ENGLISH} "InternalName" "${SETUP_FILENAME}" + VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "@FUSE_COPYRIGHT@" + VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Fuse" + VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${FUSE_VERSION}" + VIAddVersionKey /LANG=${LANG_ENGLISH} "OriginalFilename" "${SETUP_FILE}" + VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Fuse - the Free Unix Spectrum Emulator" + VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${FUSE_VERSION}" + +;-------------------------------- +;File association functions + +!macro SelectUnregisteredExtCall _EXTENSION _SECTION + Push `${_EXTENSION}` + Push `${_SECTION}` + ${CallArtificialFunction} SelectUnregisteredExt_ +!macroend + +!macro NewSecExtensionCall _EXTENSION _DESCRIPTION + Section /o "${_DESCRIPTION} File" SEC_${_DESCRIPTION} + ${registerExtension} "${_EXTENSION}" + SectionEnd +!macroend + +!macro RegisterExtensionCall _EXTENSION + Push `${_EXTENSION}` + ${CallArtificialFunction} RegisterExtension_ +!macroend + +!macro UnRegisterExtensionCall _EXTENSION + Push "${_EXTENSION}" + ${CallArtificialFunction} UnRegisterExtension_ +!macroend + +!macro SelectUnregisteredExt_ + Exch $R1 ;section + Exch + Exch $R0 ;extension + Exch + Push $0 + + ReadRegStr $0 HKLM "Software\Classes\$R0" "" + ;Select if already associated with FUSE, i.e., reinstallation + StrCmp $0 "${PROG_ID}" Select 0 + ;Select if available + StrCmp $0 "" Select NoSelect + +Select: + !insertmacro SelectSection $R1 + +NoSelect: + Pop $0 + Pop $R1 + Pop $R0 +!macroend + +!macro RegisterExtension_ + Exch $R0 ;extension + Push $0 + + ; Recommend Fuse in the Open With list + WriteRegStr HKLM "Software\Classes\$R0\OpenWithProgids" "${PROG_ID}" "" + + ; Read global file association + ReadRegStr $0 HKLM "Software\Classes\$R0" "" + StrCmp "$0" "" NoBackup ; is it empty + StrCmp "$0" "${PROG_ID}" NoBackup ; is it our own + ; Backup current value + WriteRegStr HKLM "Software\Classes\$R0" "backup_val" "$0" + +NoBackup: + ; Set global file association + WriteRegStr HKLM "Software\Classes\$R0" "" "${PROG_ID}" + + ; Set current user (custom) file association + ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" + StrCmp "$0" "" NoLocalBackup ; is it empty + StrCmp "$0" "${PROG_ID}" NoLocalBackup ; is it our own + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "backup_val" "$0" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" "${PROG_ID}" + +NoLocalBackup: + Pop $0 + Pop $R0 +!macroend + +!macro UnRegisterExtension_ + Exch $R0 ;extension + Push $0 + + ; Unregister OpenWith recommendation + DeleteRegValue HKLM "Software\Classes\$R0\OpenWithProgids" "${PROG_ID}" + + ; Try to delete current file association + ReadRegStr $0 HKLM "Software\Classes\$R0" "" + StrCmp $0 ${PROG_ID} 0 NoOwn ; only do this if we own it + ReadRegStr $0 HKLM "Software\Classes\$R0" "backup_val" + StrCmp $0 "" 0 Restore ; if backup="" then delete the whole key + DeleteRegKey HKLM "Software\Classes\$R0" + Goto NoOwn + +Restore: + WriteRegStr HKLM "Software\Classes\$R0" "" $0 + DeleteRegValue HKLM "Software\Classes\$R0" "backup_val" + +NoOwn: + ; Delete programmatic identifier + DeleteRegKey HKLM "Software\Classes\${PROG_ID}"; + + ; Delete current user (custom) file association + ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" + StrCmp "$0" "" NoLocalRestore ; is it empty + StrCmp "$0" "${PROG_ID}" 0 NoLocalRestore ; is it our own + ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "backup_val" + StrCmp "$0" "" 0 +2 ; if no backup -> delete + DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" + WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" "$0" + DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "backup_val" + +NoLocalRestore: + Pop $0 + Pop $R0 +!macroend + +!define NewSecExtension `!insertmacro NewSecExtensionCall` +!define SelectUnregisteredExt `!insertmacro SelectUnregisteredExtCall` +!define RegisterExtension `!insertmacro RegisterExtensionCall` +!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall` + +;-------------------------------- +; Uninstall previous version + + Section "" SecUninstallPrevious + + Push $R0 + ReadRegStr $R0 HKLM "${HKLM_REG_KEY}" "UninstallString" + + ; Check if we are upgrading a previous installation + ${If} $R0 == '"$INSTDIR\uninstall.exe"' + DetailPrint "Removing previous installation..." + + ; Run the uninstaller silently + ExecWait '"$INSTDIR\uninstall.exe" /S _?=$INSTDIR' + ${EndIf} + + Pop $R0 + +SectionEnd + +;-------------------------------- +; start default section + +section "!Fuse Core Files (required)" SecCore + + SectionIn RO + DetailPrint "Installing Fuse Core Files..." + + ; set the installation directory as the destination for the following actions + setOutPath "$INSTDIR" + + ; Installation files + File "AUTHORS.txt" + File "ChangeLog.txt" + File "COPYING.txt" + File "fuse.exe" + File "fuse.html" + File "README.txt" + File /nonfatal "README-win32.txt" + File "*.dll" + SetOutPath $INSTDIR\lib + File "lib\*" + SetOutPath "$INSTDIR\roms" + File "roms\*" + + ; create the uninstaller + writeUninstaller "$INSTDIR\uninstall.exe" + + ; Write the uninstall keys for Windows + WriteRegStr HKLM "${HKLM_REG_KEY}" "DisplayName" "${DISPLAY_NAME}" + WriteRegStr HKLM "${HKLM_REG_KEY}" "DisplayVersion" "${FUSE_VERSION}" + WriteRegStr HKLM "${HKLM_REG_KEY}" "HelpLink" "@PACKAGE_URL@" + WriteRegStr HKLM "${HKLM_REG_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe"' + WriteRegDWORD HKLM "${HKLM_REG_KEY}" "NoModify" 1 + WriteRegDWORD HKLM "${HKLM_REG_KEY}" "NoRepair" 1 + +sectionEnd + +;-------------------------------- +; Create shortcuts + +section "Start Menu and Desktop links" SecShortcuts + + DetailPrint "Creating Shortcuts..." + CreateDirectory "$SMPROGRAMS\Fuse" + CreateShortCut "$SMPROGRAMS\Fuse\Fuse.lnk" "$INSTDIR\fuse.exe" + CreateShortCut "$SMPROGRAMS\Fuse\Manual.lnk" "$INSTDIR\fuse.html" + CreateShortCut "$SMPROGRAMS\Fuse\Readme.lnk" "$INSTDIR\README.txt" + CreateShortCut "$SMPROGRAMS\Fuse\Uninstall.lnk" "$INSTDIR\uninstall.exe" + CreateShortCut "$DESKTOP\Fuse.lnk" "$INSTDIR\fuse.exe" + +sectionEnd + +;-------------------------------- +; Register common file extensions + +SectionGroup /e "Register File Extensions" SecFileExt + ${NewSecExtension} ".pzx" "PZX" + ${NewSecExtension} ".rzx" "RZX" + ${NewSecExtension} ".sna" "SNA" + ${NewSecExtension} ".szx" "SZX" + ${NewSecExtension} ".tap" "TAP" + ${NewSecExtension} ".tzx" "TZX" + ${NewSecExtension} ".z80" "Z80" +SectionGroupEnd + +Section "-Register Application" + WriteRegStr HKLM "Software\Classes\${PROG_ID}\shell" "" "open" + WriteRegStr HKLM "Software\Classes\${PROG_ID}\DefaultIcon" "" "$INSTDIR\fuse.exe,0" + WriteRegStr HKLM "Software\Classes\${PROG_ID}\shell\open\command" "" '"$INSTDIR\fuse.exe" "%1"' + WriteRegStr HKLM "Software\Classes\Applications\fuse.exe" "NoOpenWith" "" + + System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' +SectionEnd + +Function .onInit + ; Select extensions not associated with other applications + ${SelectUnregisteredExt} ".pzx" ${SEC_PZX} + ${SelectUnregisteredExt} ".rzx" ${SEC_RZX} + ${SelectUnregisteredExt} ".sna" ${SEC_SNA} + ${SelectUnregisteredExt} ".szx" ${SEC_SZX} + ${SelectUnregisteredExt} ".tap" ${SEC_TAP} + ${SelectUnregisteredExt} ".tzx" ${SEC_TZX} + ${SelectUnregisteredExt} ".z80" ${SEC_Z80} +FunctionEnd + +;-------------------------------- +; uninstaller section start + +section "uninstall" + + ; Unregister file extensions association (if owned) + DetailPrint "Deleting Registry Keys..." + ${unregisterExtension} ".pzx" + ${unregisterExtension} ".rzx" + ${unregisterExtension} ".sna" + ${unregisterExtension} ".szx" + ${unregisterExtension} ".tap" + ${unregisterExtension} ".tzx" + ${unregisterExtension} ".z80" + + ; Unregister Application + DeleteRegKey HKLM "Software\Classes\${PROG_ID}" + DeleteRegKey HKLM "Software\Classes\Applications\fuse.exe" + + System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' + + ; Delete the links + DetailPrint "Deleting Shortcuts..." + Delete "$SMPROGRAMS\Fuse\Fuse.lnk" + Delete "$SMPROGRAMS\Fuse\Manual.lnk" + Delete "$SMPROGRAMS\Fuse\Readme.lnk" + Delete "$SMPROGRAMS\Fuse\Uninstall.lnk" + RMDir "$SMPROGRAMS\Fuse" + Delete "$DESKTOP\Fuse.lnk" + + ; Installation files + DetailPrint "Deleting Files..." + Delete "$INSTDIR\lib\*" + RMDir "$INSTDIR\lib" + Delete "$INSTDIR\roms\*" + RMDir "$INSTDIR\roms" + Delete "$INSTDIR\AUTHORS.txt" + Delete "$INSTDIR\ChangeLog.txt" + Delete "$INSTDIR\COPYING.txt" + Delete "$INSTDIR\fuse.exe" + Delete "$INSTDIR\fuse.html" + Delete "$INSTDIR\README.txt" + Delete "$INSTDIR\README-win32.txt" + Delete "$INSTDIR\*.dll" + RMDir "$INSTDIR" + + ; Delete the uninstaller and remove the uninstall keys for Windows + DetailPrint "Deleting Uninstaller..." + Delete "$INSTDIR\uninstall.exe" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fuse" + +sectionEnd + +Function un.DeleteConfigFile + Delete "$PROFILE\fuse.cfg" +FunctionEnd + +;-------------------------------- +;Descriptions + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The core files required to use Fuse (program, libraries, ROMs, etc.)" + !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} "Adds icons to your start menu and your desktop for easy access" + !insertmacro MUI_DESCRIPTION_TEXT ${SecFileExt} "Register common file extensions with Fuse: pzx, rzx, sna, szx, tap, tzx and z80" +!insertmacro MUI_FUNCTION_DESCRIPTION_END Copied: vendor/fuse-emulator/current/fuse/data/win32/winfuse.ico (from rev 794, vendor/fuse-emulator/current/fuse/winfuse.ico) =================================================================== (Binary files differ) Deleted: vendor/fuse-emulator/current/fuse/ui/win32/fuse.manifest.in =================================================================== --- vendor/fuse-emulator/current/fuse/ui/win32/fuse.manifest.in 2016-05-24 11:04:28 UTC (rev 794) +++ vendor/fuse-emulator/current/fuse/ui/win32/fuse.manifest.in 2016-05-24 14:04:16 UTC (rev 795) @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> -<assemblyIdentity - version="@FUSE_FULL_VERSION@" - processorArchitecture="*" - name="fuse.exe" - type="win32" -/> -<description>Fuse (Free Unix Spectrum Emulator)</description> -<dependency> - <dependentAssembly> - <assemblyIdentity - type="win32" - name="Microsoft.Windows.Common-Controls" - version="6.0.0.0" - processorArchitecture="*" - publicKeyToken="6595b64144ccf1df" - language="*" - /> - </dependentAssembly> -</dependency> -</assembly> Deleted: vendor/fuse-emulator/current/fuse/ui/win32/installer/fuse.nsi.in =================================================================== --- vendor/fuse-emulator/current/fuse/ui/win32/installer/fuse.nsi.in 2016-05-24 11:04:28 UTC (rev 794) +++ vendor/fuse-emulator/current/fuse/ui/win32/installer/fuse.nsi.in 2016-05-24 14:04:16 UTC (rev 795) @@ -1,384 +0,0 @@ -## NSIS (nsis.sf.net) script to produce installer for win32 platform -## Copyright (c) 2009 Marek Januszewski - -## $Id: fuse.nsi.in 5010 2013-05-31 18:32:45Z sbaldovi $ - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2 of the License, or -## (at your option) any later version. -## -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. -## -## You should have received a copy of the GNU General Public License along -## with this program; if not, write to the Free Software Foundation, Inc., -## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -## -## Author contact information: -## -## E-mail: phi...@sh... - -!define FUSE_VERSION "@PACKAGE_VERSION@" ; could have letters like -RC1 -!define FUSE_FULL_VERSION "@FUSE_FULL_VERSION@" ; must have four numeric tokens -!define DISPLAY_NAME "Free Unix Spectrum Emulator (Fuse) ${FUSE_VERSION}" -!define SETUP_FILENAME "@PACKAGE@-${FUSE_VERSION}-win32-setup" -!define SETUP_FILE "${SETUP_FILENAME}.exe" -!define HKLM_REG_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fuse" -!define PROG_ID "Fuse.Files.1" - -;Include Modern UI -!include "MUI2.nsh" -!include "Sections.nsh" -!include "Util.nsh" - -;-------------------------------- -;General - -Name "${DISPLAY_NAME}" -outFile "${SETUP_FILE}" -Caption "${DISPLAY_NAME}" - -installDir "$PROGRAMFILES\Fuse" - -; [Additional Installer Settings ] -XPStyle on -SetCompress force -SetCompressor lzma - -;-------------------------------- -;Interface Settings - - !define MUI_ABORTWARNING - -;-------------------------------- -;Pages - - !insertmacro MUI_PAGE_LICENSE "COPYING.txt" - !define MUI_COMPONENTSPAGE_SMALLDESC - !insertmacro MUI_PAGE_COMPONENTS - !insertmacro MUI_PAGE_DIRECTORY - !insertmacro MUI_PAGE_INSTFILES - !define MUI_FINISHPAGE_RUN "$INSTDIR\fuse.exe" - !define MUI_FINISHPAGE_NOREBOOTSUPPORT - !insertmacro MUI_PAGE_FINISH - - !insertmacro MUI_UNPAGE_CONFIRM - !insertmacro MUI_UNPAGE_INSTFILES - !define MUI_FINISHPAGE_SHOWREADME_CHECKED - !define MUI_FINISHPAGE_SHOWREADME "" - !define MUI_FINISHPAGE_SHOWREADME_TEXT "Delete configuration file" - !define MUI_FINISHPAGE_SHOWREADME_FUNCTION un.DeleteConfigFile - !insertmacro MUI_UNPAGE_FINISH - -;-------------------------------- -;Languages - - !insertmacro MUI_LANGUAGE "English" - -;-------------------------------- -;Version Information - - VIProductVersion ${FUSE_FULL_VERSION} - VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "" - VIAddVersionKey /LANG=${LANG_ENGLISH} "InternalName" "${SETUP_FILENAME}" - VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "@FUSE_COPYRIGHT@" - VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Fuse" - VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "${FUSE_VERSION}" - VIAddVersionKey /LANG=${LANG_ENGLISH} "OriginalFilename" "${SETUP_FILE}" - VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "Fuse - the Free Unix Spectrum Emulator" - VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" "${FUSE_VERSION}" - -;-------------------------------- -;File association functions - -!macro SelectUnregisteredExtCall _EXTENSION _SECTION - Push `${_EXTENSION}` - Push `${_SECTION}` - ${CallArtificialFunction} SelectUnregisteredExt_ -!macroend - -!macro NewSecExtensionCall _EXTENSION _DESCRIPTION - Section /o "${_DESCRIPTION} File" SEC_${_DESCRIPTION} - ${registerExtension} "${_EXTENSION}" - SectionEnd -!macroend - -!macro RegisterExtensionCall _EXTENSION - Push `${_EXTENSION}` - ${CallArtificialFunction} RegisterExtension_ -!macroend - -!macro UnRegisterExtensionCall _EXTENSION - Push "${_EXTENSION}" - ${CallArtificialFunction} UnRegisterExtension_ -!macroend - -!macro SelectUnregisteredExt_ - Exch $R1 ;section - Exch - Exch $R0 ;extension - Exch - Push $0 - - ReadRegStr $0 HKLM "Software\Classes\$R0" "" - ;Select if already associated with FUSE, i.e., reinstallation - StrCmp $0 "${PROG_ID}" Select 0 - ;Select if available - StrCmp $0 "" Select NoSelect - -Select: - !insertmacro SelectSection $R1 - -NoSelect: - Pop $0 - Pop $R1 - Pop $R0 -!macroend - -!macro RegisterExtension_ - Exch $R0 ;extension - Push $0 - - ; Recommend Fuse in the Open With list - WriteRegStr HKLM "Software\Classes\$R0\OpenWithProgids" "${PROG_ID}" "" - - ; Read global file association - ReadRegStr $0 HKLM "Software\Classes\$R0" "" - StrCmp "$0" "" NoBackup ; is it empty - StrCmp "$0" "${PROG_ID}" NoBackup ; is it our own - ; Backup current value - WriteRegStr HKLM "Software\Classes\$R0" "backup_val" "$0" - -NoBackup: - ; Set global file association - WriteRegStr HKLM "Software\Classes\$R0" "" "${PROG_ID}" - - ; Set current user (custom) file association - ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" - StrCmp "$0" "" NoLocalBackup ; is it empty - StrCmp "$0" "${PROG_ID}" NoLocalBackup ; is it our own - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "backup_val" "$0" - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" "${PROG_ID}" - -NoLocalBackup: - Pop $0 - Pop $R0 -!macroend - -!macro UnRegisterExtension_ - Exch $R0 ;extension - Push $0 - - ; Unregister OpenWith recommendation - DeleteRegValue HKLM "Software\Classes\$R0\OpenWithProgids" "${PROG_ID}" - - ; Try to delete current file association - ReadRegStr $0 HKLM "Software\Classes\$R0" "" - StrCmp $0 ${PROG_ID} 0 NoOwn ; only do this if we own it - ReadRegStr $0 HKLM "Software\Classes\$R0" "backup_val" - StrCmp $0 "" 0 Restore ; if backup="" then delete the whole key - DeleteRegKey HKLM "Software\Classes\$R0" - Goto NoOwn - -Restore: - WriteRegStr HKLM "Software\Classes\$R0" "" $0 - DeleteRegValue HKLM "Software\Classes\$R0" "backup_val" - -NoOwn: - ; Delete programmatic identifier - DeleteRegKey HKLM "Software\Classes\${PROG_ID}"; - - ; Delete current user (custom) file association - ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" - StrCmp "$0" "" NoLocalRestore ; is it empty - StrCmp "$0" "${PROG_ID}" 0 NoLocalRestore ; is it our own - ReadRegStr $0 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "backup_val" - StrCmp "$0" "" 0 +2 ; if no backup -> delete - DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" - WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "Progid" "$0" - DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\$R0" "backup_val" - -NoLocalRestore: - Pop $0 - Pop $R0 -!macroend - -!define NewSecExtension `!insertmacro NewSecExtensionCall` -!define SelectUnregisteredExt `!insertmacro SelectUnregisteredExtCall` -!define RegisterExtension `!insertmacro RegisterExtensionCall` -!define UnRegisterExtension `!insertmacro UnRegisterExtensionCall` - -;-------------------------------- -; Uninstall previous version - - Section "" SecUninstallPrevious - - Push $R0 - ReadRegStr $R0 HKLM "${HKLM_REG_KEY}" "UninstallString" - - ; Check if we are upgrading a previous installation - ${If} $R0 == '"$INSTDIR\uninstall.exe"' - DetailPrint "Removing previous installation..." - - ; Run the uninstaller silently - ExecWait '"$INSTDIR\uninstall.exe" /S _?=$INSTDIR' - ${EndIf} - - Pop $R0 - -SectionEnd - -;-------------------------------- -; start default section - -section "!Fuse Core Files (required)" SecCore - - SectionIn RO - DetailPrint "Installing Fuse Core Files..." - - ; set the installation directory as the destination for the following actions - setOutPath "$INSTDIR" - - ; Installation files - File "AUTHORS.txt" - File "ChangeLog.txt" - File "COPYING.txt" - File "fuse.exe" - File "fuse.html" - File "README.txt" - File /nonfatal "README-win32.txt" - File "*.dll" - SetOutPath $INSTDIR\lib - File "lib\*" - SetOutPath "$INSTDIR\roms" - File "roms\*" - - ; create the uninstaller - writeUninstaller "$INSTDIR\uninstall.exe" - - ; Write the uninstall keys for Windows - WriteRegStr HKLM "${HKLM_REG_KEY}" "DisplayName" "${DISPLAY_NAME}" - WriteRegStr HKLM "${HKLM_REG_KEY}" "DisplayVersion" "${FUSE_VERSION}" - WriteRegStr HKLM "${HKLM_REG_KEY}" "HelpLink" "@PACKAGE_URL@" - WriteRegStr HKLM "${HKLM_REG_KEY}" "UninstallString" '"$INSTDIR\uninstall.exe"' - WriteRegDWORD HKLM "${HKLM_REG_KEY}" "NoModify" 1 - WriteRegDWORD HKLM "${HKLM_REG_KEY}" "NoRepair" 1 - -sectionEnd - -;-------------------------------- -; Create shortcuts - -section "Start Menu and Desktop links" SecShortcuts - - DetailPrint "Creating Shortcuts..." - CreateDirectory "$SMPROGRAMS\Fuse" - CreateShortCut "$SMPROGRAMS\Fuse\Fuse.lnk" "$INSTDIR\fuse.exe" - CreateShortCut "$SMPROGRAMS\Fuse\Manual.lnk" "$INSTDIR\fuse.html" - CreateShortCut "$SMPROGRAMS\Fuse\Readme.lnk" "$INSTDIR\README.txt" - CreateShortCut "$SMPROGRAMS\Fuse\Uninstall.lnk" "$INSTDIR\uninstall.exe" - CreateShortCut "$DESKTOP\Fuse.lnk" "$INSTDIR\fuse.exe" - -sectionEnd - -;-------------------------------- -; Register common file extensions - -SectionGroup /e "Register File Extensions" SecFileExt - ${NewSecExtension} ".pzx" "PZX" - ${NewSecExtension} ".rzx" "RZX" - ${NewSecExtension} ".sna" "SNA" - ${NewSecExtension} ".szx" "SZX" - ${NewSecExtension} ".tap" "TAP" - ${NewSecExtension} ".tzx" "TZX" - ${NewSecExtension} ".z80" "Z80" -SectionGroupEnd - -Section "-Register Application" - WriteRegStr HKLM "Software\Classes\${PROG_ID}\shell" "" "open" - WriteRegStr HKLM "Software\Classes\${PROG_ID}\DefaultIcon" "" "$INSTDIR\fuse.exe,0" - WriteRegStr HKLM "Software\Classes\${PROG_ID}\shell\open\command" "" '"$INSTDIR\fuse.exe" "%1"' - WriteRegStr HKLM "Software\Classes\Applications\fuse.exe" "NoOpenWith" "" - - System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' -SectionEnd - -Function .onInit - ; Select extensions not associated with other applications - ${SelectUnregisteredExt} ".pzx" ${SEC_PZX} - ${SelectUnregisteredExt} ".rzx" ${SEC_RZX} - ${SelectUnregisteredExt} ".sna" ${SEC_SNA} - ${SelectUnregisteredExt} ".szx" ${SEC_SZX} - ${SelectUnregisteredExt} ".tap" ${SEC_TAP} - ${SelectUnregisteredExt} ".tzx" ${SEC_TZX} - ${SelectUnregisteredExt} ".z80" ${SEC_Z80} -FunctionEnd - -;-------------------------------- -; uninstaller section start - -section "uninstall" - - ; Unregister file extensions association (if owned) - DetailPrint "Deleting Registry Keys..." - ${unregisterExtension} ".pzx" - ${unregisterExtension} ".rzx" - ${unregisterExtension} ".sna" - ${unregisterExtension} ".szx" - ${unregisterExtension} ".tap" - ${unregisterExtension} ".tzx" - ${unregisterExtension} ".z80" - - ; Unregister Application - DeleteRegKey HKLM "Software\Classes\${PROG_ID}" - DeleteRegKey HKLM "Software\Classes\Applications\fuse.exe" - - System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)' - - ; Delete the links - DetailPrint "Deleting Shortcuts..." - Delete "$SMPROGRAMS\Fuse\Fuse.lnk" - Delete "$SMPROGRAMS\Fuse\Manual.lnk" - Delete "$SMPROGRAMS\Fuse\Readme.lnk" - Delete "$SMPROGRAMS\Fuse\Uninstall.lnk" - RMDir "$SMPROGRAMS\Fuse" - Delete "$DESKTOP\Fuse.lnk" - - ; Installation files - DetailPrint "Deleting Files..." - Delete "$INSTDIR\lib\*" - RMDir "$INSTDIR\lib" - Delete "$INSTDIR\roms\*" - RMDir "$INSTDIR\roms" - Delete "$INSTDIR\AUTHORS.txt" - Delete "$INSTDIR\ChangeLog.txt" - Delete "$INSTDIR\COPYING.txt" - Delete "$INSTDIR\fuse.exe" - Delete "$INSTDIR\fuse.html" - Delete "$INSTDIR\README.txt" - Delete "$INSTDIR\README-win32.txt" - Delete "$INSTDIR\*.dll" - RMDir "$INSTDIR" - - ; Delete the uninstaller and remove the uninstall keys for Windows - DetailPrint "Deleting Uninstaller..." - Delete "$INSTDIR\uninstall.exe" - DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fuse" - -sectionEnd - -Function un.DeleteConfigFile - Delete "$PROFILE\fuse.cfg" -FunctionEnd - -;-------------------------------- -;Descriptions - -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecCore} "The core files required to use Fuse (program, libraries, ROMs, etc.)" - !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} "Adds icons to your start menu and your desktop for easy access" - !insertmacro MUI_DESCRIPTION_TEXT ${SecFileExt} "Register common file extensions with Fuse: pzx, rzx, sna, szx, tap, tzx and z80" -!insertmacro MUI_FUNCTION_DESCRIPTION_END Deleted: vendor/fuse-emulator/current/fuse/winfuse.ico =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |