Statistiques
| Révision :

root / tmp / org.txm.setups / nsis-2.5 / Examples / FileFuncTest.nsi @ 3116

Historique | Voir | Annoter | Télécharger (13,95 ko)

1 2961 mdecorde
;_____________________________________________________________________________
2 2961 mdecorde
;
3 2961 mdecorde
;                          File Functions Test
4 2961 mdecorde
;_____________________________________________________________________________
5 2961 mdecorde
;
6 2961 mdecorde
; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
7 2961 mdecorde
8 2961 mdecorde
Name "File Functions Test"
9 2961 mdecorde
OutFile "FileFuncTest.exe"
10 2961 mdecorde
Caption "$(^Name)"
11 2961 mdecorde
ShowInstDetails show
12 2961 mdecorde
XPStyle on
13 2961 mdecorde
RequestExecutionLevel user
14 2961 mdecorde
15 2961 mdecorde
Var FUNCTION
16 2961 mdecorde
Var OUT1
17 2961 mdecorde
Var OUT2
18 2961 mdecorde
Var OUT3
19 2961 mdecorde
Var OUT4
20 2961 mdecorde
Var OUT5
21 2961 mdecorde
Var OUT6
22 2961 mdecorde
Var OUT7
23 2961 mdecorde
24 2961 mdecorde
!include "FileFunc.nsh"
25 2961 mdecorde
!include "LogicLib.nsh"
26 2961 mdecorde
27 2961 mdecorde
;############### INSTALL ###############
28 2961 mdecorde
29 2961 mdecorde
!define StackVerificationStart `!insertmacro StackVerificationStart`
30 2961 mdecorde
!macro StackVerificationStart _FUNCTION
31 2961 mdecorde
	StrCpy $FUNCTION ${_FUNCTION}
32 2961 mdecorde
	Call StackVerificationStart
33 2961 mdecorde
!macroend
34 2961 mdecorde
35 2961 mdecorde
!define StackVerificationEnd `!insertmacro StackVerificationEnd`
36 2961 mdecorde
!macro StackVerificationEnd
37 2961 mdecorde
	Call StackVerificationEnd
38 2961 mdecorde
!macroend
39 2961 mdecorde
40 2961 mdecorde
Function StackVerificationStart
41 2961 mdecorde
	StrCpy $0 !0
42 2961 mdecorde
	StrCpy $1 !1
43 2961 mdecorde
	StrCpy $2 !2
44 2961 mdecorde
	StrCpy $3 !3
45 2961 mdecorde
	StrCpy $4 !4
46 2961 mdecorde
	StrCpy $5 !5
47 2961 mdecorde
	StrCpy $6 !6
48 2961 mdecorde
	StrCpy $7 !7
49 2961 mdecorde
	StrCpy $8 !8
50 2961 mdecorde
	StrCpy $9 !9
51 2961 mdecorde
	StrCpy $R0 !R0
52 2961 mdecorde
	StrCpy $R1 !R1
53 2961 mdecorde
	StrCpy $R2 !R2
54 2961 mdecorde
	StrCpy $R3 !R3
55 2961 mdecorde
	StrCpy $R4 !R4
56 2961 mdecorde
	StrCpy $R5 !R5
57 2961 mdecorde
	StrCpy $R6 !R6
58 2961 mdecorde
	StrCpy $R7 !R7
59 2961 mdecorde
	StrCpy $R8 !R8
60 2961 mdecorde
	StrCpy $R9 !R9
61 2961 mdecorde
FunctionEnd
62 2961 mdecorde
63 2961 mdecorde
Function StackVerificationEnd
64 2961 mdecorde
	IfErrors +3
65 2961 mdecorde
	DetailPrint 'PASSED $FUNCTION no errors'
66 2961 mdecorde
	goto +2
67 2961 mdecorde
	DetailPrint 'FAILED   $FUNCTION error'
68 2961 mdecorde
69 2961 mdecorde
	StrCmp $0 '!0' 0 error
70 2961 mdecorde
	StrCmp $1 '!1' 0 error
71 2961 mdecorde
	StrCmp $2 '!2' 0 error
72 2961 mdecorde
	StrCmp $3 '!3' 0 error
73 2961 mdecorde
	StrCmp $4 '!4' 0 error
74 2961 mdecorde
	StrCmp $5 '!5' 0 error
75 2961 mdecorde
	StrCmp $6 '!6' 0 error
76 2961 mdecorde
	StrCmp $7 '!7' 0 error
