aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/installers/windows/installer_template.nsi
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/installers/windows/installer_template.nsi')
-rw-r--r--linden/indra/newview/installers/windows/installer_template.nsi1980
1 files changed, 990 insertions, 990 deletions
diff --git a/linden/indra/newview/installers/windows/installer_template.nsi b/linden/indra/newview/installers/windows/installer_template.nsi
index 53c607c..c3573b5 100644
--- a/linden/indra/newview/installers/windows/installer_template.nsi
+++ b/linden/indra/newview/installers/windows/installer_template.nsi
@@ -1,990 +1,990 @@
1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2;; imprudence setup.nsi 2;; imprudence setup.nsi
3;; Copyright 2004-2007, Linden Research, Inc. 3;; Copyright 2004-2007, Linden Research, Inc.
4;; For info, see http://www.nullsoft.com/free/nsis/ 4;; For info, see http://www.nullsoft.com/free/nsis/
5;; 5;;
6;; NSIS 2.22 or higher required 6;; NSIS 2.22 or higher required
7;; Author: James Cook, Don Kjer, Callum Prentice 7;; Author: James Cook, Don Kjer, Callum Prentice
8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
9 9
10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
11;;; Detect NSIS compiler version 11;;; Detect NSIS compiler version
12!define "NSIS${NSIS_VERSION}" 12!define "NSIS${NSIS_VERSION}"
13!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06" 13!ifdef "NSISv2.02" | "NSISv2.03" | "NSISv2.04" | "NSISv2.05" | "NSISv2.06"
14 ;; before 2.07 defaulted lzma to solid (whole file) 14 ;; before 2.07 defaulted lzma to solid (whole file)
15 SetCompressor lzma 15 SetCompressor lzma
16!else 16!else
17 ;; after 2.07 required /solid for whole file compression 17 ;; after 2.07 required /solid for whole file compression
18 SetCompressor /solid lzma 18 SetCompressor /solid lzma
19!endif 19!endif
20 20
21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
22;; Compiler flags 22;; Compiler flags
23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
24SetOverwrite on ; overwrite files 24SetOverwrite on ; overwrite files
25SetCompress auto ; compress iff saves space 25SetCompress auto ; compress iff saves space
26SetDatablockOptimize off ; only saves us 0.1%, not worth it 26SetDatablockOptimize off ; only saves us 0.1%, not worth it
27XPStyle on ; add an XP manifest to the installer 27XPStyle on ; add an XP manifest to the installer
28 28
29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
30;;; Project flags 30;;; Project flags
31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
32 32
33%%VERSION%% 33%%VERSION%%
34 34
35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
36;; - language files - one for each language (or flavor thereof) 36;; - language files - one for each language (or flavor thereof)
37;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the 37;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the
38;; application directory so we have to add a path to these include files) 38;; application directory so we have to add a path to these include files)
39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40!include "%%SOURCE%%\installers\windows\lang_de.nsi" 40!include "%%SOURCE%%\installers\windows\lang_de.nsi"
41!include "%%SOURCE%%\installers\windows\lang_en-us.nsi" 41!include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
42!include "%%SOURCE%%\installers\windows\lang_ja.nsi" 42!include "%%SOURCE%%\installers\windows\lang_ja.nsi"
43!include "%%SOURCE%%\installers\windows\lang_ko.nsi" 43!include "%%SOURCE%%\installers\windows\lang_ko.nsi"
44 44
45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
46;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py) 46;; Tweak for different servers/builds (this placeholder is replaced by viewer_manifest.py)
47%%GRID_VARS%% 47%%GRID_VARS%%
48 48
49Name ${INSTNAME} 49Name ${INSTNAME}
50 50
51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text 51SubCaption 0 $(LicenseSubTitleSetup) ; override "license agreement" text
52 52
53BrandingText " " ; bottom of window text 53BrandingText " " ; bottom of window text
54Icon %%SOURCE%%\res\install_icon.ico ; our custom icon 54Icon %%SOURCE%%\res\install_icon.ico ; our custom icon
55UninstallIcon %%SOURCE%%\res\uninstall_icon.ico ; our custom icon 55UninstallIcon %%SOURCE%%\res\uninstall_icon.ico ; our custom icon
56WindowIcon on ; show our icon in left corner 56WindowIcon on ; show our icon in left corner
57BGGradient off ; no big background window 57BGGradient off ; no big background window
58CRCCheck on ; make sure CRC is OK 58CRCCheck on ; make sure CRC is OK
59InstProgressFlags smooth colored ; new colored smooth look 59InstProgressFlags smooth colored ; new colored smooth look
60ShowInstDetails nevershow ; no details, no "show" button 60ShowInstDetails nevershow ; no details, no "show" button
61SetOverwrite on ; stomp files by default 61SetOverwrite on ; stomp files by default
62AutoCloseWindow true ; after all files install, close window 62AutoCloseWindow true ; after all files install, close window
63 63
64InstallDir "$PROGRAMFILES\${INSTNAME}" 64InstallDir "$PROGRAMFILES\${INSTNAME}"
65InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "" 65InstallDirRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" ""
66!ifdef UPDATE 66!ifdef UPDATE
67DirText $(DirectoryChooseTitle) $(DirectoryChooseUpdate) 67DirText $(DirectoryChooseTitle) $(DirectoryChooseUpdate)
68!else 68!else
69DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup) 69DirText $(DirectoryChooseTitle) $(DirectoryChooseSetup)
70!endif 70!endif
71 71
72 72
73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
74;;; Variables 74;;; Variables
75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
76Var INSTPROG 76Var INSTPROG
77Var INSTEXE 77Var INSTEXE
78Var INSTFLAGS 78Var INSTFLAGS
79Var LANGFLAGS 79Var LANGFLAGS
80Var INSTSHORTCUT 80Var INSTSHORTCUT
81 81
82;;; Function definitions should go before file includes, because the NSIS package 82;;; Function definitions should go before file includes, because the NSIS package
83;;; is a single stream of bytecodes + file data. So if your function definitions are at 83;;; is a single stream of bytecodes + file data. So if your function definitions are at
84;;; the end of the file it has to decompress the whole thing before it can call a function. JC 84;;; the end of the file it has to decompress the whole thing before it can call a function. JC
85 85
86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
87; PostInstallExe 87; PostInstallExe
88; This just runs any post installation scripts. 88; This just runs any post installation scripts.
89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
90Function PostInstallExe 90Function PostInstallExe
91push $0 91push $0
92 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe" 92 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "PostInstallExe"
93 ;MessageBox MB_OK '$0' 93 ;MessageBox MB_OK '$0'
94 ExecWait '$0' 94 ExecWait '$0'
95pop $0 95pop $0
96FunctionEnd 96FunctionEnd
97 97
98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
99; CheckStartupParameters 99; CheckStartupParameters
100; Sets INSTFLAGS, INSTPROG, and INSTEXE. 100; Sets INSTFLAGS, INSTPROG, and INSTEXE.
101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
102Function CheckStartupParams 102Function CheckStartupParams
103push $0 103push $0
104push $R0 104push $R0
105 105
106 ; Look for a registry entry with info about where to update. 106 ; Look for a registry entry with info about where to update.
107 Call GetProgramName 107 Call GetProgramName
108 pop $R0 108 pop $R0
109 StrCpy $INSTPROG "$R0" 109 StrCpy $INSTPROG "$R0"
110 StrCpy $INSTEXE "$R0.exe" 110 StrCpy $INSTEXE "$R0.exe"
111 111
112 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 112 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
113 ; If key doesn't exist, skip install 113 ; If key doesn't exist, skip install
114 IfErrors ABORT 114 IfErrors ABORT
115 StrCpy $INSTDIR "$0" 115 StrCpy $INSTDIR "$0"
116 116
117 ; We now have a directory to install to. Get the startup parameters and shortcut as well. 117 ; We now have a directory to install to. Get the startup parameters and shortcut as well.
118 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" 118 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags"
119 IfErrors +2 119 IfErrors +2
120 StrCpy $INSTFLAGS "$0" 120 StrCpy $INSTFLAGS "$0"
121 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" 121 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut"
122 IfErrors +2 122 IfErrors +2
123 StrCpy $INSTSHORTCUT "$0" 123 StrCpy $INSTSHORTCUT "$0"
124 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" 124 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"
125 IfErrors +2 125 IfErrors +2
126 StrCpy $INSTEXE "$0" 126 StrCpy $INSTEXE "$0"
127 Goto FINISHED 127 Goto FINISHED
128 128
129ABORT: 129ABORT:
130 MessageBox MB_OK $(CheckStartupParamsMB) 130 MessageBox MB_OK $(CheckStartupParamsMB)
131 Quit 131 Quit
132 132
133FINISHED: 133FINISHED:
134 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS" 134 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS"
135pop $R0 135pop $R0
136pop $0 136pop $0
137FunctionEnd 137FunctionEnd
138 138
139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
140;; 140;;
141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
142Function un.CheckStartupParams 142Function un.CheckStartupParams
143push $0 143push $0
144push $R0 144push $R0
145 145
146 ; Look for a registry entry with info about where to update. 146 ; Look for a registry entry with info about where to update.
147 Call un.GetProgramName 147 Call un.GetProgramName
148 pop $R0 148 pop $R0
149 StrCpy $INSTPROG "$R0" 149 StrCpy $INSTPROG "$R0"
150 StrCpy $INSTEXE "$R0.exe" 150 StrCpy $INSTEXE "$R0.exe"
151 151
152 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 152 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
153 ; If key doesn't exist, skip install 153 ; If key doesn't exist, skip install
154 IfErrors ABORT 154 IfErrors ABORT
155 StrCpy $INSTDIR "$0" 155 StrCpy $INSTDIR "$0"
156 156
157 ; We now have a directory to install to. Get the startup parameters and shortcut as well. 157 ; We now have a directory to install to. Get the startup parameters and shortcut as well.
158 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" 158 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags"
159 IfErrors +2 159 IfErrors +2
160 StrCpy $INSTFLAGS "$0" 160 StrCpy $INSTFLAGS "$0"
161 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" 161 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut"
162 IfErrors +2 162 IfErrors +2
163 StrCpy $INSTSHORTCUT "$0" 163 StrCpy $INSTSHORTCUT "$0"
164 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" 164 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe"
165 IfErrors +2 165 IfErrors +2
166 StrCpy $INSTEXE "$0" 166 StrCpy $INSTEXE "$0"
167 Goto FINISHED 167 Goto FINISHED
168 168
169ABORT: 169ABORT:
170 MessageBox MB_OK $(CheckStartupParamsMB) 170 MessageBox MB_OK $(CheckStartupParamsMB)
171 Quit 171 Quit
172 172
173FINISHED: 173FINISHED:
174 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS" 174 ;MessageBox MB_OK "INSTPROG: $INSTPROG, INSTEXE: $INSTEXE, INSTFLAGS: $INSTFLAGS"
175pop $R0 175pop $R0
176pop $0 176pop $0
177FunctionEnd 177FunctionEnd
178 178
179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
180;;; After install completes, offer readme file 180;;; After install completes, offer readme file
181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
182Function .onInstSuccess 182Function .onInstSuccess
183 MessageBox MB_YESNO \ 183 MessageBox MB_YESNO \
184 $(InstSuccesssQuestion) /SD IDYES IDNO NoReadme 184 $(InstSuccesssQuestion) /SD IDYES IDNO NoReadme
185 ; Assumes SetOutPath $INSTDIR 185 ; Assumes SetOutPath $INSTDIR
186 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS' 186 Exec '"$INSTDIR\$INSTEXE" $INSTFLAGS'
187 NoReadme: 187 NoReadme:
188FunctionEnd 188FunctionEnd
189 189
190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 190;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
191; Remove old NSIS version. Modifies no variables. 191; Remove old NSIS version. Modifies no variables.
192; Does NOT delete the LindenWorld directory, or any 192; Does NOT delete the LindenWorld directory, or any
193; user files in that directory. 193; user files in that directory.
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195Function RemoveNSIS 195Function RemoveNSIS
196 Push $0 196 Push $0
197 ; Grab the installation directory of the old version 197 ; Grab the installation directory of the old version
198 DetailPrint $(RemoveOldNSISVersion) 198 DetailPrint $(RemoveOldNSISVersion)
199 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" 199 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" ""
200 200
201 ; If key doesn't exist, skip uninstall 201 ; If key doesn't exist, skip uninstall
202 IfErrors NO_NSIS 202 IfErrors NO_NSIS
203 203
204 ; Clean up legacy beta shortcuts 204 ; Clean up legacy beta shortcuts
205 Delete "$SMPROGRAMS\Second Life Beta.lnk" 205 Delete "$SMPROGRAMS\Second Life Beta.lnk"
206 Delete "$DESKTOP\Second Life Beta.lnk" 206 Delete "$DESKTOP\Second Life Beta.lnk"
207 Delete "$SMPROGRAMS\Second Life.lnk" 207 Delete "$SMPROGRAMS\Second Life.lnk"
208 208
209 ; Clean up old newview.exe file 209 ; Clean up old newview.exe file
210 Delete "$INSTDIR\newview.exe" 210 Delete "$INSTDIR\newview.exe"
211 211
212 ; Intentionally don't delete the stuff in 212 ; Intentionally don't delete the stuff in
213 ; Documents and Settings, so we keep the user's settings 213 ; Documents and Settings, so we keep the user's settings
214 214
215 NO_NSIS: 215 NO_NSIS:
216 Pop $0 216 Pop $0
217FunctionEnd 217FunctionEnd
218 218
219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 219;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
220; Make sure we're not on Windows 98 / ME 220; Make sure we're not on Windows 98 / ME
221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 221;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
222Function CheckWindowsVersion 222Function CheckWindowsVersion
223 DetailPrint "Checking Windows version..." 223 DetailPrint "Checking Windows version..."
224 Call GetWindowsVersion 224 Call GetWindowsVersion
225 Pop $R0 225 Pop $R0
226 ; Just get first two characters, ignore 4.0 part of "NT 4.0" 226 ; Just get first two characters, ignore 4.0 part of "NT 4.0"
227 StrCpy $R0 $R0 2 227 StrCpy $R0 $R0 2
228 ; Blacklist certain OS versions 228 ; Blacklist certain OS versions
229 StrCmp $R0 "95" win_ver_bad 229 StrCmp $R0 "95" win_ver_bad
230 StrCmp $R0 "98" win_ver_bad 230 StrCmp $R0 "98" win_ver_bad
231 StrCmp $R0 "ME" win_ver_bad 231 StrCmp $R0 "ME" win_ver_bad
232 StrCmp $R0 "NT" win_ver_bad 232 StrCmp $R0 "NT" win_ver_bad
233 Return 233 Return
234win_ver_bad: 234win_ver_bad:
235 MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort 235 MessageBox MB_YESNO $(CheckWindowsVersionMB) IDNO win_ver_abort
236 Return 236 Return
237win_ver_abort: 237win_ver_abort:
238 Quit 238 Quit
239FunctionEnd 239FunctionEnd
240 240
241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
242; Make sure the user can install/uninstall 242; Make sure the user can install/uninstall
243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
244Function CheckIfAdministrator 244Function CheckIfAdministrator
245 DetailPrint $(CheckAdministratorInstDP) 245 DetailPrint $(CheckAdministratorInstDP)
246 UserInfo::GetAccountType 246 UserInfo::GetAccountType
247 Pop $R0 247 Pop $R0
248 StrCmp $R0 "Admin" is_admin 248 StrCmp $R0 "Admin" is_admin
249 MessageBox MB_OK $(CheckAdministratorInstMB) 249 MessageBox MB_OK $(CheckAdministratorInstMB)
250 Quit 250 Quit
251is_admin: 251is_admin:
252 Return 252 Return
253FunctionEnd 253FunctionEnd
254 254
255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
256;; 256;;
257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 257;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
258Function un.CheckIfAdministrator 258Function un.CheckIfAdministrator
259 DetailPrint $(CheckAdministratorUnInstDP) 259 DetailPrint $(CheckAdministratorUnInstDP)
260 UserInfo::GetAccountType 260 UserInfo::GetAccountType
261 Pop $R0 261 Pop $R0
262 StrCmp $R0 "Admin" is_admin 262 StrCmp $R0 "Admin" is_admin
263 MessageBox MB_OK $(CheckAdministratorUnInstMB) 263 MessageBox MB_OK $(CheckAdministratorUnInstMB)
264 Quit 264 Quit
265is_admin: 265is_admin:
266 Return 266 Return
267FunctionEnd 267FunctionEnd
268 268
269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
270; Checks to see if the current version has already been installed (according to the registry). 270; Checks to see if the current version has already been installed (according to the registry).
271; If it has, allow user to bail out of install process. 271; If it has, allow user to bail out of install process.
272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
273Function CheckIfAlreadyCurrent 273Function CheckIfAlreadyCurrent
274 Push $0 274 Push $0
275 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" 275 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version"
276 StrCmp $0 ${VERSION_LONG} 0 DONE 276 StrCmp $0 ${VERSION_LONG} 0 DONE
277 MessageBox MB_OKCANCEL $(CheckIfCurrentMB) /SD IDOK IDOK DONE 277 MessageBox MB_OKCANCEL $(CheckIfCurrentMB) /SD IDOK IDOK DONE
278 Quit 278 Quit
279 279
280 DONE: 280 DONE:
281 Pop $0 281 Pop $0
282 Return 282 Return
283FunctionEnd 283FunctionEnd
284 284
285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 285;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
286; Close the program, if running. Modifies no variables. 286; Close the program, if running. Modifies no variables.
287; Allows user to bail out of install process. 287; Allows user to bail out of install process.
288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 288;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
289Function CloseSecondLife 289Function CloseSecondLife
290 Push $0 290 Push $0
291 FindWindow $0 "Imprudence" "" 291 FindWindow $0 "Imprudence" ""
292 IntCmp $0 0 DONE 292 IntCmp $0 0 DONE
293 MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL 293 MessageBox MB_OKCANCEL $(CloseSecondLifeInstMB) IDOK CLOSE IDCANCEL CANCEL_INSTALL
294 294
295 CANCEL_INSTALL: 295 CANCEL_INSTALL:
296 Quit 296 Quit
297 297
298 CLOSE: 298 CLOSE:
299 DetailPrint $(CloseSecondLifeInstDP) 299 DetailPrint $(CloseSecondLifeInstDP)
300 SendMessage $0 16 0 0 300 SendMessage $0 16 0 0
301 301
302 LOOP: 302 LOOP:
303 FindWindow $0 "Imprudence" "" 303 FindWindow $0 "Imprudence" ""
304 IntCmp $0 0 DONE 304 IntCmp $0 0 DONE
305 Sleep 500 305 Sleep 500
306 Goto LOOP 306 Goto LOOP
307 307
308 DONE: 308 DONE:
309 Pop $0 309 Pop $0
310 Return 310 Return
311FunctionEnd 311FunctionEnd
312 312
313 313
314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 314;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
315; Delete files in Documents and Settings\<user>\SecondLife\cache 315; Delete files in Documents and Settings\<user>\SecondLife\cache
316; Delete files in Documents and Settings\All Users\SecondLife\cache 316; Delete files in Documents and Settings\All Users\SecondLife\cache
317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 317;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
318;Function RemoveCacheFiles 318;Function RemoveCacheFiles
319; 319;
320;; Delete files in Documents and Settings\<user>\SecondLife 320;; Delete files in Documents and Settings\<user>\SecondLife
321;Push $0 321;Push $0
322;Push $1 322;Push $1
323;Push $2 323;Push $2
324; DetailPrint $(RemoveCacheFilesDP) 324; DetailPrint $(RemoveCacheFilesDP)
325; 325;
326; StrCpy $0 0 ; Index number used to iterate via EnumRegKey 326; StrCpy $0 0 ; Index number used to iterate via EnumRegKey
327; 327;
328; LOOP: 328; LOOP:
329; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 329; EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
330; StrCmp $1 "" DONE ; no more users 330; StrCmp $1 "" DONE ; no more users
331; 331;
332; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 332; ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
333; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing 333; StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
334; 334;
335; ; Required since ProfileImagePath is of type REG_EXPAND_SZ 335; ; Required since ProfileImagePath is of type REG_EXPAND_SZ
336; ExpandEnvStrings $2 $2 336; ExpandEnvStrings $2 $2
337; 337;
338; ; When explicitly uninstalling, everything goes away 338; ; When explicitly uninstalling, everything goes away
339; RMDir /r "$2\Application Data\SecondLife\cache" 339; RMDir /r "$2\Application Data\SecondLife\cache"
340; 340;
341; CONTINUE: 341; CONTINUE:
342; IntOp $0 $0 + 1 342; IntOp $0 $0 + 1
343; Goto LOOP 343; Goto LOOP
344; DONE: 344; DONE:
345;Pop $2 345;Pop $2
346;Pop $1 346;Pop $1
347;Pop $0 347;Pop $0
348; 348;
349;; Delete files in Documents and Settings\All Users\SecondLife 349;; Delete files in Documents and Settings\All Users\SecondLife
350;Push $0 350;Push $0
351; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" 351; ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
352; StrCmp $0 "" +2 352; StrCmp $0 "" +2
353; RMDir /r "$0\SecondLife\cache" 353; RMDir /r "$0\SecondLife\cache"
354;Pop $0 354;Pop $0
355; 355;
356;; Delete filse in C:\Windows\Application Data\SecondLife 356;; Delete filse in C:\Windows\Application Data\SecondLife
357;; If the user is running on a pre-NT system, Application Data lives here instead of 357;; If the user is running on a pre-NT system, Application Data lives here instead of
358;; in Documents and Settings. 358;; in Documents and Settings.
359;RMDir /r "$WINDIR\Application Data\SecondLife\cache" 359;RMDir /r "$WINDIR\Application Data\SecondLife\cache"
360; 360;
361;FunctionEnd 361;FunctionEnd
362 362
363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 363;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
364;;; Delete the installed shader files 364;;; Delete the installed shader files
365;;; Since shaders are in active development, we'll likely need to shuffle them 365;;; Since shaders are in active development, we'll likely need to shuffle them
366;;; around a bit from build to build. This ensures that shaders that we move 366;;; around a bit from build to build. This ensures that shaders that we move
367;;; or rename in the dev tree don't get left behind in the install. 367;;; or rename in the dev tree don't get left behind in the install.
368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 368;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
369Function RemoveOldShaders 369Function RemoveOldShaders
370 370
371;; Remove old shader files first so fallbacks will work. see DEV-5663 371;; Remove old shader files first so fallbacks will work. see DEV-5663
372RMDir /r "$INSTDIR\app_settings\shaders\*" 372RMDir /r "$INSTDIR\app_settings\shaders\*"
373 373
374FunctionEnd 374FunctionEnd
375 375
376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
377;;; Delete the installed XUI files 377;;; Delete the installed XUI files
378;;; We've changed the directory hierarchy for skins, putting all XUI and texture 378;;; We've changed the directory hierarchy for skins, putting all XUI and texture
379;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed 379;;; files under a specific skin directory, i.e. skins/default/xui/en-us as opposed
380;;; to skins/xui/en-us. Need to clean up the old path when upgrading 380;;; to skins/xui/en-us. Need to clean up the old path when upgrading
381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 381;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
382Function RemoveOldXUI 382Function RemoveOldXUI
383 383
384;; remove old XUI and texture files 384;; remove old XUI and texture files
385RmDir /r "$INSTDIR\skins\html" 385RmDir /r "$INSTDIR\skins\html"
386RmDir /r "$INSTDIR\skins\xui" 386RmDir /r "$INSTDIR\skins\xui"
387RmDir /r "$INSTDIR\skins\textures" 387RmDir /r "$INSTDIR\skins\textures"
388Delete "$INSTDIR\skins\*.txt" 388Delete "$INSTDIR\skins\*.txt"
389 389
390FunctionEnd 390FunctionEnd
391 391
392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 392;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
393;;; Remove any releasenotes files. 393;;; Remove any releasenotes files.
394;;; We are no longer including release notes with the viewer. This will delete 394;;; We are no longer including release notes with the viewer. This will delete
395;;; any that were left behind by an older installer. Delete will not fail if 395;;; any that were left behind by an older installer. Delete will not fail if
396;;; the files do not exist 396;;; the files do not exist
397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 397;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
398Function RemoveOldReleaseNotes 398Function RemoveOldReleaseNotes
399 399
400;; remove releasenotes.txt file from application directory, and the shortcut 400;; remove releasenotes.txt file from application directory, and the shortcut
401;; from the start menu. 401;; from the start menu.
402Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk" 402Delete "$SMPROGRAMS\$INSTSHORTCUT\SL Release Notes.lnk"
403Delete "$INSTDIR\releasenotes.txt" 403Delete "$INSTDIR\releasenotes.txt"
404 404
405FunctionEnd 405FunctionEnd
406 406
407 407
408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 408;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
409; Delete files in Documents and Settings\<user>\SecondLife 409; Delete files in Documents and Settings\<user>\SecondLife
410; Delete files in Documents and Settings\All Users\SecondLife 410; Delete files in Documents and Settings\All Users\SecondLife
411;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 411;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
412Function un.DocumentsAndSettingsFolder 412Function un.DocumentsAndSettingsFolder
413 413
414; Delete files in Documents and Settings\<user>\SecondLife 414; Delete files in Documents and Settings\<user>\SecondLife
415Push $0 415Push $0
416Push $1 416Push $1
417Push $2 417Push $2
418 418
419 DetailPrint "Deleting files in Documents and Settings folder" 419 DetailPrint "Deleting files in Documents and Settings folder"
420 420
421 StrCpy $0 0 ; Index number used to iterate via EnumRegKey 421 StrCpy $0 0 ; Index number used to iterate via EnumRegKey
422 422
423 LOOP: 423 LOOP:
424 EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0 424 EnumRegKey $1 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" $0
425 StrCmp $1 "" DONE ; no more users 425 StrCmp $1 "" DONE ; no more users
426 426
427 ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath" 427 ReadRegStr $2 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$1" "ProfileImagePath"
428 StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing 428 StrCmp $2 "" CONTINUE 0 ; "ProfileImagePath" value is missing
429 429
430 ; Required since ProfileImagePath is of type REG_EXPAND_SZ 430 ; Required since ProfileImagePath is of type REG_EXPAND_SZ
431 ExpandEnvStrings $2 $2 431 ExpandEnvStrings $2 $2
432 432
433 ; If uninstalling a normal install remove everything 433 ; If uninstalling a normal install remove everything
434 ; Otherwise (preview/dmz etc) just remove cache 434 ; Otherwise (preview/dmz etc) just remove cache
435 StrCmp $INSTFLAGS "" RM_ALL RM_CACHE 435 StrCmp $INSTFLAGS "" RM_ALL RM_CACHE
436 RM_ALL: 436 RM_ALL:
437 RMDir /r "$2\Application Data\SecondLife" 437 RMDir /r "$2\Application Data\SecondLife"
438 GoTo CONTINUE 438 GoTo CONTINUE
439 RM_CACHE: 439 RM_CACHE:
440 RMDir /r "$2\Application Data\SecondLife\Cache" 440 RMDir /r "$2\Application Data\SecondLife\Cache"
441 Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml" 441 Delete "$2\Application Data\SecondLife\user_settings\settings_windlight.xml"
442 442
443 CONTINUE: 443 CONTINUE:
444 IntOp $0 $0 + 1 444 IntOp $0 $0 + 1
445 Goto LOOP 445 Goto LOOP
446 DONE: 446 DONE:
447 447
448Pop $2 448Pop $2
449Pop $1 449Pop $1
450Pop $0 450Pop $0
451 451
452; Delete files in Documents and Settings\All Users\SecondLife 452; Delete files in Documents and Settings\All Users\SecondLife
453Push $0 453Push $0
454 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData" 454 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" "Common AppData"
455 StrCmp $0 "" +2 455 StrCmp $0 "" +2
456 RMDir /r "$0\SecondLife" 456 RMDir /r "$0\SecondLife"
457Pop $0 457Pop $0
458 458
459; Delete filse in C:\Windows\Application Data\SecondLife 459; Delete filse in C:\Windows\Application Data\SecondLife
460; If the user is running on a pre-NT system, Application Data lives here instead of 460; If the user is running on a pre-NT system, Application Data lives here instead of
461; in Documents and Settings. 461; in Documents and Settings.
462RMDir /r "$WINDIR\Application Data\SecondLife" 462RMDir /r "$WINDIR\Application Data\SecondLife"
463 463
464FunctionEnd 464FunctionEnd
465 465
466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 466;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
467; Close the program, if running. Modifies no variables. 467; Close the program, if running. Modifies no variables.
468; Allows user to bail out of uninstall process. 468; Allows user to bail out of uninstall process.
469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
470Function un.CloseSecondLife 470Function un.CloseSecondLife
471 Push $0 471 Push $0
472 FindWindow $0 "Imprudence" "" 472 FindWindow $0 "Imprudence" ""
473 IntCmp $0 0 DONE 473 IntCmp $0 0 DONE
474 MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL 474 MessageBox MB_OKCANCEL $(CloseSecondLifeUnInstMB) IDOK CLOSE IDCANCEL CANCEL_UNINSTALL
475 475
476 CANCEL_UNINSTALL: 476 CANCEL_UNINSTALL:
477 Quit 477 Quit
478 478
479 CLOSE: 479 CLOSE:
480 DetailPrint $(CloseSecondLifeUnInstDP) 480 DetailPrint $(CloseSecondLifeUnInstDP)
481 SendMessage $0 16 0 0 481 SendMessage $0 16 0 0
482 482
483 LOOP: 483 LOOP:
484 FindWindow $0 "Imprudence" "" 484 FindWindow $0 "Imprudence" ""
485 IntCmp $0 0 DONE 485 IntCmp $0 0 DONE
486 Sleep 500 486 Sleep 500
487 Goto LOOP 487 Goto LOOP
488 488
489 DONE: 489 DONE:
490 Pop $0 490 Pop $0
491 Return 491 Return
492FunctionEnd 492FunctionEnd
493 493
494 494
495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 495;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
496; 496;
497; Delete the stored password for the current Windows user 497; Delete the stored password for the current Windows user
498; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled 498; DEV-10821 -- Unauthorised user can gain access to an SL account after a real user has uninstalled
499; 499;
500Function un.RemovePassword 500Function un.RemovePassword
501 501
502DetailPrint "Removing Second Life password" 502DetailPrint "Removing Second Life password"
503 503
504SetShellVarContext current 504SetShellVarContext current
505Delete "$APPDATA\SecondLife\user_settings\password.dat" 505Delete "$APPDATA\SecondLife\user_settings\password.dat"
506SetShellVarContext all 506SetShellVarContext all
507 507
508FunctionEnd 508FunctionEnd
509 509
510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 510;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
511;;; Delete the installed files 511;;; Delete the installed files
512;;; This deletes the uninstall executable, but it works 512;;; This deletes the uninstall executable, but it works
513;;; because it is copied to temp directory before running 513;;; because it is copied to temp directory before running
514;;; 514;;;
515;;; Note: You must list all files here, because we only 515;;; Note: You must list all files here, because we only
516;;; want to delete our files, not things users left in the 516;;; want to delete our files, not things users left in the
517;;; application directories. 517;;; application directories.
518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 518;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
519Function un.ProgramFiles 519Function un.ProgramFiles
520 520
521;; Remove mozilla file first so recursive directory deletion doesn't get hung up 521;; Remove mozilla file first so recursive directory deletion doesn't get hung up
522Delete "$INSTDIR\app_settings\mozilla\components" 522Delete "$INSTDIR\app_settings\mozilla\components"
523 523
524;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py 524;; This placeholder is replaced by the complete list of files to uninstall by viewer_manifest.py
525%%DELETE_FILES%% 525%%DELETE_FILES%%
526 526
527;; Optional/obsolete files. Delete won't fail if they don't exist. 527;; Optional/obsolete files. Delete won't fail if they don't exist.
528Delete "$INSTDIR\dronesettings.ini" 528Delete "$INSTDIR\dronesettings.ini"
529Delete "$INSTDIR\message_template.msg" 529Delete "$INSTDIR\message_template.msg"
530Delete "$INSTDIR\newview.pdb" 530Delete "$INSTDIR\newview.pdb"
531Delete "$INSTDIR\newview.map" 531Delete "$INSTDIR\newview.map"
532Delete "$INSTDIR\SecondLife.pdb" 532Delete "$INSTDIR\SecondLife.pdb"
533Delete "$INSTDIR\SecondLife.map" 533Delete "$INSTDIR\SecondLife.map"
534Delete "$INSTDIR\comm.dat" 534Delete "$INSTDIR\comm.dat"
535Delete "$INSTDIR\*.glsl" 535Delete "$INSTDIR\*.glsl"
536Delete "$INSTDIR\motions\*.lla" 536Delete "$INSTDIR\motions\*.lla"
537Delete "$INSTDIR\trial\*.html" 537Delete "$INSTDIR\trial\*.html"
538Delete "$INSTDIR\newview.exe" 538Delete "$INSTDIR\newview.exe"
539;; Remove entire help directory 539;; Remove entire help directory
540Delete "$INSTDIR\help\Advanced\*" 540Delete "$INSTDIR\help\Advanced\*"
541RMDir "$INSTDIR\help\Advanced" 541RMDir "$INSTDIR\help\Advanced"
542Delete "$INSTDIR\help\basics\*" 542Delete "$INSTDIR\help\basics\*"
543RMDir "$INSTDIR\help\basics" 543RMDir "$INSTDIR\help\basics"
544Delete "$INSTDIR\help\Concepts\*" 544Delete "$INSTDIR\help\Concepts\*"
545RMDir "$INSTDIR\help\Concepts" 545RMDir "$INSTDIR\help\Concepts"
546Delete "$INSTDIR\help\welcome\*" 546Delete "$INSTDIR\help\welcome\*"
547RMDir "$INSTDIR\help\welcome" 547RMDir "$INSTDIR\help\welcome"
548Delete "$INSTDIR\help\*" 548Delete "$INSTDIR\help\*"
549RMDir "$INSTDIR\help" 549RMDir "$INSTDIR\help"
550 550
551Delete "$INSTDIR\uninst.exe" 551Delete "$INSTDIR\uninst.exe"
552RMDir "$INSTDIR" 552RMDir "$INSTDIR"
553 553
554IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER 554IfFileExists "$INSTDIR" FOLDERFOUND NOFOLDER
555 555
556FOLDERFOUND: 556FOLDERFOUND:
557 MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER 557 MessageBox MB_YESNO $(DeleteProgramFilesMB) IDNO NOFOLDER
558 RMDir /r "$INSTDIR" 558 RMDir /r "$INSTDIR"
559 559
560NOFOLDER: 560NOFOLDER:
561 561
562FunctionEnd 562FunctionEnd
563 563
564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 564;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
565;;; Uninstall settings 565;;; Uninstall settings
566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 566;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
567UninstallText $(UninstallTextMsg) 567UninstallText $(UninstallTextMsg)
568ShowUninstDetails show 568ShowUninstDetails show
569 569
570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 570;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
571;;; Uninstall section 571;;; Uninstall section
572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 572;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
573Section Uninstall 573Section Uninstall
574 574
575; Start with some default values. 575; Start with some default values.
576StrCpy $INSTFLAGS "" 576StrCpy $INSTFLAGS ""
577StrCpy $INSTPROG "${INSTNAME}" 577StrCpy $INSTPROG "${INSTNAME}"
578StrCpy $INSTEXE "${INSTEXE}" 578StrCpy $INSTEXE "${INSTEXE}"
579StrCpy $INSTSHORTCUT "${SHORTCUT}" 579StrCpy $INSTSHORTCUT "${SHORTCUT}"
580Call un.CheckStartupParams ; Figure out where, what and how to uninstall. 580Call un.CheckStartupParams ; Figure out where, what and how to uninstall.
581Call un.CheckIfAdministrator ; Make sure the user can install/uninstall 581Call un.CheckIfAdministrator ; Make sure the user can install/uninstall
582 582
583; uninstall for all users (if you change this, change it in the install as well) 583; uninstall for all users (if you change this, change it in the install as well)
584SetShellVarContext all 584SetShellVarContext all
585 585
586; Make sure we're not running 586; Make sure we're not running
587Call un.CloseSecondLife 587Call un.CloseSecondLife
588 588
589; Clean up registry keys (these should all be !defines somewhere) 589; Clean up registry keys (these should all be !defines somewhere)
590DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" 590DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG"
591DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" 591DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG"
592DeleteRegKey HKEY_LOCAL_MACHINE "Software\Linden Research, Inc.\Installer Language" 592DeleteRegKey HKEY_LOCAL_MACHINE "Software\Linden Research, Inc.\Installer Language"
593 593
594; Clean up shortcuts 594; Clean up shortcuts
595Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*" 595Delete "$SMPROGRAMS\$INSTSHORTCUT\*.*"
596RMDir "$SMPROGRAMS\$INSTSHORTCUT" 596RMDir "$SMPROGRAMS\$INSTSHORTCUT"
597 597
598Delete "$DESKTOP\$INSTSHORTCUT.lnk" 598Delete "$DESKTOP\$INSTSHORTCUT.lnk"
599Delete "$INSTDIR\$INSTSHORTCUT.lnk" 599Delete "$INSTDIR\$INSTSHORTCUT.lnk"
600Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" 600Delete "$INSTDIR\Uninstall $INSTSHORTCUT.lnk"
601 601
602; Clean up cache and log files. 602; Clean up cache and log files.
603; Leave them in-place for non AGNI installs. 603; Leave them in-place for non AGNI installs.
604 604
605!ifdef UNINSTALL_SETTINGS 605!ifdef UNINSTALL_SETTINGS
606Call un.DocumentsAndSettingsFolder 606Call un.DocumentsAndSettingsFolder
607!endif 607!endif
608 608
609; remove stored password on uninstall 609; remove stored password on uninstall
610Call un.RemovePassword 610Call un.RemovePassword
611 611
612Call un.ProgramFiles 612Call un.ProgramFiles
613 613
614SectionEnd ; end of uninstall section 614SectionEnd ; end of uninstall section
615 615
616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
617; (From the NSIS wiki, DK) 617; (From the NSIS wiki, DK)
618; GetParameterValue 618; GetParameterValue
619; 619;
620; Usage: 620; Usage:
621; !insertmacro GetParameterValue "/L=" "1033" 621; !insertmacro GetParameterValue "/L=" "1033"
622; pop $R0 622; pop $R0
623; 623;
624; Returns on top of stack 624; Returns on top of stack
625; 625;
626; Example command lines: 626; Example command lines:
627; foo.exe /S /L=1033 /D=C:\Program Files\Foo 627; foo.exe /S /L=1033 /D=C:\Program Files\Foo
628; or: 628; or:
629; foo.exe /S "/L=1033" /D="C:\Program Files\Foo" 629; foo.exe /S "/L=1033" /D="C:\Program Files\Foo"
630; gpv "/L=" "1033" 630; gpv "/L=" "1033"
631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 631;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
632 632
633 !macro GetParameterValue SWITCH DEFAULT 633 !macro GetParameterValue SWITCH DEFAULT
634 Push $0 634 Push $0
635 Push $1 635 Push $1
636 Push $2 636 Push $2
637 Push $3 637 Push $3
638 Push $4 638 Push $4
639 639
640 ;$CMDLINE='"My Setup\Setup.exe" /L=1033 /S' 640 ;$CMDLINE='"My Setup\Setup.exe" /L=1033 /S'
641 Push "$CMDLINE" 641 Push "$CMDLINE"
642 Push '${SWITCH}"' 642 Push '${SWITCH}"'
643 !insertmacro StrStr 643 !insertmacro StrStr
644 Pop $0 644 Pop $0
645 StrCmp "$0" "" gpv_notquoted 645 StrCmp "$0" "" gpv_notquoted
646 ;$0='/L="1033" /S' 646 ;$0='/L="1033" /S'
647 StrLen $2 "$0" 647 StrLen $2 "$0"
648 Strlen $1 "${SWITCH}" 648 Strlen $1 "${SWITCH}"
649 IntOp $1 $1 + 1 649 IntOp $1 $1 + 1
650 StrCpy $0 "$0" $2 $1 650 StrCpy $0 "$0" $2 $1
651 ;$0='1033" /S' 651 ;$0='1033" /S'
652 Push "$0" 652 Push "$0"
653 Push '"' 653 Push '"'
654 !insertmacro StrStr 654 !insertmacro StrStr
655 Pop $1 655 Pop $1
656 StrLen $2 "$0" 656 StrLen $2 "$0"
657 StrLen $3 "$1" 657 StrLen $3 "$1"
658 IntOp $4 $2 - $3 658 IntOp $4 $2 - $3
659 StrCpy $0 $0 $4 0 659 StrCpy $0 $0 $4 0
660 Goto gpv_done 660 Goto gpv_done
661 661
662 gpv_notquoted: 662 gpv_notquoted:
663 Push "$CMDLINE" 663 Push "$CMDLINE"
664 Push "${SWITCH}" 664 Push "${SWITCH}"
665 !insertmacro StrStr 665 !insertmacro StrStr
666 Pop $0 666 Pop $0
667 StrCmp "$0" "" gpv_done 667 StrCmp "$0" "" gpv_done
668 ;$0='/L="1033" /S' 668 ;$0='/L="1033" /S'
669 StrLen $2 "$0" 669 StrLen $2 "$0"
670 Strlen $1 "${SWITCH}" 670 Strlen $1 "${SWITCH}"
671 StrCpy $0 "$0" $2 $1 671 StrCpy $0 "$0" $2 $1
672 ;$0=1033 /S' 672 ;$0=1033 /S'
673 Push "$0" 673 Push "$0"
674 Push ' ' 674 Push ' '
675 !insertmacro StrStr 675 !insertmacro StrStr
676 Pop $1 676 Pop $1
677 StrLen $2 "$0" 677 StrLen $2 "$0"
678 StrLen $3 "$1" 678 StrLen $3 "$1"
679 IntOp $4 $2 - $3 679 IntOp $4 $2 - $3
680 StrCpy $0 $0 $4 0 680 StrCpy $0 $0 $4 0
681 Goto gpv_done 681 Goto gpv_done
682 682
683 gpv_done: 683 gpv_done:
684 StrCmp "$0" "" 0 +2 684 StrCmp "$0" "" 0 +2
685 StrCpy $0 "${DEFAULT}" 685 StrCpy $0 "${DEFAULT}"
686 686
687 Pop $4 687 Pop $4
688 Pop $3 688 Pop $3
689 Pop $2 689 Pop $2
690 Pop $1 690 Pop $1
691 Exch $0 691 Exch $0
692 !macroend 692 !macroend
693 693
694; And I had to modify StrStr a tiny bit. 694; And I had to modify StrStr a tiny bit.
695; Possible upgrade switch the goto's to use ${__LINE__} 695; Possible upgrade switch the goto's to use ${__LINE__}
696 696
697!macro STRSTR 697!macro STRSTR
698 Exch $R1 ; st=haystack,old$R1, $R1=needle 698 Exch $R1 ; st=haystack,old$R1, $R1=needle
699 Exch ; st=old$R1,haystack 699 Exch ; st=old$R1,haystack
700 Exch $R2 ; st=old$R1,old$R2, $R2=haystack 700 Exch $R2 ; st=old$R1,old$R2, $R2=haystack
701 Push $R3 701 Push $R3
702 Push $R4 702 Push $R4
703 Push $R5 703 Push $R5
704 StrLen $R3 $R1 704 StrLen $R3 $R1
705 StrCpy $R4 0 705 StrCpy $R4 0
706 ; $R1=needle 706 ; $R1=needle
707 ; $R2=haystack 707 ; $R2=haystack
708 ; $R3=len(needle) 708 ; $R3=len(needle)
709 ; $R4=cnt 709 ; $R4=cnt
710 ; $R5=tmp 710 ; $R5=tmp
711 ; loop; 711 ; loop;
712 StrCpy $R5 $R2 $R3 $R4 712 StrCpy $R5 $R2 $R3 $R4
713 StrCmp $R5 $R1 +4 713 StrCmp $R5 $R1 +4
714 StrCmp $R5 "" +3 714 StrCmp $R5 "" +3
715 IntOp $R4 $R4 + 1 715 IntOp $R4 $R4 + 1
716 Goto -4 716 Goto -4
717 ; done; 717 ; done;
718 StrCpy $R1 $R2 "" $R4 718 StrCpy $R1 $R2 "" $R4
719 Pop $R5 719 Pop $R5
720 Pop $R4 720 Pop $R4
721 Pop $R3 721 Pop $R3
722 Pop $R2 722 Pop $R2
723 Exch $R1 723 Exch $R1
724!macroend 724!macroend
725 725
726Function GetProgramName 726Function GetProgramName
727 !insertmacro GetParameterValue "/P=" "Imprudence" 727 !insertmacro GetParameterValue "/P=" "Imprudence"
728FunctionEnd 728FunctionEnd
729 729
730Function un.GetProgramName 730Function un.GetProgramName
731 !insertmacro GetParameterValue "/P=" "Imprudence" 731 !insertmacro GetParameterValue "/P=" "Imprudence"
732FunctionEnd 732FunctionEnd
733 733
734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 734;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
735; (From the NSIS documentation, JC) 735; (From the NSIS documentation, JC)
736; GetWindowsVersion 736; GetWindowsVersion
737; 737;
738; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/ 738; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
739; Updated by Joost Verburg 739; Updated by Joost Verburg
740; 740;
741; Returns on top of stack 741; Returns on top of stack
742; 742;
743; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003) 743; Windows Version (95, 98, ME, NT x.x, 2000, XP, 2003)
744; or 744; or
745; '' (Unknown Windows Version) 745; '' (Unknown Windows Version)
746; 746;
747; Usage: 747; Usage:
748; Call GetWindowsVersion 748; Call GetWindowsVersion
749; Pop $R0 749; Pop $R0
750; ; at this point $R0 is "NT 4.0" or whatnot 750; ; at this point $R0 is "NT 4.0" or whatnot
751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 751;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
752Function GetWindowsVersion 752Function GetWindowsVersion
753 753
754 Push $R0 754 Push $R0
755 Push $R1 755 Push $R1
756 756
757 ReadRegStr $R0 HKLM \ 757 ReadRegStr $R0 HKLM \
758 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion 758 "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
759 759
760 IfErrors 0 lbl_winnt 760 IfErrors 0 lbl_winnt
761 761
762 ; we are not NT 762 ; we are not NT
763 ReadRegStr $R0 HKLM \ 763 ReadRegStr $R0 HKLM \
764 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber 764 "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
765 765
766 StrCpy $R1 $R0 1 766 StrCpy $R1 $R0 1
767 StrCmp $R1 '4' 0 lbl_error 767 StrCmp $R1 '4' 0 lbl_error
768 768
769 StrCpy $R1 $R0 3 769 StrCpy $R1 $R0 3
770 770
771 StrCmp $R1 '4.0' lbl_win32_95 771 StrCmp $R1 '4.0' lbl_win32_95
772 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98 772 StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
773 773
774 lbl_win32_95: 774 lbl_win32_95:
775 StrCpy $R0 '95' 775 StrCpy $R0 '95'
776 Goto lbl_done 776 Goto lbl_done
777 777
778 lbl_win32_98: 778 lbl_win32_98:
779 StrCpy $R0 '98' 779 StrCpy $R0 '98'
780 Goto lbl_done 780 Goto lbl_done
781 781
782 lbl_win32_ME: 782 lbl_win32_ME:
783 StrCpy $R0 'ME' 783 StrCpy $R0 'ME'
784 Goto lbl_done 784 Goto lbl_done
785 785
786 lbl_winnt: 786 lbl_winnt:
787 787
788 StrCpy $R1 $R0 1 788 StrCpy $R1 $R0 1
789 789
790 StrCmp $R1 '3' lbl_winnt_x 790 StrCmp $R1 '3' lbl_winnt_x
791 StrCmp $R1 '4' lbl_winnt_x 791 StrCmp $R1 '4' lbl_winnt_x
792 792
793 StrCpy $R1 $R0 3 793 StrCpy $R1 $R0 3
794 794
795 StrCmp $R1 '5.0' lbl_winnt_2000 795 StrCmp $R1 '5.0' lbl_winnt_2000
796 StrCmp $R1 '5.1' lbl_winnt_XP 796 StrCmp $R1 '5.1' lbl_winnt_XP
797 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error 797 StrCmp $R1 '5.2' lbl_winnt_2003 lbl_error
798 798
799 lbl_winnt_x: 799 lbl_winnt_x:
800 StrCpy $R0 "NT $R0" 6 800 StrCpy $R0 "NT $R0" 6
801 Goto lbl_done 801 Goto lbl_done
802 802
803 lbl_winnt_2000: 803 lbl_winnt_2000:
804 Strcpy $R0 '2000' 804 Strcpy $R0 '2000'
805 Goto lbl_done 805 Goto lbl_done
806 806
807 lbl_winnt_XP: 807 lbl_winnt_XP:
808 Strcpy $R0 'XP' 808 Strcpy $R0 'XP'
809 Goto lbl_done 809 Goto lbl_done
810 810
811 lbl_winnt_2003: 811 lbl_winnt_2003:
812 Strcpy $R0 '2003' 812 Strcpy $R0 '2003'
813 Goto lbl_done 813 Goto lbl_done
814 814
815 lbl_error: 815 lbl_error:
816 Strcpy $R0 '' 816 Strcpy $R0 ''
817 lbl_done: 817 lbl_done:
818 818
819 Pop $R1 819 Pop $R1
820 Exch $R0 820 Exch $R0
821 821
822FunctionEnd 822FunctionEnd
823 823
824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
825;; Note: to add new languages, add a language file include to the list 825;; Note: to add new languages, add a language file include to the list
826;; at the top of this file, add an entry to the menu and then add an 826;; at the top of this file, add an entry to the menu and then add an
827;; entry to the language ID selector below 827;; entry to the language ID selector below
828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 828;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
829Function .onInit 829Function .onInit
830 830
831 ; read the language from registry (ok if not there) and set langauge menu 831 ; read the language from registry (ok if not there) and set langauge menu
832 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" 832 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
833 StrCpy $LANGUAGE $0 833 StrCpy $LANGUAGE $0
834 834
835 Push "" 835 Push ""
836 Push ${LANG_ENGLISH} 836 Push ${LANG_ENGLISH}
837 Push English 837 Push English
838 Push ${LANG_GERMAN} 838 Push ${LANG_GERMAN}
839 Push German 839 Push German
840 Push ${LANG_JAPANESE} 840 Push ${LANG_JAPANESE}
841 Push Japanese 841 Push Japanese
842 Push ${LANG_KOREAN} 842 Push ${LANG_KOREAN}
843 Push Korean 843 Push Korean
844 Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain 844 Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain
845 LangDLL::LangDialog "Installer Language" "Please select the language of the installer" 845 LangDLL::LangDialog "Installer Language" "Please select the language of the installer"
846 Pop $LANGUAGE 846 Pop $LANGUAGE
847 StrCmp $LANGUAGE "cancel" 0 +2 847 StrCmp $LANGUAGE "cancel" 0 +2
848 Abort 848 Abort
849 849
850 ; save language in registry 850 ; save language in registry
851 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE 851 WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" $LANGUAGE
852FunctionEnd 852FunctionEnd
853 853
854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 854;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
855Function un.onInit 855Function un.onInit
856 856
857 ; read language from registry and set for ininstaller 857 ; read language from registry and set for ininstaller
858 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage" 858 ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\${INSTNAME}" "InstallerLanguage"
859 StrCpy $LANGUAGE $0 859 StrCpy $LANGUAGE $0
860 860
861FunctionEnd 861FunctionEnd
862 862
863 863
864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 864;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
865;;; Sections 865;;; Sections
866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 866;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
867Section "" ; (default section) 867Section "" ; (default section)
868 868
869SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well) 869SetShellVarContext all ; install for all users (if you change this, change it in the uninstall as well)
870 870
871; Start with some default values. 871; Start with some default values.
872StrCpy $INSTFLAGS "${INSTFLAGS}" 872StrCpy $INSTFLAGS "${INSTFLAGS}"
873StrCpy $INSTPROG "${INSTNAME}" 873StrCpy $INSTPROG "${INSTNAME}"
874StrCpy $INSTEXE "${INSTEXE}" 874StrCpy $INSTEXE "${INSTEXE}"
875StrCpy $INSTSHORTCUT "${SHORTCUT}" 875StrCpy $INSTSHORTCUT "${SHORTCUT}"
876 876
877IfSilent +2 877IfSilent +2
878Goto NOT_SILENT 878Goto NOT_SILENT
879 Call CheckStartupParams ; Figure out where, what and how to install. 879 Call CheckStartupParams ; Figure out where, what and how to install.
880NOT_SILENT: 880NOT_SILENT:
881Call CheckWindowsVersion ; warn if on Windows 98/ME 881Call CheckWindowsVersion ; warn if on Windows 98/ME
882Call CheckIfAdministrator ; Make sure the user can install/uninstall 882Call CheckIfAdministrator ; Make sure the user can install/uninstall
883Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version 883Call CheckIfAlreadyCurrent ; Make sure that we haven't already installed this version
884Call CloseSecondLife ; Make sure we're not running 884Call CloseSecondLife ; Make sure we're not running
885Call RemoveNSIS ; Check for old NSIS install to remove 885Call RemoveNSIS ; Check for old NSIS install to remove
886 886
887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 887;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
888;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers. 888;;; Don't remove cache files during a regular install, removing the inventory cache on upgrades results in lots of damage to the servers.
889;Call RemoveCacheFiles ; Installing over removes potentially corrupted 889;Call RemoveCacheFiles ; Installing over removes potentially corrupted
890 ; VFS and cache files. 890 ; VFS and cache files.
891 891
892;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 892;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
893;;; Need to clean out shader files from previous installs to fix DEV-5663 893;;; Need to clean out shader files from previous installs to fix DEV-5663
894Call RemoveOldShaders 894Call RemoveOldShaders
895 895
896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 896;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
897;;; Need to clean out old XUI files that predate skinning 897;;; Need to clean out old XUI files that predate skinning
898Call RemoveOldXUI 898Call RemoveOldXUI
899 899
900;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 900;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
901;;; Clear out old releasenotes.txt files. These are now on the public wiki. 901;;; Clear out old releasenotes.txt files. These are now on the public wiki.
902Call RemoveOldReleaseNotes 902Call RemoveOldReleaseNotes
903 903
904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 904;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
905;;; Files 905;;; Files
906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 906;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
907;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py 907;; This placeholder is replaced by the complete list of all the files in the installer, by viewer_manifest.py
908%%INSTALL_FILES%% 908%%INSTALL_FILES%%
909 909
910;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 910;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
911; If this is a silent update, we don't need to re-create these shortcuts or registry entries. 911; If this is a silent update, we don't need to re-create these shortcuts or registry entries.
912IfSilent POST_INSTALL 912IfSilent POST_INSTALL
913 913
914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 914;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
915; Shortcuts in start menu 915; Shortcuts in start menu
916CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT" 916CreateDirectory "$SMPROGRAMS\$INSTSHORTCUT"
917SetOutPath "$INSTDIR" 917SetOutPath "$INSTDIR"
918CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \ 918CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT.lnk" \
919 "$INSTDIR\$INSTEXE" "$INSTFLAGS" 919 "$INSTDIR\$INSTEXE" "$INSTFLAGS"
920 920
921!ifdef MUSEUM 921!ifdef MUSEUM
922CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum.lnk" \ 922CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum.lnk" \
923 923
924 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 924 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
925CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum Spanish.lnk" \ 925CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\$INSTSHORTCUT Museum Spanish.lnk" \
926 926
927 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 927 "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
928!endif 928!endif
929 929
930WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Create Trial Account.url" \ 930WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Create Trial Account.url" \
931 "InternetShortcut" "URL" \ 931 "InternetShortcut" "URL" \
932 "http://www.secondlife.com/registration/" 932 "http://www.secondlife.com/registration/"
933WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Your Account.url" \ 933WriteINIStr "$SMPROGRAMS\$INSTSHORTCUT\SL Your Account.url" \
934 "InternetShortcut" "URL" \ 934 "InternetShortcut" "URL" \
935 "http://www.secondlife.com/account/" 935 "http://www.secondlife.com/account/"
936CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.lnk" \ 936CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\SL Scripting Language Help.lnk" \
937 "$INSTDIR\lsl_guide.html" 937 "$INSTDIR\lsl_guide.html"
938CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \ 938CreateShortCut "$SMPROGRAMS\$INSTSHORTCUT\Uninstall $INSTSHORTCUT.lnk" \
939 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"' 939 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"'
940 940
941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 941;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
942; Other shortcuts 942; Other shortcuts
943SetOutPath "$INSTDIR" 943SetOutPath "$INSTDIR"
944CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS" 944CreateShortCut "$DESKTOP\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS"
945CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS" 945CreateShortCut "$INSTDIR\$INSTSHORTCUT.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS"
946CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \ 946CreateShortCut "$INSTDIR\Uninstall $INSTSHORTCUT.lnk" \
947 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"' 947 '"$INSTDIR\uninst.exe"' '/P="$INSTPROG"'
948 948
949!ifdef MUSEUM 949!ifdef MUSEUM
950CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 950CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
951 951
952CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 952CreateShortCut "$DESKTOP\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
953 953
954CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple" 954CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple"
955 955
956CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish" 956CreateShortCut "$INSTDIR\$INSTSHORTCUT Museum Spanish.lnk" "$INSTDIR\$INSTEXE" "$INSTFLAGS -simple -spanish"
957 957
958!endif 958!endif
959 959
960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 960;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
961; Write registry 961; Write registry
962WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR" 962WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "" "$INSTDIR"
963WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}" 963WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Version" "${VERSION_LONG}"
964WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" "$INSTFLAGS" 964WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Flags" "$INSTFLAGS"
965WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT" 965WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Shortcut" "$INSTSHORTCUT"
966WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" "$INSTEXE" 966WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Linden Research, Inc.\$INSTPROG" "Exe" "$INSTEXE"
967WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)" 967WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "DisplayName" "$INSTPROG (remove only)"
968WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"' 968WriteRegStr HKEY_LOCAL_MACHINE "Software\Microsoft\Windows\CurrentVersion\Uninstall\$INSTPROG" "UninstallString" '"$INSTDIR\uninst.exe" /P="$INSTPROG"'
969 969
970;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 970;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
971; Write URL registry info 971; Write URL registry info
972WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life" 972WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "(default)" "URL:Second Life"
973WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" "" 973WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}" "URL Protocol" ""
974WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"' 974WriteRegStr HKEY_CLASSES_ROOT "${URLNAME}\DefaultIcon" "" '"$INSTDIR\$INSTEXE"'
975WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"' 975WriteRegExpandStr HKEY_CLASSES_ROOT "${URLNAME}\shell\open\command" "" '"$INSTDIR\$INSTEXE" $INSTFLAGS -url "%1"'
976 976
977Goto WRITE_UNINST 977Goto WRITE_UNINST
978 978
979POST_INSTALL: 979POST_INSTALL:
980; Run a post-executable script if necessary. 980; Run a post-executable script if necessary.
981Call PostInstallExe 981Call PostInstallExe
982 982
983WRITE_UNINST: 983WRITE_UNINST:
984; write out uninstaller 984; write out uninstaller
985WriteUninstaller "$INSTDIR\uninst.exe" 985WriteUninstaller "$INSTDIR\uninst.exe"
986 986
987; end of default section 987; end of default section
988SectionEnd 988SectionEnd
989 989
990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 990;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; EOF ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;