SF.net SVN: geany-plugins:[801] trunk/geany-plugins/build/geany-plugins.nsi
eht16 at users.sourceforge.net
eht16 at xxxxx
Sat Jul 4 10:44:35 UTC 2009
Revision: 801
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=801&view=rev
Author: eht16
Date: 2009-07-04 10:44:34 +0000 (Sat, 04 Jul 2009)
Log Message:
-----------
Allow the user to install the plugins even if the Geany version doesn't match.
Modified Paths:
--------------
trunk/geany-plugins/build/geany-plugins.nsi
Modified: trunk/geany-plugins/build/geany-plugins.nsi
===================================================================
--- trunk/geany-plugins/build/geany-plugins.nsi 2009-07-01 11:04:58 UTC (rev 800)
+++ trunk/geany-plugins/build/geany-plugins.nsi 2009-07-04 10:44:34 UTC (rev 801)
@@ -209,6 +209,33 @@
done:
!macroend
+Function CheckForGeany
+ ; find and read Geany's installation directory and use it as our installation directory
+ ReadRegStr $INSTDIR SHCTX "${GEANY_DIR_REGKEY}" "Path"
+ StrCmp $INSTDIR "" 0 +3
+ MessageBox MB_OK|MB_ICONSTOP "Geany could not be found. Please install Geany first." /SD IDOK
+ Abort
+
+ ; check Geany's version
+ GetDLLVersion "$INSTDIR\bin\geany.exe" $R0 $R1
+ IntOp $R2 $R0 >> 16
+ IntOp $R2 $R2 & 0x0000FFFF ; $R2 now contains major version
+ IntOp $R3 $R0 & 0x0000FFFF ; $R3 now contains minor version
+ StrCpy $0 "$R2.$R3"
+ StrCmp $0 ${REQUIRED_GEANY_VERSION} version_check_done 0
+ MessageBox MB_YESNO|MB_ICONEXCLAMATION \
+ "You have Geany $0 installed but you need Geany ${REQUIRED_GEANY_VERSION}.$\nDo you really want to continue?" \
+ /SD IDNO IDNO stop IDYES ignore
+stop:
+ Abort
+ignore:
+ MessageBox MB_OK|MB_ICONEXCLAMATION \
+ "Using another version than Geany ${REQUIRED_GEANY_VERSION} may cause unloadable plugins or crashes." \
+ /SD IDOK
+
+version_check_done:
+FunctionEnd
+
Function .onInit
; (from http://jabref.svn.sourceforge.net/viewvc/jabref/trunk/jabref/src/windows/nsis/setup.nsi)
; If the user does *not* have administrator privileges, abort
@@ -224,30 +251,15 @@
StrCpy $INSTDIR "$PROFILE\$(^Name)"
${endif}
- ; find and read Geany's installation directory and use it as our installation directory
- ReadRegStr $INSTDIR SHCTX "${GEANY_DIR_REGKEY}" "Path"
- StrCmp $INSTDIR "" 0 +3
- MessageBox MB_OK|MB_ICONSTOP "Geany could not be found. Please install Geany first." /SD IDOK
- Abort
-
- ; check Geany's version
- GetDLLVersion "$INSTDIR\bin\geany.exe" $R0 $R1
- IntOp $R2 $R0 >> 16
- IntOp $R2 $R2 & 0x0000FFFF ; $R2 now contains major version
- IntOp $R3 $R0 & 0x0000FFFF ; $R3 now contains minor version
- StrCpy $0 "$R2.$R3" ; $0 now contains string like "1.2.0.192"
- StrCmp $0 ${REQUIRED_GEANY_VERSION} +3 0
- MessageBox MB_OK|MB_ICONSTOP \
- "You have Geany $0 installed but you need Geany ${REQUIRED_GEANY_VERSION}." \
- /SD IDOK
- Abort
-
; prevent running multiple instances of the installer
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "geany_plugins_installer") i .r1 ?e'
Pop $R0
StrCmp $R0 0 +3
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running." /SD IDOK
Abort
+
+ Call CheckForGeany
+
; warn about a new install over an existing installation
ReadRegStr $R0 SHCTX "${PRODUCT_UNINST_KEY}" "UninstallString"
StrCmp $R0 "" finish
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list