77 2961 mdecorde
	StrCmp $8 '!8' 0 error
78 2961 mdecorde
	StrCmp $9 '!9' 0 error
79 2961 mdecorde
	StrCmp $R0 '!R0' 0 error
80 2961 mdecorde
	StrCmp $R1 '!R1' 0 error
81 2961 mdecorde
	StrCmp $R2 '!R2' 0 error
82 2961 mdecorde
	StrCmp $R3 '!R3' 0 error
83 2961 mdecorde
	StrCmp $R4 '!R4' 0 error
84 2961 mdecorde
	StrCmp $R5 '!R5' 0 error
85 2961 mdecorde
	StrCmp $R6 '!R6' 0 error
86 2961 mdecorde
	StrCmp $R7 '!R7' 0 error
87 2961 mdecorde
	StrCmp $R8 '!R8' 0 error
88 2961 mdecorde
	StrCmp $R9 '!R9' 0 error
89 2961 mdecorde
	DetailPrint 'PASSED $FUNCTION stack'
90 2961 mdecorde
	goto end
91 2961 mdecorde
92 2961 mdecorde
	error:
93 2961 mdecorde
	DetailPrint 'FAILED   $FUNCTION stack'
94 2961 mdecorde
;	MessageBox MB_OKCANCEL '$$0={$0}$\n$$1={$1}$\n$$2={$2}$\n$$3={$3}$\n$$4={$4}$\n$$5={$5}$\n$$6={$6}$\n$$7={$7}$\n$$8={$8}$\n$$9={$9}$\n$$R0={$R0}$\n$$R1={$R1}$\n$$R2={$R2}$\n$$R3={$R3}$\n$$R4={$R4}$\n$$R5={$R5}$\n$$R6={$R6}$\n$$R7={$R7}$\n$$R8={$R8}$\n$$R9={$R9}' IDOK +2
95 2961 mdecorde
;	quit
96 2961 mdecorde
97 2961 mdecorde
	end:
98 2961 mdecorde
FunctionEnd
99 2961 mdecorde
100 2961 mdecorde
101 2961 mdecorde
102 2961 mdecorde
Section Locate
103 2961 mdecorde
	${StackVerificationStart} Locate
104 2961 mdecorde
105 2961 mdecorde
	${Locate} '$DOCUMENTS' '/L=FD /M=*.* /S=0B /G=0' 'LocateCallback'
106 2961 mdecorde
107 2961 mdecorde
	${StackVerificationEnd}
108 2961 mdecorde
SectionEnd
109 2961 mdecorde
110 2961 mdecorde
Function LocateCallback
111 2961 mdecorde
;	MessageBox MB_YESNO '$$0={$0}$\n$$1={$1}$\n$$2={$2}$\n$$3={$3}$\n$$4={$4}$\n$$5={$5}$\n$$6={$6}$\n$$7={$7}$\n$$8={$8}$\n$$9={$9}$\n$$R0={$R0}$\n$$R1={$R1}$\n$$R2={$R2}$\n$$R3={$R3}$\n$$R4={$R4}$\n$$R5={$R5}$\n$$R6={$R6}$\n$$R7={$R7}$\n$$R8={$R8}$\n$$R9={$R9}$\n$\nContinue?' IDYES +2
112 2961 mdecorde
;	StrCpy $0 StopLocate
113 2961 mdecorde
114 2961 mdecorde
	Push $0
115 2961 mdecorde
FunctionEnd
116 2961 mdecorde
117 2961 mdecorde
118 2961 mdecorde
Section GetSize
119 2961 mdecorde
	${StackVerificationStart} GetSize
120 2961 mdecorde
121 2961 mdecorde
	${GetSize} '$WINDIR' '/M=Explorer.exe /S=0K /G=0' $OUT1 $OUT2 $OUT3
122 2961 mdecorde
123 2961 mdecorde
	${StackVerificationEnd}
124 2961 mdecorde
SectionEnd
125 2961 mdecorde
126 2961 mdecorde
127 2961 mdecorde
Section DriveSpace
128 2961 mdecorde
	${StackVerificationStart} DriveSpace
129 2961 mdecorde
130 2961 mdecorde
	${DriveSpace} 'C:\' '/D=F /S=M' $OUT1
131 2961 mdecorde
132 2961 mdecorde
	${StackVerificationEnd}
133 2961 mdecorde
SectionEnd
134 2961 mdecorde
135 2961 mdecorde
136 2961 mdecorde
Section GetDrives
137 2961 mdecorde
	${StackVerificationStart} GetDrives
