Statistiques
| Révision :

root / tmp / org.txm.setups / nsis / Examples / FileFuncTest.nsi @ 3117

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

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