Minor cleanup and more LogicLib usage

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6381 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
anders_k 2013-07-10 16:34:53 +00:00
parent 5e1edb3d75
commit efefbd8269

View file

@ -6,9 +6,7 @@
!define /ifndef VER_BUILD 0
!endif
!ifndef VERSION
!define VERSION 'anonymous-build'
!endif
!define /ifndef VERSION 'anonymous-build'
;--------------------------------
;Configuration
@ -53,9 +51,11 @@ RequestExecutionLevel admin
Name "NSIS"
Caption "NSIS ${VERSION} Setup"
!define REG_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS"
;Memento Settings
!define MEMENTO_REGISTRY_ROOT HKLM
!define MEMENTO_REGISTRY_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\NSIS"
!define MEMENTO_REGISTRY_KEY "${REG_UNINST_KEY}"
;Interface Settings
!define MUI_ABORTWARNING
@ -116,6 +116,11 @@ VIAddVersionKey "LegalCopyright" "http://nsis.sf.net/License"
File "/oname=$InstDir\Plugins\x86-unicode\${pi}.dll" ..\Plugins\x86-unicode\${pi}.dll
!macroend
!macro InstallStub stub
File ..\Stubs\${stub}-x86-ansi
File ..\Stubs\${stub}-x86-unicode
!macroend
${MementoSection} "NSIS Core Files (required)" SecCore
SetDetailsPrint textonly
@ -149,10 +154,6 @@ ${MementoSection} "NSIS Core Files (required)" SecCore
SetOutPath $INSTDIR\Stubs
File ..\Stubs\uninst
!macro InstallStub stub
File ..\Stubs\${stub}-x86-ansi
File ..\Stubs\${stub}-x86-unicode
!macroend
!insertmacro InstallStub bzip2
!insertmacro InstallStub bzip2_solid
!insertmacro InstallStub lzma
@ -227,10 +228,10 @@ ${MementoSection} "NSIS Core Files (required)" SecCore
WriteRegStr HKCR "NSIS.Script" "" "NSIS Script File"
WriteRegStr HKCR "NSIS.Script\DefaultIcon" "" "$INSTDIR\makensisw.exe,1"
ReadRegStr $R0 HKCR "NSIS.Script\shell\open\command" ""
StrCmp $R0 "" 0 no_nsiopen
${If} $R0 == ""
WriteRegStr HKCR "NSIS.Script\shell" "" "open"
WriteRegStr HKCR "NSIS.Script\shell\open\command" "" 'notepad.exe "%1"'
no_nsiopen:
${EndIf}
WriteRegStr HKCR "NSIS.Script\shell\compile" "" "Compile NSIS Script"
WriteRegStr HKCR "NSIS.Script\shell\compile\command" "" '"$INSTDIR\makensisw.exe" "%1"'
WriteRegStr HKCR "NSIS.Script\shell\compile-compressor" "" "Compile NSIS Script (Choose Compressor)"
@ -244,10 +245,10 @@ ${MementoSection} "NSIS Core Files (required)" SecCore
WriteRegStr HKCR "NSIS.Header" "" "NSIS Header File"
WriteRegStr HKCR "NSIS.Header\DefaultIcon" "" "$INSTDIR\makensisw.exe,1"
ReadRegStr $R0 HKCR "NSIS.Header\shell\open\command" ""
StrCmp $R0 "" 0 no_nshopen
${If} $R0 == ""
WriteRegStr HKCR "NSIS.Header\shell" "" "open"
WriteRegStr HKCR "NSIS.Header\shell\open\command" "" 'notepad.exe "%1"'
no_nshopen:
${EndIf}
System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)'
@ -752,30 +753,19 @@ Section -post
; * Always install the English language file
; * Always install default icons / bitmaps
!insertmacro SectionFlagIsSet ${SecInterfacesModernUI} ${SF_SELECTED} mui nomui
mui:
${If} ${SectionIsSelected} ${SecInterfacesModernUI}
SetDetailsPrint textonly
DetailPrint "Configuring Modern UI..."
SetDetailsPrint listonly
!insertmacro SectionFlagIsSet ${SecLangFiles} ${SF_SELECTED} langfiles nolangfiles
nolangfiles:
${If} ${SectionIsSelected} ${SecLangFiles}
SetOutPath "$INSTDIR\Contrib\Language files"
File "..\Contrib\Language files\English.nlf"
SetOutPath "$INSTDIR\Contrib\Language files"
File "..\Contrib\Language files\English.nsh"
${EndIf}
langfiles:
!insertmacro SectionFlagIsSet ${SecGraphics} ${SF_SELECTED} graphics nographics
nographics:
SetOutPath $INSTDIR\Contrib\Graphics
${If} ${SectionIsSelected} ${SecGraphics}
SetOutPath $INSTDIR\Contrib\Graphics\Checks
File "..\Contrib\Graphics\Checks\modern.bmp"
SetOutPath $INSTDIR\Contrib\Graphics\Icons
@ -785,10 +775,9 @@ Section -post
File "..\Contrib\Graphics\Header\nsis.bmp"
SetOutPath $INSTDIR\Contrib\Graphics\Wizard
File "..\Contrib\Graphics\Wizard\win.bmp"
${EndIf}
graphics:
nomui:
${EndIf}
SetDetailsPrint textonly
DetailPrint "Creating Registry Keys..."
@ -804,19 +793,19 @@ Section -post
WriteRegDword HKLM "Software\NSIS" "VersionBuild" "${VER_BUILD}"
!endif
WriteRegExpandStr HKLM "${MEMENTO_REGISTRY_KEY}" "UninstallString" '"$INSTDIR\uninst-nsis.exe"'
WriteRegExpandStr HKLM "${MEMENTO_REGISTRY_KEY}" "InstallLocation" "$INSTDIR"
WriteRegStr HKLM "${MEMENTO_REGISTRY_KEY}" "DisplayName" "Nullsoft Install System"
WriteRegStr HKLM "${MEMENTO_REGISTRY_KEY}" "DisplayIcon" "$INSTDIR\NSIS.exe,0"
WriteRegStr HKLM "${MEMENTO_REGISTRY_KEY}" "DisplayVersion" "${VERSION}"
WriteRegExpandStr HKLM "${REG_UNINST_KEY}" "UninstallString" '"$INSTDIR\uninst-nsis.exe"'
WriteRegExpandStr HKLM "${REG_UNINST_KEY}" "InstallLocation" "$INSTDIR"
WriteRegStr HKLM "${REG_UNINST_KEY}" "DisplayName" "Nullsoft Install System"
WriteRegStr HKLM "${REG_UNINST_KEY}" "DisplayIcon" "$INSTDIR\NSIS.exe,0"
WriteRegStr HKLM "${REG_UNINST_KEY}" "DisplayVersion" "${VERSION}"
!ifdef VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
WriteRegDWORD HKLM "${MEMENTO_REGISTRY_KEY}" "VersionMajor" "${VER_MAJOR}"
WriteRegDWORD HKLM "${MEMENTO_REGISTRY_KEY}" "VersionMinor" "${VER_MINOR}"
WriteRegDWORD HKLM "${REG_UNINST_KEY}" "VersionMajor" "${VER_MAJOR}"
WriteRegDWORD HKLM "${REG_UNINST_KEY}" "VersionMinor" "${VER_MINOR}"
!endif
WriteRegStr HKLM "${MEMENTO_REGISTRY_KEY}" "URLInfoAbout" "http://nsis.sourceforge.net/"
WriteRegStr HKLM "${MEMENTO_REGISTRY_KEY}" "HelpLink" "http://nsis.sourceforge.net/Support"
WriteRegDWORD HKLM "${MEMENTO_REGISTRY_KEY}" "NoModify" "1"
WriteRegDWORD HKLM "${MEMENTO_REGISTRY_KEY}" "NoRepair" "1"
WriteRegStr HKLM "${REG_UNINST_KEY}" "URLInfoAbout" "http://nsis.sourceforge.net/"
WriteRegStr HKLM "${REG_UNINST_KEY}" "HelpLink" "http://nsis.sourceforge.net/Support"
WriteRegDWORD HKLM "${REG_UNINST_KEY}" "NoModify" "1"
WriteRegDWORD HKLM "${REG_UNINST_KEY}" "NoRepair" "1"
WriteUninstaller $INSTDIR\uninst-nsis.exe
@ -875,7 +864,7 @@ Var ReinstallPageCheck
Function PageReinstall
ReadRegStr $R0 HKLM "Software\NSIS" ""
ReadRegStr $R1 HKLM "${MEMENTO_REGISTRY_KEY}" "UninstallString"
ReadRegStr $R1 HKLM "${REG_UNINST_KEY}" "UninstallString"
${IfThen} "$R0$R1" == "" ${|} Abort ${|}
StrCpy $R4 "older"
@ -959,7 +948,7 @@ Function PageLeaveReinstall
StrCmp $R1 "1" reinst_done ; Same version, skip to add/reinstall components?
reinst_uninstall:
ReadRegStr $R1 HKLM "${MEMENTO_REGISTRY_KEY}" "UninstallString"
ReadRegStr $R1 HKLM "${REG_UNINST_KEY}" "UninstallString"
;Run uninstaller
HideWindow
@ -994,16 +983,12 @@ FunctionEnd
!endif # VER_MAJOR & VER_MINOR & VER_REVISION & VER_BUILD
Function ShowReleaseNotes
${If} ${FileExists} $WINDIR\hh.exe
StrCpy $0 $WINDIR\hh.exe
StrCpy $0 $WINDIR\hh.exe
${IfNotThen} ${FileExists} $0 ${|} SearchPath $0 hh.exe ${|}
${If} ${FileExists} $0
Exec '"$0" mk:@MSITStore:$INSTDIR\NSIS.chm::/SectionF.1.html'
${Else}
SearchPath $0 hh.exe
${If} ${FileExists} $0
Exec '"$0" mk:@MSITStore:$INSTDIR\NSIS.chm::/SectionF.1.html'
${Else}
ExecShell "open" "http://nsis.sourceforge.net/Docs/AppendixF.html#F.1"
${EndIf}
ExecShell "" "http://nsis.sourceforge.net/Docs/AppendixF.html#F.1"
${EndIf}
FunctionEnd
@ -1038,7 +1023,7 @@ Section Uninstall
System::Call 'Shell32::SHChangeNotify(i ${SHCNE_ASSOCCHANGED}, i ${SHCNF_IDLIST}, i 0, i 0)'
DeleteRegKey HKLM "${MEMENTO_REGISTRY_KEY}"
DeleteRegKey HKLM "${REG_UNINST_KEY}"
DeleteRegKey HKLM "Software\NSIS"
SetDetailsPrint textonly