138 2961 mdecorde
139 2961 mdecorde
	${GetDrives} 'FDD+CDROM' 'GetDrivesCallback'
140 2961 mdecorde
141 2961 mdecorde
	${StackVerificationEnd}
142 2961 mdecorde
SectionEnd
143 2961 mdecorde
144 2961 mdecorde
Function GetDrivesCallback
145 2961 mdecorde
;	MessageBox MB_YESNO '$$0={$0}$\n$$1={$1}$\n$$2={$2}$\n$$3={$3}$\n$$4={$4}$\n$$5={$5}$\n$$6={$6}$\n$$7={$7}$\n$$8={$8}$\n$$9={$9}$\n$$R0={$R0}$\n$$R1={$R1}$\n$$R2={$R2}$\n$$R3={$R3}$\n$$R4={$R4}$\n$$R5={$R5}$\n$$R6={$R6}$\n$$R7={$R7}$\n$$R8={$R8}$\n$$R9={$R9}$\n$\nContinue?' IDYES +2
146 2961 mdecorde
;	StrCpy $0 StopGetDrives
147 2961 mdecorde
148 2961 mdecorde
	Push $0
149 2961 mdecorde
FunctionEnd
150 2961 mdecorde
151 2961 mdecorde
152 2961 mdecorde
Section GetTime
153 2961 mdecorde
	${StackVerificationStart} GetTime
154 2961 mdecorde
155 2961 mdecorde
	${GetTime} '' 'L' $OUT1 $OUT2 $OUT3 $OUT4 $OUT5 $OUT6 $OUT7
156 2961 mdecorde
157 2961 mdecorde
	${StackVerificationEnd}
158 2961 mdecorde
SectionEnd
159 2961 mdecorde
160 2961 mdecorde
161 2961 mdecorde
Section GetFileAttributes
162 2961 mdecorde
	${StackVerificationStart} GetFileAttributes
163 2961 mdecorde
164 2961 mdecorde
	${GetFileAttributes} '$WINDIR\explorer.exe' 'ALL' $OUT1
165 2961 mdecorde
166 2961 mdecorde
	${StackVerificationEnd}
167 2961 mdecorde
SectionEnd
168 2961 mdecorde
169 2961 mdecorde
170 2961 mdecorde
Section GetFileVersion
171 2961 mdecorde
	${StackVerificationStart} GetFileVersion
172 2961 mdecorde
173 2961 mdecorde
	${GetFileVersion} '$WINDIR\explorer.exe' $OUT1
174 2961 mdecorde
175 2961 mdecorde
	${StackVerificationEnd}
176 2961 mdecorde
SectionEnd
177 2961 mdecorde
178 2961 mdecorde
179 2961 mdecorde
Section GetExeName
180 2961 mdecorde
	${StackVerificationStart} GetExeName
181 2961 mdecorde
182 2961 mdecorde
	${GetExeName} $OUT1
183 2961 mdecorde
184 2961 mdecorde
	${StackVerificationEnd}
185 2961 mdecorde
SectionEnd
186 2961 mdecorde
187 2961 mdecorde
188 2961 mdecorde
Section GetExePath
189 2961 mdecorde
	${StackVerificationStart} GetExePath
190 2961 mdecorde
191 2961 mdecorde
	${GetExePath} $OUT1
192 2961 mdecorde
193 2961 mdecorde
	${StackVerificationEnd}
194 2961 mdecorde
SectionEnd
195 2961 mdecorde
196 2961 mdecorde
197 2961 mdecorde
Section GetParameters
198 2961 mdecorde
	${StackVerificationStart} GetParameters
199 2961 mdecorde
200 2961 mdecorde
	# basic stuff
201 2961 mdecorde
202 2961 mdecorde
	StrCpy $CMDLINE '"$PROGRAMFILES\Something\Hello.exe"'
203 2961 mdecorde
	${GetParameters} $OUT1
204 2961 mdecorde
	StrCpy $CMDLINE '"$PROGRAMFILES\Something\Hello.exe" test'
205 2961 mdecorde
	${GetParameters} $OUT2
206 2961 mdecorde
	StrCpy $CMDLINE '"$PROGRAMFILES\Something\Hello.exe" "test"'
207 2961 mdecorde
	${GetParameters} $OUT3
208 2961 mdecorde
	StrCpy $CMDLINE 'C:\Hello.exe'
