root / tmp / org.txm.setups / nsis-2.5 / Include / Memento.nsh @ 3100
Historique | Voir | Annoter | Télécharger (10,38 ko)
1 | 2961 | mdecorde | !verbose push |
---|---|---|---|
2 | 2961 | mdecorde | !verbose 3 |
3 | 2961 | mdecorde | |
4 | 2961 | mdecorde | !include LogicLib.nsh |
5 | 2961 | mdecorde | !include Sections.nsh |
6 | 2961 | mdecorde | |
7 | 2961 | mdecorde | !ifndef ___MEMENTO_NSH___ |
8 | 2961 | mdecorde | !define ___MEMENTO_NSH___ |
9 | 2961 | mdecorde | |
10 | 2961 | mdecorde | ##################################### |
11 | 2961 | mdecorde | ### Memento ### |
12 | 2961 | mdecorde | ##################################### |
13 | 2961 | mdecorde | |
14 | 2961 | mdecorde | /* |
15 | 2961 | mdecorde | |
16 | 2961 | mdecorde | Memento is a set of macros that allow installers to remember user selection |
17 | 2961 | mdecorde | across separate runs of the installer. Currently, it can remember the state |
18 | 2961 | mdecorde | of sections and mark new sections as bold. In the future, it'll integrate |
19 | 2961 | mdecorde | InstallOptions and maybe even the Modern UI. |
20 | 2961 | mdecorde | |
21 | 2961 | mdecorde | A usage example can be found in `Examples\Memento.nsi`. |
22 | 2961 | mdecorde | |
23 | 2961 | mdecorde | */ |
24 | 2961 | mdecorde | |
25 | 2961 | mdecorde | ##################################### |
26 | 2961 | mdecorde | ### Usage Instructions ### |
27 | 2961 | mdecorde | ##################################### |
28 | 2961 | mdecorde | |
29 | 2961 | mdecorde | /* |
30 | 2961 | mdecorde | |
31 | 2961 | mdecorde | 1. Declare usage of Memento by including Memento.nsh at the top of the script. |
32 | 2961 | mdecorde | |
33 | 2961 | mdecorde | !include Memento.nsh |
34 | 2961 | mdecorde | |
35 | 2961 | mdecorde | 2. Define MEMENTO_REGISTRY_ROOT and MEMENTO_REGISTRY_KEY with the a registry key |
36 | 2961 | mdecorde | where sections' state should be saved. |
37 | 2961 | mdecorde | |
38 | 2961 | mdecorde | !define MEMENTO_REGISTRY_ROOT HKLM |
39 | 2961 | mdecorde | !define MEMENTO_REGISTRY_KEY \ |
40 | 2961 | mdecorde | Software\Microsoft\Windows\CurrentVersion\Uninstall\MyProgram |
41 | 2961 | mdecorde | |
42 | 2961 | mdecorde | 3. Replace Section with ${MementoSection} and SectionEnd with ${MementoSectionEnd} |
43 | 2961 | mdecorde | for sections that whose state should be remembered by Memento. |
44 | 2961 | mdecorde | |
45 | 2961 | mdecorde | For sections that should be unselected by default, use ${MementoSection}'s |
46 | 2961 | mdecorde | brother - ${MementoUnselectedSection}. |
47 | 2961 | mdecorde | |
48 | 2961 | mdecorde | Sections that don't already have an identifier must be assigned one. |
49 | 2961 | mdecorde | |
50 | 2961 | mdecorde | Section identifiers must stay the same across different versions of the |
51 | 2961 | mdecorde | installer or their state will be forgotten. |
52 | 2961 | mdecorde | |
53 | 2961 | mdecorde | 4. Use ${MementoSectionDone} after the last ${MementoSection}. |
54 | 2961 | mdecorde | |
55 | 2961 | mdecorde | 5. Add a call to ${MementoSectionRestore} to .onInit to restore the state |
56 | 2961 | mdecorde | of all sections from the registry. |
57 | 2961 | mdecorde | |
58 | 2961 | mdecorde | Function .onInit |
59 | 2961 | mdecorde | |
60 | 2961 | mdecorde | ${MementoSectionRestore} |
61 | 2961 | mdecorde | |
62 | 2961 | mdecorde | FunctionEnd |
63 | 2961 | mdecorde | |
64 | 2961 | mdecorde | 6. Add a call to ${MementoSectionSave} to .onInstSuccess to save the state |
65 | 2961 | mdecorde | of all sections to the registry. |
66 | 2961 | mdecorde | |
67 | 2961 | mdecorde | Function .onInstSuccess |
68 | 2961 | mdecorde | |
69 | 2961 | mdecorde | ${MementoSectionSave} |
70 | 2961 | mdecorde | |
71 | 2961 | mdecorde | FunctionEnd |
72 | 2961 | mdecorde | |
73 | 2961 | mdecorde | 7. Tattoo the location of the chosen registry key on your arm. |
74 | 2961 | mdecorde | |
75 | 2961 | mdecorde | */ |
76 | 2961 | mdecorde | |
77 | 2961 | mdecorde | ##################################### |
78 | 2961 | mdecorde | ### User API ### |
79 | 2961 | mdecorde | ##################################### |
80 | 2961 | mdecorde | |
81 | 2961 | mdecorde | ; |
82 | 2961 | mdecorde | ; ${MementoSection} |
83 | 2961 | mdecorde | ; |
84 | 2961 | mdecorde | ; Defines a section whose state is remembered by Memento. |
85 | 2961 | mdecorde | ; |
86 | 2961 | mdecorde | ; Usage is similar to Section. |
87 | 2961 | mdecorde | ; |
88 | 2961 | mdecorde | ; ${MementoSection} "name" "some_id" |
89 | 2961 | mdecorde | ; |
90 | 2961 | mdecorde | |
91 | 2961 | mdecorde | !define MementoSection "!insertmacro MementoSection" |
92 | 2961 | mdecorde | |
93 | 2961 | mdecorde | ; |
94 | 2961 | mdecorde | ; ${MementoSectionEnd} |
95 | 2961 | mdecorde | ; |
96 | 2961 | mdecorde | ; Ends a section previously opened using ${MementoSection}. |
97 | 2961 | mdecorde | ; |
98 | 2961 | mdecorde | ; Usage is similar to SectionEnd. |
99 | 2961 | mdecorde | ; |
100 | 2961 | mdecorde | ; ${MementoSection} "name" "some_id" |
101 | 2961 | mdecorde | ; # some code... |
102 | 2961 | mdecorde | ; ${MementoSectionEnd} |
103 | 2961 | mdecorde | ; |
104 | 2961 | mdecorde | |
105 | 2961 | mdecorde | ; |
106 | 2961 | mdecorde | ; ${MementoUnselectedSection} |
107 | 2961 | mdecorde | ; |
108 | 2961 | mdecorde | ; Defines a section whose state is remembered by Memento and is |
109 | 2961 | mdecorde | ; unselected by default. |
110 | 2961 | mdecorde | ; |
111 | 2961 | mdecorde | ; Usage is similar to Section with the /o switch. |
112 | 2961 | mdecorde | ; |
113 | 2961 | mdecorde | ; ${MementoUnselectedSection} "name" "some_id" |
114 | 2961 | mdecorde | ; |
115 | 2961 | mdecorde | |
116 | 2961 | mdecorde | !define MementoUnselectedSection "!insertmacro MementoUnselectedSection" |
117 | 2961 | mdecorde | |
118 | 2961 | mdecorde | ; |
119 | 2961 | mdecorde | ; ${MementoSectionEnd} |
120 | 2961 | mdecorde | ; |
121 | 2961 | mdecorde | ; Ends a section previously opened using ${MementoSection}. |
122 | 2961 | mdecorde | ; |
123 | 2961 | mdecorde | ; Usage is similar to SectionEnd. |
124 | 2961 | mdecorde | ; |
125 | 2961 | mdecorde | ; ${MementoSection} "name" "some_id" |
126 | 2961 | mdecorde | ; # some code... |
127 | 2961 | mdecorde | ; ${MementoSectionEnd} |
128 | 2961 | mdecorde | ; |
129 | 2961 | mdecorde | |
130 | 2961 | mdecorde | !define MementoSectionEnd "!insertmacro MementoSectionEnd" |
131 | 2961 | mdecorde | |
132 | 2961 | mdecorde | ; |
133 | 2961 | mdecorde | ; ${MementoSectionDone} |
134 | 2961 | mdecorde | ; |
135 | 2961 | mdecorde | ; Used after all ${MementoSection} have been set. |
136 | 2961 | mdecorde | ; |
137 | 2961 | mdecorde | ; ${MementoSection} "name1" "some_id1" |
138 | 2961 | mdecorde | ; # some code... |
139 | 2961 | mdecorde | ; ${MementoSectionEnd} |
140 | 2961 | mdecorde | ; |
141 | 2961 | mdecorde | ; ${MementoSection} "name2" "some_id2" |
142 | 2961 | mdecorde | ; # some code... |
143 | 2961 | mdecorde | ; ${MementoSectionEnd} |
144 | 2961 | mdecorde | ; |
145 | 2961 | mdecorde | ; ${MementoSection} "name3" "some_id3" |
146 | 2961 | mdecorde | ; # some code... |
147 | 2961 | mdecorde | ; ${MementoSectionEnd} |
148 | 2961 | mdecorde | ; |
149 | 2961 | mdecorde | ; ${MementoSectionDone} |
150 | 2961 | mdecorde | ; |
151 | 2961 | mdecorde | |
152 | 2961 | mdecorde | !define MementoSectionDone "!insertmacro MementoSectionDone" |
153 | 2961 | mdecorde | |
154 | 2961 | mdecorde | ; |
155 | 2961 | mdecorde | ; ${MementoSectionRestore} |
156 | 2961 | mdecorde | ; |
157 | 2961 | mdecorde | ; Restores the state of all Memento sections from the registry. |
158 | 2961 | mdecorde | ; |
159 | 2961 | mdecorde | ; Commonly used in .onInit. |
160 | 2961 | mdecorde | ; |
161 | 2961 | mdecorde | ; Function .onInit |
162 | 2961 | mdecorde | ; |
163 | 2961 | mdecorde | ; ${MementoSectionRestore} |
164 | 2961 | mdecorde | ; |
165 | 2961 | mdecorde | ; FunctionEnd |
166 | 2961 | mdecorde | ; |
167 | 2961 | mdecorde | |
168 | 2961 | mdecorde | !define MementoSectionRestore "!insertmacro MementoSectionRestore" |
169 | 2961 | mdecorde | |
170 | 2961 | mdecorde | ; |
171 | 2961 | mdecorde | ; ${MementoSectionSave} |
172 | 2961 | mdecorde | ; |
173 | 2961 | mdecorde | ; Saves the state of all Memento sections to the registry. |
174 | 2961 | mdecorde | ; |
175 | 2961 | mdecorde | ; Commonly used in .onInstSuccess. |
176 | 2961 | mdecorde | ; |
177 | 2961 | mdecorde | ; Function .onInstSuccess |
178 | 2961 | mdecorde | ; |
179 | 2961 | mdecorde | ; ${MementoSectionSave} |
180 | 2961 | mdecorde | ; |
181 | 2961 | mdecorde | ; FunctionEnd |
182 | 2961 | mdecorde | ; |
183 | 2961 | mdecorde | |
184 | 2961 | mdecorde | !define MementoSectionSave "!insertmacro MementoSectionSave" |
185 | 2961 | mdecorde | |
186 | 2961 | mdecorde | |
187 | 2961 | mdecorde | ##################################### |
188 | 2961 | mdecorde | ### Internal Defines ### |
189 | 2961 | mdecorde | ##################################### |
190 | 2961 | mdecorde | |
191 | 2961 | mdecorde | !define __MementoSectionIndex 1 |
192 | 2961 | mdecorde | |
193 | 2961 | mdecorde | ##################################### |
194 | 2961 | mdecorde | ### Internal Macros ### |
195 | 2961 | mdecorde | ##################################### |
196 | 2961 | mdecorde | |
197 | 2961 | mdecorde | !macro __MementoCheckSettings |
198 | 2961 | mdecorde | |
199 | 2961 | mdecorde | !ifndef MEMENTO_REGISTRY_ROOT | MEMENTO_REGISTRY_KEY |
200 | 2961 | mdecorde | |
201 | 2961 | mdecorde | !error "MEMENTO_REGISTRY_ROOT and MEMENTO_REGISTRY_KEY must be defined before using any of Memento's macros" |
202 | 2961 | mdecorde | |
203 | 2961 | mdecorde | !endif |
204 | 2961 | mdecorde | |
205 | 2961 | mdecorde | !macroend |
206 | 2961 | mdecorde | |
207 | 2961 | mdecorde | !macro __MementoSection flags name id |
208 | 2961 | mdecorde | |
209 | 2961 | mdecorde | !insertmacro __MementoCheckSettings |
210 | 2961 | mdecorde | |
211 | 2961 | mdecorde | !ifndef __MementoSectionIndex |
212 | 2961 | mdecorde | |
213 | 2961 | mdecorde | !error "MementoSectionDone already used!" |
214 | 2961 | mdecorde | |
215 | 2961 | mdecorde | !endif |
216 | 2961 | mdecorde | |
217 | 2961 | mdecorde | !define __MementoSectionLastSectionId `${id}` |
218 | 2961 | mdecorde | |
219 | 2961 | mdecorde | !verbose pop |
220 | 2961 | mdecorde | |
221 | 2961 | mdecorde | Section ${flags} `${name}` `${id}` |
222 | 2961 | mdecorde | |
223 | 2961 | mdecorde | !verbose push |
224 | 2961 | mdecorde | !verbose 3 |
225 | 2961 | mdecorde | |
226 | 2961 | mdecorde | !macroend |
227 | 2961 | mdecorde | |
228 | 2961 | mdecorde | ##################################### |
229 | 2961 | mdecorde | ### User Macros ### |
230 | 2961 | mdecorde | ##################################### |
231 | 2961 | mdecorde | |
232 | 2961 | mdecorde | !macro MementoSection name id |
233 | 2961 | mdecorde | |
234 | 2961 | mdecorde | !verbose push |
235 | 2961 | mdecorde | !verbose 3 |
236 | 2961 | mdecorde | |
237 | 2961 | mdecorde | !insertmacro __MementoSection "" `${name}` `${id}` |
238 | 2961 | mdecorde | |
239 | 2961 | mdecorde | !verbose pop |
240 | 2961 | mdecorde | |
241 | 2961 | mdecorde | !macroend |
242 | 2961 | mdecorde | |
243 | 2961 | mdecorde | !macro MementoUnselectedSection name id |
244 | 2961 | mdecorde | |
245 | 2961 | mdecorde | !verbose push |
246 | 2961 | mdecorde | !verbose 3 |
247 | 2961 | mdecorde | |
248 | 2961 | mdecorde | !insertmacro __MementoSection /o `${name}` `${id}` |
249 | 2961 | mdecorde | |
250 | 2961 | mdecorde | !define __MementoSectionUnselected |
251 | 2961 | mdecorde | |
252 | 2961 | mdecorde | !verbose pop |
253 | 2961 | mdecorde | |
254 | 2961 | mdecorde | !macroend |
255 | 2961 | mdecorde | |
256 | 2961 | mdecorde | !macro MementoSectionEnd |
257 | 2961 | mdecorde | |
258 | 2961 | mdecorde | SectionEnd |
259 | 2961 | mdecorde | |
260 | 2961 | mdecorde | !verbose push |
261 | 2961 | mdecorde | !verbose 3 |
262 | 2961 | mdecorde | |
263 | 2961 | mdecorde | !insertmacro __MementoCheckSettings |
264 | 2961 | mdecorde | |
265 | 2961 | mdecorde | !ifndef __MementoSectionIndex |
266 | 2961 | mdecorde | |
267 | 2961 | mdecorde | !error "MementoSectionDone already used!" |
268 | 2961 | mdecorde | |
269 | 2961 | mdecorde | !endif |
270 | 2961 | mdecorde | |
271 | 2961 | mdecorde | !define /MATH __MementoSectionIndexNext \ |
272 | 2961 | mdecorde | ${__MementoSectionIndex} + 1 |
273 | 2961 | mdecorde | |
274 | 2961 | mdecorde | Function __MementoSectionMarkNew${__MementoSectionIndex} |
275 | 2961 | mdecorde | |
276 | 2961 | mdecorde | ClearErrors |
277 | 2961 | mdecorde | ReadRegDWORD $0 ${MEMENTO_REGISTRY_ROOT} `${MEMENTO_REGISTRY_KEY}` `MementoSection_${__MementoSectionLastSectionId}` |
278 | 2961 | mdecorde | |
279 | 2961 | mdecorde | ${If} ${Errors} |
280 | 2961 | mdecorde | |
281 | 2961 | mdecorde | !insertmacro SetSectionFlag `${${__MementoSectionLastSectionId}}` ${SF_BOLD} |
282 | 2961 | mdecorde | |
283 | 2961 | mdecorde | ${EndIf} |
284 | 2961 | mdecorde | |
285 | 2961 | mdecorde | GetFunctionAddress $0 __MementoSectionMarkNew${__MementoSectionIndexNext} |
286 | 2961 | mdecorde | Goto $0 |
287 | 2961 | mdecorde | |
288 | 2961 | mdecorde | FunctionEnd |
289 | 2961 | mdecorde | |
290 | 2961 | mdecorde | Function __MementoSectionRestoreStatus${__MementoSectionIndex} |
291 | 2961 | mdecorde | |
292 | 2961 | mdecorde | ClearErrors |
293 | 2961 | mdecorde | ReadRegDWORD $0 ${MEMENTO_REGISTRY_ROOT} `${MEMENTO_REGISTRY_KEY}` `MementoSection_${__MementoSectionLastSectionId}` |
294 | 2961 | mdecorde | |
295 | 2961 | mdecorde | !ifndef __MementoSectionUnselected |
296 | 2961 | mdecorde | |
297 | 2961 | mdecorde | ${If} ${Errors} |
298 | 2961 | mdecorde | ${OrIf} $0 != 0 |
299 | 2961 | mdecorde | |
300 | 2961 | mdecorde | !insertmacro SelectSection `${${__MementoSectionLastSectionId}}` |
301 | 2961 | mdecorde | |
302 | 2961 | mdecorde | ${Else} |
303 | 2961 | mdecorde | |
304 | 2961 | mdecorde | !insertmacro UnselectSection `${${__MementoSectionLastSectionId}}` |
305 | 2961 | mdecorde | |
306 | 2961 | mdecorde | ${EndIf} |
307 | 2961 | mdecorde | |
308 | 2961 | mdecorde | !else |
309 | 2961 | mdecorde | |
310 | 2961 | mdecorde | !undef __MementoSectionUnselected |
311 | 2961 | mdecorde | |
312 | 2961 | mdecorde | ${If} ${Errors} |
313 | 2961 | mdecorde | ${OrIf} $0 == 0 |
314 | 2961 | mdecorde | |
315 | 2961 | mdecorde | !insertmacro UnselectSection `${${__MementoSectionLastSectionId}}` |
316 | 2961 | mdecorde | |
317 | 2961 | mdecorde | ${Else} |
318 | 2961 | mdecorde | |
319 | 2961 | mdecorde | !insertmacro SelectSection `${${__MementoSectionLastSectionId}}` |
320 | 2961 | mdecorde | |
321 | 2961 | mdecorde | ${EndIf} |
322 | 2961 | mdecorde | |
323 | 2961 | mdecorde | !endif |
324 | 2961 | mdecorde | |
325 | 2961 | mdecorde | GetFunctionAddress $0 __MementoSectionRestoreStatus${__MementoSectionIndexNext} |
326 | 2961 | mdecorde | Goto $0 |
327 | 2961 | mdecorde | |
328 | 2961 | mdecorde | FunctionEnd |
329 | 2961 | mdecorde | |
330 | 2961 | mdecorde | Function __MementoSectionSaveStatus${__MementoSectionIndex} |
331 | 2961 | mdecorde | |
332 | 2961 | mdecorde | ${If} ${SectionIsSelected} `${${__MementoSectionLastSectionId}}` |
333 | 2961 | mdecorde | |
334 | 2961 | mdecorde | WriteRegDWORD ${MEMENTO_REGISTRY_ROOT} `${MEMENTO_REGISTRY_KEY}` `MementoSection_${__MementoSectionLastSectionId}` 1 |
335 | 2961 | mdecorde | |
336 | 2961 | mdecorde | ${Else} |
337 | 2961 | mdecorde | |
338 | 2961 | mdecorde | WriteRegDWORD ${MEMENTO_REGISTRY_ROOT} `${MEMENTO_REGISTRY_KEY}` `MementoSection_${__MementoSectionLastSectionId}` 0 |
339 | 2961 | mdecorde | |
340 | 2961 | mdecorde | ${EndIf} |
341 | 2961 | mdecorde | |
342 | 2961 | mdecorde | GetFunctionAddress $0 __MementoSectionSaveStatus${__MementoSectionIndexNext} |
343 | 2961 | mdecorde | Goto $0 |
344 | 2961 | mdecorde | |
345 | 2961 | mdecorde | FunctionEnd |
346 | 2961 | mdecorde | |
347 | 2961 | mdecorde | !undef __MementoSectionIndex |
348 | 2961 | mdecorde | !define __MementoSectionIndex ${__MementoSectionIndexNext} |
349 | 2961 | mdecorde | !undef __MementoSectionIndexNext |
350 | 2961 | mdecorde | |
351 | 2961 | mdecorde | !undef __MementoSectionLastSectionId |
352 | 2961 | mdecorde | |
353 | 2961 | mdecorde | !verbose pop |
354 | 2961 | mdecorde | |
355 | 2961 | mdecorde | !macroend |
356 | 2961 | mdecorde | |
357 | 2961 | mdecorde | !macro MementoSectionDone |
358 | 2961 | mdecorde | |
359 | 2961 | mdecorde | !verbose push |
360 | 2961 | mdecorde | !verbose 3 |
361 | 2961 | mdecorde | |
362 | 2961 | mdecorde | !insertmacro __MementoCheckSettings |
363 | 2961 | mdecorde | |
364 | 2961 | mdecorde | Function __MementoSectionMarkNew${__MementoSectionIndex} |
365 | 2961 | mdecorde | FunctionEnd |
366 | 2961 | mdecorde | |
367 | 2961 | mdecorde | Function __MementoSectionRestoreStatus${__MementoSectionIndex} |
368 | 2961 | mdecorde | FunctionEnd |
369 | 2961 | mdecorde | |
370 | 2961 | mdecorde | Function __MementoSectionSaveStatus${__MementoSectionIndex} |
371 | 2961 | mdecorde | FunctionEnd |
372 | 2961 | mdecorde | |
373 | 2961 | mdecorde | !undef __MementoSectionIndex |
374 | 2961 | mdecorde | |
375 | 2961 | mdecorde | !verbose pop |
376 | 2961 | mdecorde | |
377 | 2961 | mdecorde | !macroend |
378 | 2961 | mdecorde | |
379 | 2961 | mdecorde | !macro MementoSectionRestore |
380 | 2961 | mdecorde | |
381 | 2961 | mdecorde | !verbose push |
382 | 2961 | mdecorde | !verbose 3 |
383 | 2961 | mdecorde | |
384 | 2961 | mdecorde | !insertmacro __MementoCheckSettings |
385 | 2961 | mdecorde | |
386 | 2961 | mdecorde | Push $0 |
387 | 2961 | mdecorde | Push $1 |
388 | 2961 | mdecorde | Push $2 |
389 | 2961 | mdecorde | Push $3 |
390 | 2961 | mdecorde | |
391 | 2961 | mdecorde | # check for first usage |
392 | 2961 | mdecorde | |
393 | 2961 | mdecorde | ClearErrors |
394 | 2961 | mdecorde | |
395 | 2961 | mdecorde | ReadRegStr $0 ${MEMENTO_REGISTRY_ROOT} `${MEMENTO_REGISTRY_KEY}` MementoSectionUsed |
396 | 2961 | mdecorde | |
397 | 2961 | mdecorde | ${If} ${Errors} |
398 | 2961 | mdecorde | |
399 | 2961 | mdecorde | # use script defaults on first run |
400 | 2961 | mdecorde | Goto done |
401 | 2961 | mdecorde | |
402 | 2961 | mdecorde | ${EndIf} |
403 | 2961 | mdecorde | |
404 | 2961 | mdecorde | # mark new components in bold |
405 | 2961 | mdecorde | |
406 | 2961 | mdecorde | Call __MementoSectionMarkNew1 |
407 | 2961 | mdecorde | |
408 | 2961 | mdecorde | # mark section groups in bold |
409 | 2961 | mdecorde | |
410 | 2961 | mdecorde | StrCpy $0 0 |
411 | 2961 | mdecorde | StrCpy $1 "" |
412 | 2961 | mdecorde | StrCpy $2 "" |
413 | 2961 | mdecorde | StrCpy $3 "" |
414 | 2961 | mdecorde | |
415 | 2961 | mdecorde | loop: |
416 | 2961 | mdecorde | |
417 | 2961 | mdecorde | ClearErrors |
418 | 2961 | mdecorde | |
419 | 2961 | mdecorde | ${If} ${SectionIsBold} $0 |
420 | 2961 | mdecorde | |
421 | 2961 | mdecorde | ${If} $1 != "" |
422 | 2961 | mdecorde | |
423 | 2961 | mdecorde | !insertmacro SetSectionFlag $1 ${SF_BOLD} |
424 | 2961 | mdecorde | |
425 | 2961 | mdecorde | ${EndIf} |
426 | 2961 | mdecorde | |
427 | 2961 | mdecorde | ${If} $2 != "" |
428 | 2961 | mdecorde | |
429 | 2961 | mdecorde | !insertmacro SetSectionFlag $2 ${SF_BOLD} |
430 | 2961 | mdecorde | |
431 | 2961 | mdecorde | ${EndIf} |
432 | 2961 | mdecorde | |
433 | 2961 | mdecorde | ${If} $3 != "" |
434 | 2961 | mdecorde | |
435 | 2961 | mdecorde | !insertmacro SetSectionFlag $3 ${SF_BOLD} |
436 | 2961 | mdecorde | |
437 | 2961 | mdecorde | ${EndIf} |
438 | 2961 | mdecorde | |
439 | 2961 | mdecorde | ${ElseIf} ${Errors} |
440 | 2961 | mdecorde | |
441 | 2961 | mdecorde | Goto loop_end |
442 | 2961 | mdecorde | |
443 | 2961 | mdecorde | ${EndIf} |
444 | 2961 | mdecorde | |
445 | 2961 | mdecorde | ${If} ${SectionIsSectionGroup} $0 |
446 | 2961 | mdecorde | |
447 | 2961 | mdecorde | ${If} $1 == "" |
448 | 2961 | mdecorde | |
449 | 2961 | mdecorde | StrCpy $1 $0 |
450 | 2961 | mdecorde | |
451 | 2961 | mdecorde | ${ElseIf} $2 == "" |
452 | 2961 | mdecorde | |
453 | 2961 | mdecorde | StrCpy $2 $0 |
454 | 2961 | mdecorde | |
455 | 2961 | mdecorde | ${ElseIf} $3 == "" |
456 | 2961 | mdecorde | |
457 | 2961 | mdecorde | StrCpy $3 $0 |
458 | 2961 | mdecorde | |
459 | 2961 | mdecorde | ${EndIf} |
460 | 2961 | mdecorde | |
461 | 2961 | mdecorde | ${EndIf} |
462 | 2961 | mdecorde | |
463 | 2961 | mdecorde | ${If} ${SectionIsSectionGroupEnd} $0 |
464 | 2961 | mdecorde | |
465 | 2961 | mdecorde | ${If} $3 != "" |
466 | 2961 | mdecorde | |
467 | 2961 | mdecorde | StrCpy $3 "" |
468 | 2961 | mdecorde | |
469 | 2961 | mdecorde | ${ElseIf} $2 != "" |
470 | 2961 | mdecorde | |
471 | 2961 | mdecorde | StrCpy $2 "" |
472 | 2961 | mdecorde | |
473 | 2961 | mdecorde | ${ElseIf} $1 != "" |
474 | 2961 | mdecorde | |
475 | 2961 | mdecorde | StrCpy $1 "" |
476 | 2961 | mdecorde | |
477 | 2961 | mdecorde | ${EndIf} |
478 | 2961 | mdecorde | |
479 | 2961 | mdecorde | ${EndIf} |
480 | 2961 | mdecorde | |
481 | 2961 | mdecorde | IntOp $0 $0 + 1 |
482 | 2961 | mdecorde | |
483 | 2961 | mdecorde | Goto loop |
484 | 2961 | mdecorde | loop_end: |
485 | 2961 | mdecorde | |
486 | 2961 | mdecorde | # restore sections' status |
487 | 2961 | mdecorde | |
488 | 2961 | mdecorde | Call __MementoSectionRestoreStatus1 |
489 | 2961 | mdecorde | |
490 | 2961 | mdecorde | # all done |
491 | 2961 | mdecorde | |
492 | 2961 | mdecorde | done: |
493 | 2961 | mdecorde | |
494 | 2961 | mdecorde | Pop $3 |
495 | 2961 | mdecorde | Pop $2 |
496 | 2961 | mdecorde | Pop $1 |
497 | 2961 | mdecorde | Pop $0 |
498 | 2961 | mdecorde | |
499 | 2961 | mdecorde | !verbose pop |
500 | 2961 | mdecorde | |
501 | 2961 | mdecorde | !macroend |
502 | 2961 | mdecorde | |
503 | 2961 | mdecorde | !macro MementoSectionSave |
504 | 2961 | mdecorde | |
505 | 2961 | mdecorde | !verbose push |
506 | 2961 | mdecorde | !verbose 3 |
507 | 2961 | mdecorde | |
508 | 2961 | mdecorde | !insertmacro __MementoCheckSettings |
509 | 2961 | mdecorde | |
510 | 2961 | mdecorde | Push $0 |
511 | 2961 | mdecorde | |
512 | 2961 | mdecorde | WriteRegStr ${MEMENTO_REGISTRY_ROOT} `${MEMENTO_REGISTRY_KEY}` MementoSectionUsed "" |
513 | 2961 | mdecorde | |
514 | 2961 | mdecorde | Call __MementoSectionSaveStatus1 |
515 | 2961 | mdecorde | |
516 | 2961 | mdecorde | Pop $0 |
517 | 2961 | mdecorde | |
518 | 2961 | mdecorde | !verbose pop |
519 | 2961 | mdecorde | |
520 | 2961 | mdecorde | !macroend |
521 | 2961 | mdecorde | |
522 | 2961 | mdecorde | |
523 | 2961 | mdecorde | |
524 | 2961 | mdecorde | !endif # ___MEMENTO_NSH___ |
525 | 2961 | mdecorde | |
526 | 2961 | mdecorde | !verbose pop |