diff pidgin/win32/nsis/pidgin-installer.nsi @ 21150:476586ae4aff

Add /DS=[0,1] and /SMS=[0,1] to the win32 installer for enabling and disabling the Desktop Shortcut and Start Menu Shortcut respectively. Fixes #3814.
author Daniel Atallah <daniel.atallah@gmail.com>
date Tue, 06 Nov 2007 04:42:45 +0000
parents 23d046a20aa0
children c8e37362179a
line wrap: on
line diff
--- a/pidgin/win32/nsis/pidgin-installer.nsi	Tue Nov 06 02:52:41 2007 +0000
+++ b/pidgin/win32/nsis/pidgin-installer.nsi	Tue Nov 06 04:42:45 2007 +0000
@@ -1103,7 +1103,7 @@
 
   have_gtk:
     ; GTK+ is already installed; check version.
-	; Change this to not even run the GTK installer if this version is already installed.
+    ; Change this to not even run the GTK installer if this version is already installed.
     ${VersionCompare} ${GTK_INSTALL_VERSION} $0 $3
     IntCmp $3 1 +1 good_version good_version
     ${VersionCompare} ${GTK_MIN_VERSION} $0 $3
@@ -1167,6 +1167,8 @@
 
 Function .onInit
   Push $R0
+  Push $R1
+  Push $R2
   System::Call 'kernel32::CreateMutexA(i 0, i 0, t "pidgin_installer_running") i .r1 ?e'
   Pop $R0
   StrCmp $R0 0 +3
@@ -1233,9 +1235,9 @@
 
   ${GetParameters} $R0
   ClearErrors
-  ${GetOptions} $R0 "/L=" $R0
+  ${GetOptions} "$R0" "/L=" $R1
   IfErrors +3
-  StrCpy $LANGUAGE $R0
+  StrCpy $LANGUAGE $R1
   Goto skip_lang
 
   ; Select Language
@@ -1243,6 +1245,28 @@
     !insertmacro MUI_LANGDLL_DISPLAY
     skip_lang:
 
+  ClearErrors
+  ${GetOptions} "$R0" "/DS=" $R1
+  IfErrors +7
+  SectionGetFlags ${SecDesktopShortcut} $R2
+  StrCmp "1" $R1 0 +2
+  IntOp $R2 $R2 | ${SF_SELECTED}
+  StrCmp "0" $R1 0 +3
+  IntOp $R1 ${SF_SELECTED} ~
+  IntOp $R2 $R2 & $R1
+  SectionSetFlags ${SecDesktopShortcut} $R2
+
+  ClearErrors
+  ${GetOptions} "$R0" "/SMS=" $R1
+  IfErrors +7
+  SectionGetFlags ${SecStartMenuShortcut} $R2
+  StrCmp "1" $R1 0 +2
+  IntOp $R2 $R2 | ${SF_SELECTED}
+  StrCmp "0" $R1 0 +3
+  IntOp $R1 ${SF_SELECTED} ~
+  IntOp $R2 $R2 & $R1
+  SectionSetFlags ${SecStartMenuShortcut} $R2
+
   ; If install path was set on the command, use it.
   StrCmp $INSTDIR "" 0 instdir_done
 
@@ -1270,6 +1294,8 @@
 
   instdir_done:
 ;LogSet on
+  Pop $R2
+  Pop $R1
   Pop $R0
 FunctionEnd