209 2961 mdecorde
	${GetParameters} $OUT4
210 2961 mdecorde
	StrCpy $CMDLINE 'C:\Hello.exe test'
211 2961 mdecorde
	${GetParameters} $OUT5
212 2961 mdecorde
	StrCpy $CMDLINE 'C:\Hello.exe "test"'
213 2961 mdecorde
	${GetParameters} $OUT6
214 2961 mdecorde
	StrCpy $CMDLINE 'C:\Hello.exe       test test  '
215 2961 mdecorde
	${GetParameters} $OUT7
216 2961 mdecorde
217 2961 mdecorde
	${If} $OUT1 != ""
218 2961 mdecorde
	${OrIf} $OUT2 != "test"
219 2961 mdecorde
	${OrIf} $OUT3 != '"test"'
220 2961 mdecorde
	${OrIf} $OUT4 != ""
221 2961 mdecorde
	${OrIf} $OUT5 != "test"
222 2961 mdecorde
	${OrIf} $OUT6 != '"test"'
223 2961 mdecorde
	${OrIf} $OUT7 != 'test test'
224 2961 mdecorde
		SetErrors
225 2961 mdecorde
	${EndIf}
226 2961 mdecorde
227 2961 mdecorde
	# some corner cases
228 2961 mdecorde
229 2961 mdecorde
	StrCpy $CMDLINE ''
230 2961 mdecorde
	${GetParameters} $OUT1
231 2961 mdecorde
	StrCpy $CMDLINE '"'
232 2961 mdecorde
	${GetParameters} $OUT2
233 2961 mdecorde
	StrCpy $CMDLINE '""'
234 2961 mdecorde
	${GetParameters} $OUT3
235 2961 mdecorde
	StrCpy $CMDLINE '"" test'
236 2961 mdecorde
	${GetParameters} $OUT4
237 2961 mdecorde
	StrCpy $CMDLINE ' test'
238 2961 mdecorde
	${GetParameters} $OUT5
239 2961 mdecorde
	StrCpy $CMDLINE '  test' # left over bug(?) from old GetParameters
240 2961 mdecorde
	                         # it starts looking for ' ' from the third char
241 2961 mdecorde
	${GetParameters} $OUT6
242 2961 mdecorde
	StrCpy $CMDLINE ' '
243 2961 mdecorde
	${GetParameters} $OUT7
244 2961 mdecorde
245 2961 mdecorde
	${If} $OUT1 != ""
246 2961 mdecorde
	${OrIf} $OUT2 != ""
247 2961 mdecorde
	${OrIf} $OUT3 != ""
248 2961 mdecorde
	${OrIf} $OUT4 != ""
249 2961 mdecorde
	${OrIf} $OUT5 != ""
250 2961 mdecorde
	${OrIf} $OUT6 != ""
251 2961 mdecorde
	${OrIf} $OUT7 != ""
252 2961 mdecorde
		SetErrors
253 2961 mdecorde
	${EndIf}
254 2961 mdecorde
255 2961 mdecorde
	${StackVerificationEnd}
256 2961 mdecorde
SectionEnd
257 2961 mdecorde
258 2961 mdecorde
259 2961 mdecorde
Section GetOptions
260 2961 mdecorde
	${StackVerificationStart} GetOptions
261 2961 mdecorde
262 2961 mdecorde
	${GetOptions} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/INSTDIR=' $OUT1
263 2961 mdecorde
	StrCmp $OUT1 'C:\Program Files\Common Files' 0 error
264 2961 mdecorde
265 2961 mdecorde
	${GetOptions} '-TMP=temp.tmp -INSTDIR="C:/Program Files/Common Files" -SILENT=yes' '-INSTDIR=' $OUT1
266 2961 mdecorde
	StrCmp $OUT1 'C:/Program Files/Common Files' 0 error
267 2961 mdecorde
268 2961 mdecorde
	${GetOptions} "/INSTDIR='C:/Program Files/Common Files' /SILENT=yes" '/INSTDIR=' $OUT1
269 2961 mdecorde
	StrCmp $OUT1 'C:/Program Files/Common Files' 0 error
270 2961 mdecorde
271 2961 mdecorde
	StrCpy $OUT1 '/INSTDIR=`C:/Program Files/Common Files` /SILENT=yes'
272 2961 mdecorde
	${GetOptions} '$OUT1' '/INSTDIR=' $OUT1
273 2961 mdecorde
	StrCmp $OUT1 'C:/Program Files/Common Files' 0 error
