WordFuncTest.nsi 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. ;_____________________________________________________________________________
  2. ;
  3. ; Word Functions Test
  4. ;_____________________________________________________________________________
  5. ;
  6. ; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
  7. Name "Word Functions Test"
  8. OutFile "WordFuncTest.exe"
  9. Caption "$(^Name)"
  10. ShowInstDetails show
  11. XPStyle on
  12. RequestExecutionLevel user
  13. Var FUNCTION
  14. Var OUT
  15. !include "WordFunc.nsh"
  16. ;############### INSTALL ###############
  17. !define StackVerificationStart `!insertmacro StackVerificationStart`
  18. !macro StackVerificationStart _FUNCTION
  19. StrCpy $FUNCTION ${_FUNCTION}
  20. Call StackVerificationStart
  21. !macroend
  22. !define StackVerificationEnd `!insertmacro StackVerificationEnd`
  23. !macro StackVerificationEnd
  24. Call StackVerificationEnd
  25. !macroend
  26. Function StackVerificationStart
  27. StrCpy $0 !0
  28. StrCpy $1 !1
  29. StrCpy $2 !2
  30. StrCpy $3 !3
  31. StrCpy $4 !4
  32. StrCpy $5 !5
  33. StrCpy $6 !6
  34. StrCpy $7 !7
  35. StrCpy $8 !8
  36. StrCpy $9 !9
  37. StrCpy $R0 !R0
  38. StrCpy $R1 !R1
  39. StrCpy $R2 !R2
  40. StrCpy $R3 !R3
  41. StrCpy $R4 !R4
  42. StrCpy $R5 !R5
  43. StrCpy $R6 !R6
  44. StrCpy $R7 !R7
  45. StrCpy $R8 !R8
  46. StrCpy $R9 !R9
  47. FunctionEnd
  48. Function StackVerificationEnd
  49. IfErrors +3
  50. DetailPrint 'PASSED $FUNCTION no errors'
  51. goto +2
  52. DetailPrint 'FAILED $FUNCTION error'
  53. StrCmp $0 '!0' 0 error
  54. StrCmp $1 '!1' 0 error
  55. StrCmp $2 '!2' 0 error
  56. StrCmp $3 '!3' 0 error
  57. StrCmp $4 '!4' 0 error
  58. StrCmp $5 '!5' 0 error
  59. StrCmp $6 '!6' 0 error
  60. StrCmp $7 '!7' 0 error
  61. StrCmp $8 '!8' 0 error
  62. StrCmp $9 '!9' 0 error
  63. StrCmp $R0 '!R0' 0 error
  64. StrCmp $R1 '!R1' 0 error
  65. StrCmp $R2 '!R2' 0 error
  66. StrCmp $R3 '!R3' 0 error
  67. StrCmp $R4 '!R4' 0 error
  68. StrCmp $R5 '!R5' 0 error
  69. StrCmp $R6 '!R6' 0 error
  70. StrCmp $R7 '!R7' 0 error
  71. StrCmp $R8 '!R8' 0 error
  72. StrCmp $R9 '!R9' 0 error
  73. DetailPrint 'PASSED $FUNCTION stack'
  74. goto end
  75. error:
  76. DetailPrint 'FAILED $FUNCTION stack'
  77. ; 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
  78. ; quit
  79. end:
  80. FunctionEnd
  81. Section WordFind
  82. ${StackVerificationStart} WordFind
  83. ${WordFind} '||io.sys|||Program Files|||WINDOWS' '||' '-02' $OUT
  84. StrCmp $OUT '|Program Files' 0 error
  85. ${WordFind} '||io.sys||||Program Files||||WINDOWS' '||' '-2' $OUT
  86. StrCmp $OUT 'Program Files' 0 error
  87. ${WordFind} 'C:\io.sys|||logo.sys|||WINDOWS' '||' '-2}' $OUT
  88. StrCmp $OUT '|logo.sys|||WINDOWS' 0 error
  89. ${WordFind} 'C:\io.sys|||logo.sys|||WINDOWS' '||' '#' $OUT
  90. StrCmp $OUT '3' 0 error
  91. ${WordFind} 'C:\io.sys|||logo.sys|||WINDOWS' '||' '*' $OUT
  92. StrCmp $OUT '2' 0 error
  93. ${WordFind} 'C:\io.sys|||Program Files|||WINDOWS' '||' '/|Program Files' $OUT
  94. StrCmp $OUT '2' 0 error
  95. ${WordFind} 'C:\io.sys|||logo.sys|||WINDOWS' '||' '+2}}' $OUT
  96. StrCmp $OUT '|||WINDOWS' 0 error
  97. ${WordFind} 'C:\io.sys|||logo.sys|||WINDOWS' '||' '+2{}' $OUT
  98. StrCmp $OUT 'C:\io.sys|||WINDOWS' 0 error
  99. ${WordFind} 'C:\io.sys|||logo.sys|||WINDOWS' '||' '+2*}' $OUT
  100. StrCmp $OUT '|logo.sys|||WINDOWS' 0 error
  101. ${WordFind} 'C:\\Program Files\\NSIS\\NSIS.chm' '\' '-2{*' $OUT
  102. StrCmp $OUT 'C:\\Program Files\\NSIS' 0 error
  103. ${WordFind} 'C:\io.sys|||Program Files|||WINDOWS|||' '||' '-1' $OUT
  104. StrCmp $OUT '|' 0 error
  105. ${WordFind} '||C:\io.sys|||logo.sys|||WINDOWS||' '||' '-1}' $OUT
  106. StrCmp $OUT '' 0 error
  107. ${WordFind} '||C:\io.sys|||logo.sys|||WINDOWS||' '||' '+1{' $OUT
  108. StrCmp $OUT '' 0 error
  109. ${WordFind} 'C:\io.sys|||logo.sys' '_' 'E+1' $OUT
  110. IfErrors 0 error
  111. StrCmp $OUT 1 0 error
  112. ${WordFind} 'C:\io.sys|||logo.sys|||' '\' 'E+3' $OUT
  113. IfErrors 0 error
  114. StrCmp $OUT 2 0 error
  115. ${WordFind} 'C:\io.sys|||logo.sys' '\' 'E1' $OUT
  116. IfErrors 0 error
  117. StrCmp $OUT 3 0 error
  118. goto +2
  119. error:
  120. SetErrors
  121. ${StackVerificationEnd}
  122. SectionEnd
  123. Section WordFindS
  124. ${StackVerificationStart} WordFindS
  125. ${WordFindS} 'C:\io.sys|||Program Files|||WINDOWS' '||' '/|PROGRAM FILES' $OUT
  126. StrCmp $OUT 'C:\io.sys|||Program Files|||WINDOWS' 0 error
  127. ${WordFindS} 'C:\io.sys|||Program Files|||WINDOWS' '||' '/|Program Files' $OUT
  128. StrCmp $OUT '2' 0 error
  129. goto +2
  130. error:
  131. SetErrors
  132. ${StackVerificationEnd}
  133. SectionEnd
  134. Section WordFind2X
  135. ${StackVerificationStart} WordFind2X
  136. ${WordFind2X} '[C:\io.sys];[C:\logo.sys];[C:\WINDOWS]' '[C:\' '];' '+2' $OUT
  137. StrCmp $OUT 'logo.sys' 0 error
  138. ${WordFind2X} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '-1' $OUT
  139. StrCmp $OUT 'logo' 0 error
  140. ${WordFind2X} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '-1{{' $OUT
  141. StrCmp $OUT 'C:\WINDOWS C:\io.sys C:' 0 error
  142. ${WordFind2X} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '-1{}' $OUT
  143. StrCmp $OUT 'C:\WINDOWS C:\io.sys C:sys' 0 error
  144. ${WordFind2X} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '-1{*' $OUT
  145. StrCmp $OUT 'C:\WINDOWS C:\io.sys C:\logo.' 0 error
  146. ${WordFind2X} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '/logo' $OUT
  147. StrCmp $OUT '2' 0 error
  148. ${WordFind2X} '||a||b||c' '||' '||' 'E+1' $OUT
  149. StrCmp $OUT 'a' 0 error
  150. ${WordFind2X} '[io.sys];[C:\logo.sys]' '\' '];' 'E+1' $OUT
  151. IfErrors 0 error
  152. StrCmp $OUT 1 0 error
  153. ${WordFind2X} '[io.sys];[C:\logo.sys]' '[' '];' 'E+2' $OUT
  154. IfErrors 0 error
  155. StrCmp $OUT 2 0 error
  156. ${WordFind2X} '[io.sys];[C:\logo.sys]' '\' '];' 'E2' $OUT
  157. IfErrors 0 error
  158. StrCmp $OUT 3 0 error
  159. goto +2
  160. error:
  161. SetErrors
  162. ${StackVerificationEnd}
  163. SectionEnd
  164. Section WordFind2XS
  165. ${StackVerificationStart} WordFind2XS
  166. ${WordFind2XS} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '/LOGO' $OUT
  167. StrCmp $OUT 'C:\WINDOWS C:\io.sys C:\logo.sys' 0 error
  168. ${WordFind2XS} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '/logo' $OUT
  169. StrCmp $OUT '2' 0 error
  170. goto +2
  171. error:
  172. SetErrors
  173. ${StackVerificationEnd}
  174. SectionEnd
  175. Section WordFind3X
  176. ${StackVerificationStart} WordFind3X
  177. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '+1' $OUT
  178. StrCmp $OUT '1.AAB' 0 error
  179. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '-1' $OUT
  180. StrCmp $OUT '2.BAA' 0 error
  181. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '-1{{' $OUT
  182. StrCmp $OUT '[1.AAB];' 0 error
  183. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '-1{}' $OUT
  184. StrCmp $OUT '[1.AAB];[3.BBB];' 0 error
  185. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '-1{*' $OUT
  186. StrCmp $OUT '[1.AAB];[2.BAA];' 0 error
  187. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '/2.BAA' $OUT
  188. StrCmp $OUT '2' 0 error
  189. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'XX' '];' 'E+1' $OUT
  190. IfErrors 0 error
  191. StrCmp $OUT '1' 0 error
  192. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' 'E+3' $OUT
  193. IfErrors 0 error
  194. StrCmp $OUT '2' 0 error
  195. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' 'E3' $OUT
  196. IfErrors 0 error
  197. StrCmp $OUT '3' 0 error
  198. goto +2
  199. error:
  200. SetErrors
  201. ${StackVerificationEnd}
  202. SectionEnd
  203. Section WordFind3XS
  204. ${StackVerificationStart} WordFind3XS
  205. ${WordFind3XS} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '/2.baa' $OUT
  206. StrCmp $OUT '[1.AAB];[2.BAA];[3.BBB];' 0 error
  207. ${WordFind3XS} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '/2.BAA' $OUT
  208. StrCmp $OUT '2' 0 error
  209. goto +2
  210. error:
  211. SetErrors
  212. ${StackVerificationEnd}
  213. SectionEnd
  214. Section WordReplace
  215. ${StackVerificationStart} WordReplace
  216. ${WordReplace} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' 'bmp' '+2' $OUT
  217. StrCmp $OUT 'C:\io.sys C:\logo.bmp C:\WINDOWS' 0 error
  218. ${WordReplace} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' '' '+' $OUT
  219. StrCmp $OUT 'C:\io. C:\logo. C:\WINDOWS' 0 error
  220. ${WordReplace} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'C:\io.sys' '' '+' $OUT
  221. StrCmp $OUT ' C:\logo.sys C:\WINDOWS' 0 error
  222. ${WordReplace} 'C:\io.sys C:\logo.sys C:\WINDOWS' ' ' ' ' '+1*' $OUT
  223. StrCmp $OUT 'C:\io.sys C:\logo.sys C:\WINDOWS' 0 error
  224. ${WordReplace} 'C:\io.sys C:\logo.sysSYSsys C:\WINDOWS' 'sys' 'bmp' '+*' $OUT
  225. StrCmp $OUT 'C:\io.bmp C:\logo.bmp C:\WINDOWS' 0 error
  226. ${WordReplace} 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 'sys' '|' '{' $OUT
  227. StrCmp $OUT '||C:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 0 error
  228. ${WordReplace} 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 'sys' '|' '}' $OUT
  229. StrCmp $OUT 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWS|||' 0 error
  230. ${WordReplace} 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 'sys' '|' '{}' $OUT
  231. StrCmp $OUT '||C:\io.sys C:\logo.sys C:\WINDOWS|||' 0 error
  232. ${WordReplace} 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 'sys' '|' '{*' $OUT
  233. StrCmp $OUT '|C:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 0 error
  234. ${WordReplace} 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 'sys' '|' '}*' $OUT
  235. StrCmp $OUT 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWS|' 0 error
  236. ${WordReplace} 'SYSsysC:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 'sys' '|' '{}*' $OUT
  237. StrCmp $OUT '|C:\io.sys C:\logo.sys C:\WINDOWS|' 0 error
  238. ${WordReplace} 'sysSYSsysC:\io.sys C:\logo.sys C:\WINDOWSsysSYSsys' 'sys' '|' '{}*' $OUT
  239. StrCmp $OUT '|C:\io.sys C:\logo.sys C:\WINDOWS|' 0 error
  240. ${WordReplace} 'C:\io.sys C:\logo.sys' '#sys' '|sys|' 'E+1' $OUT
  241. IfErrors 0 error
  242. StrCmp $OUT '1' 0 error
  243. ${WordReplace} 'C:\io.sys C:\logo.sys' '.sys' '|sys|' 'E+3' $OUT
  244. IfErrors 0 error
  245. StrCmp $OUT '2' 0 error
  246. ${WordReplace} 'C:\io.sys C:\logo.sys' '.sys' '|sys|' 'E3' $OUT
  247. IfErrors 0 error
  248. StrCmp $OUT '3' 0 error
  249. goto +2
  250. error:
  251. SetErrors
  252. ${StackVerificationEnd}
  253. SectionEnd
  254. Section WordReplaceS
  255. ${StackVerificationStart} WordReplaceS
  256. ${WordReplaceS} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' 'bmp' '+2' $OUT
  257. StrCmp $OUT 'C:\io.sys C:\logo.sys C:\WINDOWS' 0 error
  258. ${WordReplaceS} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'sys' 'bmp' '+2' $OUT
  259. StrCmp $OUT 'C:\io.sys C:\logo.bmp C:\WINDOWS' 0 error
  260. goto +2
  261. error:
  262. SetErrors
  263. ${StackVerificationEnd}
  264. SectionEnd
  265. Section WordAdd
  266. ${StackVerificationStart} WordAdd
  267. ${WordAdd} 'C:\io.sys C:\WINDOWS' ' ' '+C:\WINDOWS C:\config.sys' $OUT
  268. StrCmp $OUT 'C:\io.sys C:\WINDOWS C:\config.sys' 0 error
  269. ${WordAdd} 'C:\io.sys C:\logo.sys C:\WINDOWS' ' ' '-C:\WINDOWS C:\config.sys C:\IO.SYS' $OUT
  270. StrCmp $OUT 'C:\logo.sys' 0 error
  271. ${WordAdd} 'C:\io.sys' ' ' '+C:\WINDOWS C:\config.sys C:\IO.SYS' $OUT
  272. StrCmp $OUT 'C:\io.sys C:\WINDOWS C:\config.sys' 0 error
  273. ${WordAdd} 'C:\io.sys C:\logo.sys C:\WINDOWS' ' ' '-C:\WINDOWS' $OUT
  274. StrCmp $OUT 'C:\io.sys C:\logo.sys' 0 error
  275. ${WordAdd} 'C:\io.sys C:\logo.sys' ' ' '+C:\logo.sys' $OUT
  276. StrCmp $OUT 'C:\io.sys C:\logo.sys' 0 error
  277. ${WordAdd} 'C:\io.sys C:\logo.sys' ' ' 'E-' $OUT
  278. StrCmp $OUT 'C:\io.sys C:\logo.sys' 0 error
  279. IfErrors error
  280. ${WordAdd} 'C:\io.sys C:\logo.sys' '' 'E-C:\logo.sys' $OUT
  281. IfErrors 0 error
  282. StrCmp $OUT '1' 0 error
  283. ${WordAdd} 'C:\io.sys C:\logo.sys' '' 'EC:\logo.sys' $OUT
  284. IfErrors 0 error
  285. StrCmp $OUT '3' 0 error
  286. goto +2
  287. error:
  288. SetErrors
  289. ${StackVerificationEnd}
  290. SectionEnd
  291. Section WordAddS
  292. ${StackVerificationStart} WordAddS
  293. ${WordAddS} 'C:\io.sys C:\WINDOWS' ' ' '+C:\windows C:\config.sys' $OUT
  294. StrCmp $OUT 'C:\io.sys C:\WINDOWS C:\windows C:\config.sys' 0 error
  295. ${WordAddS} 'C:\io.sys C:\WINDOWS' ' ' '+C:\WINDOWS C:\config.sys' $OUT
  296. StrCmp $OUT 'C:\io.sys C:\WINDOWS C:\config.sys' 0 error
  297. goto +2
  298. error:
  299. SetErrors
  300. ${StackVerificationEnd}
  301. SectionEnd
  302. Section WordInsert
  303. ${StackVerificationStart} WordInsert
  304. ${WordInsert} 'C:\io.sys C:\WINDOWS' ' ' 'C:\logo.sys' '-2' $OUT
  305. StrCmp $OUT 'C:\io.sys C:\logo.sys C:\WINDOWS' 0 error
  306. ${WordInsert} 'C:\io.sys' ' ' 'C:\WINDOWS' '+2' $OUT
  307. StrCmp $OUT 'C:\io.sys C:\WINDOWS' 0 error
  308. ${WordInsert} '' ' ' 'C:\WINDOWS' '+1' $OUT
  309. StrCmp $OUT 'C:\WINDOWS ' 0 error
  310. ${WordInsert} 'C:\io.sys C:\logo.sys' '' 'C:\logo.sys' 'E+1' $OUT
  311. IfErrors 0 error
  312. StrCmp $OUT '1' 0 error
  313. ${WordInsert} 'C:\io.sys C:\logo.sys' ' ' 'C:\logo.sys' 'E+4' $OUT
  314. IfErrors 0 error
  315. StrCmp $OUT '2' 0 error
  316. ${WordInsert} 'C:\io.sys C:\logo.sys' '' 'C:\logo.sys' 'E1' $OUT
  317. IfErrors 0 error
  318. StrCmp $OUT '3' 0 error
  319. goto +2
  320. error:
  321. SetErrors
  322. ${StackVerificationEnd}
  323. SectionEnd
  324. Section WordInsertS
  325. ${StackVerificationStart} WordInsertS
  326. ${WordInsertS} 'C:\io.sys x C:\logo.sys' ' X ' 'C:\NTLDR' '+2' $OUT
  327. StrCmp $OUT 'C:\io.sys x C:\logo.sys X C:\NTLDR' 0 error
  328. ${WordInsertS} 'C:\io.sys x C:\logo.sys' ' x ' 'C:\NTLDR' '+2' $OUT
  329. StrCmp $OUT 'C:\io.sys x C:\NTLDR x C:\logo.sys' 0 error
  330. goto +2
  331. error:
  332. SetErrors
  333. ${StackVerificationEnd}
  334. SectionEnd
  335. Section StrFilter
  336. ${StackVerificationStart} StrFilter
  337. ${StrFilter} '123abc 456DEF 7890|%#' '+' '' '' $OUT
  338. IfErrors error
  339. StrCmp $OUT '123ABC 456DEF 7890|%#' 0 error
  340. ${StrFilter} '123abc 456DEF 7890|%#' '-' 'ef' '' $OUT
  341. IfErrors error
  342. StrCmp $OUT '123abc 456dEF 7890|%#' 0 error
  343. ${StrFilter} '123abc 456DEF 7890|%#' '2' '|%' '' $OUT
  344. IfErrors error
  345. StrCmp $OUT 'abcDEF|%' 0 error
  346. ${StrFilter} '123abc 456DEF 7890|%#' '13' 'af' '4590' $OUT
  347. IfErrors error
  348. StrCmp $OUT '123a 6F 78|%#' 0 error
  349. ${StrFilter} '123abc 456DEF 7890|%#' '+12' 'b' 'def' $OUT
  350. IfErrors error
  351. StrCmp $OUT '123AbC4567890' 0 error
  352. ${StrFilter} '123abc 456DEF 7890|%#' '+12' 'b' 'def' $OUT
  353. IfErrors error
  354. StrCmp $OUT '123AbC4567890' 0 error
  355. ${StrFilter} '123abc 456DEF 7890|%#' '123' 'b' 'def' $OUT
  356. IfErrors 0 error
  357. goto +2
  358. error:
  359. SetErrors
  360. ${StackVerificationEnd}
  361. SectionEnd
  362. Section StrFilterS
  363. ${StackVerificationStart} StrFilterS
  364. ${StrFilterS} '123abc 456DEF 7890|%#' '13' 'af' '4590' $OUT
  365. IfErrors error
  366. StrCmp $OUT '123a 6 78|%#' 0 error
  367. goto +2
  368. error:
  369. SetErrors
  370. ${StackVerificationEnd}
  371. SectionEnd
  372. Section VersionCompare
  373. ${StackVerificationStart} VersionCompare
  374. ${VersionCompare} '1.1.1.9' '1.1.1.01' $OUT
  375. StrCmp $OUT '1' 0 error
  376. ${VersionCompare} '1.1.1.1' '1.1.1.10' $OUT
  377. StrCmp $OUT '2' 0 error
  378. ${VersionCompare} '91.1.1.1' '101.1.1.9' $OUT
  379. StrCmp $OUT '2' 0 error
  380. ${VersionCompare} '1.1.1.1' '1.1.1.1' $OUT
  381. StrCmp $OUT '0' 0 error
  382. ${VersionCompare} '1.1.1.9' '1.1.1.10' $OUT
  383. StrCmp $OUT '2' 0 error
  384. ${VersionCompare} '1.1.1.0' '1.1.1' $OUT
  385. StrCmp $OUT '0' 0 error
  386. ${VersionCompare} '1.1.0.0' '1.1' $OUT
  387. StrCmp $OUT '0' 0 error
  388. goto +2
  389. error:
  390. SetErrors
  391. ${StackVerificationEnd}
  392. SectionEnd
  393. Section VersionConvert
  394. ${StackVerificationStart} VersionConvert
  395. ${VersionConvert} '9.0a' '' $OUT
  396. StrCmp $OUT '9.0.01' 0 error
  397. ${VersionConvert} '9.0c' '' $OUT
  398. StrCmp $OUT '9.0.03' 0 error
  399. ${VersionConvert} '0.15c-9m' '' $OUT
  400. StrCmp $OUT '0.15.03.9.13' 0 error
  401. ${VersionConvert} '0.15c+' 'abcdefghijklmnopqrstuvwxyz+' $OUT
  402. StrCmp $OUT '0.15.0327' 0 error
  403. ${VersionConvert} '0.0xa12.x.ax|.|.|x|a|.3|a.4.||5.|' '' $OUT
  404. StrCmp $OUT '0.0.2401.12.24.0124.24.01.3.01.4.5' 0 error
  405. goto +2
  406. error:
  407. SetErrors
  408. ${StackVerificationEnd}
  409. SectionEnd
  410. Section WriteUninstaller
  411. goto +2
  412. WriteUninstaller '$EXEDIR\un.WordFuncTest.exe'
  413. SectionEnd
  414. ;############### UNINSTALL ###############
  415. Section un.Uninstall
  416. ${WordFind} 'C:\io.sys C:\Program Files C:\WINDOWS' ' C:\' '-02' $OUT
  417. ${WordFindS} 'C:\io.sys C:\Program Files C:\WINDOWS' ' C:\' '-02' $OUT
  418. ${WordFind2X} '[C:\io.sys];[C:\logo.sys];[C:\WINDOWS]' '[C:\' '];' '+2' $OUT
  419. ${WordFind2XS} '[C:\io.sys];[C:\logo.sys];[C:\WINDOWS]' '[C:\' '];' '+2' $OUT
  420. ${WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '+1' $OUT
  421. ${WordFind3XS} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '+1' $OUT
  422. ${WordReplace} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' 'bmp' '+2' $OUT
  423. ${WordReplaceS} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' 'bmp' '+2' $OUT
  424. ${WordAdd} 'C:\io.sys C:\WINDOWS' ' ' '+C:\WINDOWS C:\config.sys' $OUT
  425. ${WordAddS} 'C:\io.sys C:\WINDOWS' ' ' '+C:\WINDOWS C:\config.sys' $OUT
  426. ${WordInsert} 'C:\io.sys C:\WINDOWS' ' ' 'C:\logo.sys' '-2' $OUT
  427. ${WordInsertS} 'C:\io.sys C:\WINDOWS' ' ' 'C:\logo.sys' '-2' $OUT
  428. ${StrFilter} '123abc 456DEF 7890|%#' '+' '' '' $OUT
  429. ${StrFilterS} '123abc 456DEF 7890|%#' '+' '' '' $OUT
  430. ${VersionCompare} '1.1.1.9' '1.1.1.01' $OUT
  431. ${VersionConvert} '9.0a' '' $OUT
  432. SectionEnd