274 2961 mdecorde
275 2961 mdecorde
	${GetOptions} '/SILENT=yes /INSTDIR=C:\Program Files\Common Files' '/INSTDIR=' $OUT1
276 2961 mdecorde
	StrCmp $OUT1 'C:\Program Files\Common Files' 0 error
277 2961 mdecorde
278 2961 mdecorde
	${GetOptions} "/INSTDIR=common directory: 'C:\Program Files\Common Files' /SILENT=yes" '/INSTDIR=' $OUT1
279 2961 mdecorde
	StrCmp $OUT1 "common directory: 'C:\Program Files\Common Files'" 0 error
280 2961 mdecorde
281 2961 mdecorde
	${GetOptions} '/INSTDIR=WxxxW /SILENT=yes' '/INSTDIR=' $OUT1
282 2961 mdecorde
	StrCmp $OUT1 'WxxxW' 0 error
283 2961 mdecorde
284 2961 mdecorde
	${GetOptions} "/Prm='/D=True' /D=1" '/D=' $OUT1
285 2961 mdecorde
	StrCmp $OUT1 "1" 0 error
286 2961 mdecorde
287 2961 mdecorde
	${GetOptions} "/D=1 /Prm='/D=True'" '/Prm=' $OUT1
288 2961 mdecorde
	StrCmp $OUT1 "/D=True" 0 error
289 2961 mdecorde
290 2961 mdecorde
	${GetOptions} `/D=1 /Prm='/D="True" /S="/Temp"'` '/Prm=' $OUT1
291 2961 mdecorde
	StrCmp $OUT1 '/D="True" /S="/Temp"' 0 error
292 2961 mdecorde
293 2961 mdecorde
	${GetOptions} `/INSTDIR='"C:/Program Files/Common Files"' /SILENT=yes` '/INSTDIR=' $OUT1
294 2961 mdecorde
	StrCmp $OUT1 '"C:/Program Files/Common Files"' 0 error
295 2961 mdecorde
296 2961 mdecorde
	${GetOptions} `/INSTDIR='"C:/Program Files/Common Files"' /SILENT=yes` '/INSTDIR*=' $OUT1
297 2961 mdecorde
	IfErrors 0 error
298 2961 mdecorde
	StrCmp $OUT1 '' 0 error
299 2961 mdecorde
300 2961 mdecorde
	${GetOptions} `/INSTDIR="C:/Program Files/Common Files" /SILENT=yes` '' $OUT1
301 2961 mdecorde
	IfErrors 0 error
302 2961 mdecorde
	StrCmp $OUT1 '' 0 error
303 2961 mdecorde
304 2961 mdecorde
	${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT' '/SILENT' $OUT1
305 2961 mdecorde
	IfErrors error
306 2961 mdecorde
	StrCmp $OUT1 '' 0 error
307 2961 mdecorde
308 2961 mdecorde
	goto +2
309 2961 mdecorde
	error:
310 2961 mdecorde
	SetErrors
311 2961 mdecorde
312 2961 mdecorde
	${StackVerificationEnd}
313 2961 mdecorde
SectionEnd
314 2961 mdecorde
315 2961 mdecorde
316 2961 mdecorde
Section GetOptionsS
317 2961 mdecorde
	${StackVerificationStart} GetOptionsS
318 2961 mdecorde
319 2961 mdecorde
	${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/INSTDIR=' $OUT1
320 2961 mdecorde
	IfErrors error
321 2961 mdecorde
	StrCmp $OUT1 'C:\Program Files\Common Files' 0 error
322 2961 mdecorde
323 2961 mdecorde
	${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/Instdir=' $OUT1
324 2961 mdecorde
	IfErrors 0 error
325 2961 mdecorde
	StrCmp $OUT1 '' 0 error
326 2961 mdecorde
327 2961 mdecorde
	${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT' '/SILENT' $OUT1
328 2961 mdecorde
	IfErrors error
329 2961 mdecorde
	StrCmp $OUT1 '' 0 error
330 2961 mdecorde
331 2961 mdecorde
	goto +2
332 2961 mdecorde
	error:
333 2961 mdecorde
	SetErrors
334 2961 mdecorde
335 2961 mdecorde
	${StackVerificationEnd}
336 2961 mdecorde
SectionEnd
337 2961 mdecorde
338 2961 mdecorde
339 2961 mdecorde
Section GetRoot
340 2961 mdecorde
	${StackVerificationStart} GetRoot
341 2961 mdecorde
342 2961 mdecorde
	${GetRoot} 'C:\Program Files\NSIS' $OUT1
343 2961 mdecorde
	StrCmp $OUT1 'C:' 0 error
344 2961 mdecorde
345 2961 mdecorde
	${GetRoot} '\\SuperPimp\NSIS\Source\exehead\Ui.c' $OUT1
346 2961 mdecorde
	StrCmp $OUT1 '\\SuperPimp\NSIS' 0 error
347 2961 mdecorde
348 2961 mdecorde
	${GetRoot} '\\Program Files\NSIS' $OUT1
349 2961 mdecorde
	StrCmp $OUT1 '\\Program Files\NSIS' 0 error
350 2961 mdecorde
351 2961 mdecorde
	${GetRoot} '\\Program Files\NSIS\' $OUT1
352 2961 mdecorde
	StrCmp $OUT1 '\\Program Files\NSIS' 0 error
353 2961 mdecorde
354 2961 mdecorde
	${GetRoot} '\\Program Files\NSIS\Source\exehead\Ui.c' $OUT1
355 2961 mdecorde
	StrCmp $OUT1 '\\Program Files\NSIS' 0 error
356 2961 mdecorde
357 2961 mdecorde
	${GetRoot} '\Program Files\NSIS' $OUT1
358 2961 mdecorde
	StrCmp $OUT1 '' 0 error
359 2961 mdecorde
360 2961 mdecorde
	goto +2
361 2961 mdecorde
	error:
362 2961 mdecorde
	SetErrors
363 2961 mdecorde
364 2961 mdecorde
	${StackVerificationEnd}
365 2961 mdecorde
SectionEnd
366 2961 mdecorde
367 2961 mdecorde
368 2961 mdecorde
Section GetParent
369 2961 mdecorde
	${StackVerificationStart} GetParent
370 2961 mdecorde
371 2961 mdecorde
	${GetParent} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
372 2961 mdecorde
	StrCmp $OUT1 'C:\Program Files\Winamp' 0 error
373 2961 mdecorde
374 2961 mdecorde
	${GetParent} 'C:\Program Files\Winamp\plugins' $OUT1
375 2961 mdecorde
	StrCmp $OUT1 'C:\Program Files\Winamp' 0 error
376 2961 mdecorde
377 2961 mdecorde
	${GetParent} 'C:\Program Files\Winamp\plugins\' $OUT1
378 2961 mdecorde
	StrCmp $OUT1 'C:\Program Files\Winamp' 0 error
379 2961 mdecorde
380 2961 mdecorde
	${GetParent} 'C:\' $OUT1
381 2961 mdecorde
	StrCmp $OUT1 '' 0 error
382 2961 mdecorde
383 2961 mdecorde
	goto +2
384 2961 mdecorde
	error:
385 2961 mdecorde
	SetErrors
386 2961 mdecorde
387 2961 mdecorde
	${StackVerificationEnd}
388 2961 mdecorde
SectionEnd
389 2961 mdecorde
390 2961 mdecorde
391 2961 mdecorde
Section GetFileName
392 2961 mdecorde
	${StackVerificationStart} GetFileName
393 2961 mdecorde
394 2961 mdecorde
	${GetFileName} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
395 2961 mdecorde
	StrCmp $OUT1 'uninstwa.exe' 0 error
396 2961 mdecorde
397 2961 mdecorde
	${GetFileName} 'uninstwa.exe' $OUT1
398 2961 mdecorde
	StrCmp $OUT1 'uninstwa.exe' 0 error
399 2961 mdecorde
400 2961 mdecorde
	${GetFileName} 'C:\Program Files\Winamp\plugins' $OUT1
401 2961 mdecorde
	StrCmp $OUT1 'plugins' 0 error
402 2961 mdecorde
403 2961 mdecorde
	${GetFileName} 'C:\Program Files\Winamp\plugins\' $OUT1
404 2961 mdecorde
	StrCmp $OUT1 'plugins' 0 error
405 2961 mdecorde
406 2961 mdecorde
	goto +2
407 2961 mdecorde
	error:
408 2961 mdecorde
	SetErrors
409 2961 mdecorde
410 2961 mdecorde
	${StackVerificationEnd}
411 2961 mdecorde
SectionEnd
412 2961 mdecorde
413 2961 mdecorde
414 2961 mdecorde
Section GetBaseName
415 2961 mdecorde
	${StackVerificationStart} GetBaseName
416 2961 mdecorde
417 2961 mdecorde
	${GetBaseName} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
418 2961 mdecorde
	StrCmp $OUT1 'uninstwa' 0 error
419 2961 mdecorde
420 2961 mdecorde
	${GetBaseName} 'uninstwa.exe' $OUT1
421 2961 mdecorde
	StrCmp $OUT1 'uninstwa' 0 error
422 2961 mdecorde
423 2961 mdecorde
	${GetBaseName} 'C:\Program Files\Winamp\plugins' $OUT1
424 2961 mdecorde
	StrCmp $OUT1 'plugins' 0 error
425 2961 mdecorde
426 2961 mdecorde
	${GetBaseName} 'C:\Program Files\Winamp\plugins\' $OUT1
427 2961 mdecorde
	StrCmp $OUT1 '' 0 error
428 2961 mdecorde
429 2961 mdecorde
	goto +2
430 2961 mdecorde
	error:
431 2961 mdecorde
	SetErrors
432 2961 mdecorde
433 2961 mdecorde
	${StackVerificationEnd}
434 2961 mdecorde
SectionEnd
435 2961 mdecorde
436 2961 mdecorde
437 2961 mdecorde
Section GetFileExt
438 2961 mdecorde
	${StackVerificationStart} GetFileExt
439 2961 mdecorde
440 2961 mdecorde
	${GetFileExt} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
441 2961 mdecorde
	StrCmp $OUT1 'exe' 0 error
442 2961 mdecorde
443 2961 mdecorde
	${GetFileExt} 'uninstwa.exe' $OUT1
444 2961 mdecorde
	StrCmp $OUT1 'exe' 0 error
445 2961 mdecorde
446 2961 mdecorde
	${GetFileExt} 'C:\Program Files\Winamp\plugins' $OUT1
447 2961 mdecorde
	StrCmp $OUT1 '' 0 error
448 2961 mdecorde
449 2961 mdecorde
	${GetFileExt} 'C:\Program Files\Winamp\plugins\' $OUT1
450 2961 mdecorde
	StrCmp $OUT1 '' 0 error
451 2961 mdecorde
452 2961 mdecorde
	goto +2
453 2961 mdecorde
	error:
454 2961 mdecorde
	SetErrors
455 2961 mdecorde
456 2961 mdecorde
	${StackVerificationEnd}
457 2961 mdecorde
SectionEnd
458 2961 mdecorde
459 2961 mdecorde
460 2961 mdecorde
Section BannerTrimPath
461 2961 mdecorde
	${StackVerificationStart} BannerTrimPath
462 2961 mdecorde
463 2961 mdecorde
	${BannerTrimPath} 'C:\Server\Documents\Terminal\license.htm' '35A' $OUT1
464 2961 mdecorde
	StrCmp $OUT1 'C:\Server\...\Terminal\license.htm' 0 error
465 2961 mdecorde
466 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '3A' $OUT1
467 2961 mdecorde
	StrCmp $OUT1 '' 0 error
468 2961 mdecorde
469 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '4A' $OUT1
470 2961 mdecorde
	StrCmp $OUT1 'C...' 0 error
471 2961 mdecorde
472 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '11A' $OUT1
473 2961 mdecorde
	StrCmp $OUT1 'C:\12\...' 0 error
474 2961 mdecorde
475 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '13A' $OUT1
476 2961 mdecorde
	StrCmp $OUT1 'C:\12\...\789' 0 error
477 2961 mdecorde
478 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '14A' $OUT1
479 2961 mdecorde
	StrCmp $OUT1 'C:\12\3456\789' 0 error
480 2961 mdecorde
481 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '14A' $OUT1
482 2961 mdecorde
	StrCmp $OUT1 'C:\12\3456\789' 0 error
483 2961 mdecorde
484 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '11B' $OUT1
485 2961 mdecorde
	StrCmp $OUT1 'C:\12\...' 0 error
486 2961 mdecorde
487 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '5B' $OUT1
488 2961 mdecorde
	StrCmp $OUT1 'C:...' 0 error
489 2961 mdecorde
490 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '5B' $OUT1
491 2961 mdecorde
	StrCmp $OUT1 'C:...' 0 error
492 2961 mdecorde
493 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '11C' $OUT1
494 2961 mdecorde
	StrCmp $OUT1 'C:\12\34...' 0 error
495 2961 mdecorde
496 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '9D' $OUT1
497 2961 mdecorde
	StrCmp $OUT1 'C:\12\...' 0 error
498 2961 mdecorde
499 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '10D' $OUT1
500 2961 mdecorde
	StrCmp $OUT1 'C:\...\789' 0 error
501 2961 mdecorde
502 2961 mdecorde
	${BannerTrimPath} 'C:\12\3456\789' '11D' $OUT1
503 2961 mdecorde
	StrCmp $OUT1 'C:\1...\789' 0 error
504 2961 mdecorde
505 2961 mdecorde
	${BannerTrimPath} '123456789' '5D' $OUT1
506 2961 mdecorde
	StrCmp $OUT1 '12...' 0 error
507 2961 mdecorde
508 2961 mdecorde
	goto +2
509 2961 mdecorde
	error:
510 2961 mdecorde
	SetErrors
511 2961 mdecorde
512 2961 mdecorde
	${StackVerificationEnd}
513 2961 mdecorde
SectionEnd
514 2961 mdecorde
515 2961 mdecorde
516 2961 mdecorde
Section DirState
517 2961 mdecorde
	${StackVerificationStart} DirState
518 2961 mdecorde
519 2961 mdecorde
	${DirState} '$TEMP' $OUT1
520 2961 mdecorde
521 2961 mdecorde
	${StackVerificationEnd}
522 2961 mdecorde
SectionEnd
523 2961 mdecorde
524 2961 mdecorde
525 2961 mdecorde
Section RefreshShellIcons
526 2961 mdecorde
	${StackVerificationStart} RefreshShellIcons
527 2961 mdecorde
528 2961 mdecorde
	${RefreshShellIcons}
529 2961 mdecorde
530 2961 mdecorde
	${StackVerificationEnd}
531 2961 mdecorde
SectionEnd
532 2961 mdecorde
533 2961 mdecorde
534 2961 mdecorde
Section WriteUninstaller
535 2961 mdecorde
	goto +2
536 2961 mdecorde
	WriteUninstaller '$EXEDIR\un.FileFuncTest.exe'
537 2961 mdecorde
SectionEnd
538 2961 mdecorde
539 2961 mdecorde
540 2961 mdecorde
541 2961 mdecorde
;############### UNINSTALL ###############
542 2961 mdecorde
543 2961 mdecorde
Section un.Uninstall
544 2961 mdecorde
	${Locate} '$DOCUMENTS' '/L=FD /M=*.* /S=0B /G=0' 'un.LocateCallback'
545 2961 mdecorde
	${GetSize} '$WINDIR' '/M=Explorer.exe /S=0K /G=0' $OUT1 $OUT2 $OUT3
546 2961 mdecorde
	${DriveSpace} 'C:\' '/D=F /S=M' $OUT1
547 2961 mdecorde
	${GetDrives} 'FDD+CDROM' 'un.GetDrivesCallback'
548 2961 mdecorde
	${GetTime} '' 'L' $OUT1 $OUT2 $OUT3 $OUT4 $OUT5 $OUT6 $OUT7
549 2961 mdecorde
	${GetFileAttributes} '$WINDIR\explorer.exe' 'ALL' $OUT1
550 2961 mdecorde
	${GetFileVersion} '$WINDIR\explorer.exe' $OUT1
551 2961 mdecorde
	${GetExeName} $OUT1
552 2961 mdecorde
	${GetExePath} $OUT1
553 2961 mdecorde
	${GetParameters} $OUT1
554 2961 mdecorde
	${GetOptions} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/INSTDIR=' $OUT1
555 2961 mdecorde
	${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/INSTDIR=' $OUT1
556 2961 mdecorde
	${GetRoot} 'C:\Program Files\NSIS' $OUT1
557 2961 mdecorde
	${GetParent} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
558 2961 mdecorde
	${GetFileName} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
559 2961 mdecorde
	${GetBaseName} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
560 2961 mdecorde
	${GetFileExt} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
561 2961 mdecorde
	${BannerTrimPath} 'C:\Server\Documents\Terminal\license.htm' '35A' $OUT1
562 2961 mdecorde
	${DirState} '$TEMP' $OUT1
563 2961 mdecorde
	${RefreshShellIcons}
564 2961 mdecorde
SectionEnd
565 2961 mdecorde
566 2961 mdecorde
Function un.LocateCallback
567 2961 mdecorde
	Push $0
568 2961 mdecorde
FunctionEnd
569 2961 mdecorde
570 2961 mdecorde
Function un.GetDrivesCallback
571 2961 mdecorde
	Push $0
572 2961 mdecorde
FunctionEnd