root / tmp / org.txm.setups / nsis / Include / InstallOptions.nsh @ 3108
Historique | Voir | Annoter | Télécharger (4,71 ko)
1 |
/* |
---|---|
2 |
|
3 |
InstallOptions.nsh |
4 |
Macros and conversion functions for InstallOptions |
5 |
|
6 |
*/ |
7 |
|
8 |
!ifndef ___NSIS__INSTALL_OPTIONS__NSH___ |
9 |
!define ___NSIS__INSTALL_OPTIONS__NSH___ |
10 |
|
11 |
!include LogicLib.nsh |
12 |
|
13 |
!macro INSTALLOPTIONS_FUNCTION_READ_CONVERT |
14 |
!insertmacro INSTALLOPTIONS_FUNCTION_IO2NSIS "" |
15 |
!macroend |
16 |
|
17 |
!macro INSTALLOPTIONS_UNFUNCTION_READ_CONVERT |
18 |
!insertmacro INSTALLOPTIONS_FUNCTION_IO2NSIS un. |
19 |
!macroend |
20 |
|
21 |
!macro INSTALLOPTIONS_FUNCTION_WRITE_CONVERT |
22 |
!insertmacro INSTALLOPTIONS_FUNCTION_NSIS2IO "" |
23 |
!macroend |
24 |
|
25 |
!macro INSTALLOPTIONS_UNFUNCTION_WRITE_CONVERT |
26 |
!insertmacro INSTALLOPTIONS_FUNCTION_NSIS2IO un. |
27 |
!macroend |
28 |
|
29 |
!macro INSTALLOPTIONS_FUNCTION_NSIS2IO UNINSTALLER_FUNCPREFIX |
30 |
|
31 |
; Convert an NSIS string to a form suitable for use by InstallOptions |
32 |
; Usage: |
33 |
; Push <NSIS-string> |
34 |
; Call Nsis2Io |
35 |
; Pop <IO-string> |
36 |
|
37 |
Function ${UNINSTALLER_FUNCPREFIX}Nsis2Io |
38 |
|
39 |
Exch $0 ; The source |
40 |
Push $1 ; The output |
41 |
Push $2 ; Temporary char |
42 |
Push $3 ; Length |
43 |
Push $4 ; Loop index |
44 |
StrCpy $1 "" ; Initialise the output |
45 |
|
46 |
StrLen $3 $0 |
47 |
IntOp $3 $3 - 1 |
48 |
|
49 |
${For} $4 0 $3 |
50 |
StrCpy $2 $0 1 $4 |
51 |
${If} $2 == '\' |
52 |
StrCpy $2 '\\' |
53 |
${ElseIf} $2 == '$\r' |
54 |
StrCpy $2 '\r' |
55 |
${ElseIf} $2 == '$\n' |
56 |
StrCpy $2 '\n' |
57 |
${ElseIf} $2 == '$\t' |
58 |
StrCpy $2 '\t' |
59 |
${EndIf} |
60 |
StrCpy $1 $1$2 |
61 |
${Next} |
62 |
|
63 |
StrCpy $0 $1 |
64 |
Pop $4 |
65 |
Pop $3 |
66 |
Pop $2 |
67 |
Pop $1 |
68 |
Exch $0 |
69 |
|
70 |
FunctionEnd |
71 |
|
72 |
!macroend |
73 |
|
74 |
!macro INSTALLOPTIONS_FUNCTION_IO2NSIS UNINSTALLER_FUNCPREFIX |
75 |
|
76 |
; Convert an InstallOptions string to a form suitable for use by NSIS |
77 |
; Usage: |
78 |
; Push <IO-string> |
79 |
; Call Io2Nsis |
80 |
; Pop <NSIS-string> |
81 |
|
82 |
Function ${UNINSTALLER_FUNCPREFIX}Io2Nsis |
83 |
|
84 |
Exch $0 ; The source |
85 |
Push $1 ; The output |
86 |
Push $2 ; Temporary char |
87 |
Push $3 ; Length |
88 |
Push $4 ; Loop index |
89 |
StrCpy $1 "" ; Initialise the output |
90 |
|
91 |
StrLen $3 $0 |
92 |
IntOp $3 $3 - 1 |
93 |
|
94 |
${For} $4 0 $3 |
95 |
StrCpy $2 $0 2 $4 |
96 |
${If} $2 == '\\' |
97 |
StrCpy $2 '\' |
98 |
IntOp $4 $4 + 1 |
99 |
${ElseIf} $2 == '\r' |
100 |
StrCpy $2 '$\r' |
101 |
IntOp $4 $4 + 1 |
102 |
${ElseIf} $2 == '\n' |
103 |
StrCpy $2 '$\n' |
104 |
IntOp $4 $4 + 1 |
105 |
${ElseIf} $2 == '\t' |
106 |
StrCpy $2 '$\t' |
107 |
IntOp $4 $4 + 1 |
108 |
${EndIf} |
109 |
StrCpy $2 $2 1 |
110 |
StrCpy $1 $1$2 |
111 |
${Next} |
112 |
|
113 |
StrCpy $0 $1 |
114 |
Pop $4 |
115 |
Pop $3 |
116 |
Pop $2 |
117 |
Pop $1 |
118 |
Exch $0 |
119 |
|
120 |
FunctionEnd |
121 |
|
122 |
!macroend |
123 |
|
124 |
!macro INSTALLOPTIONS_EXTRACT FILE |
125 |
|
126 |
InitPluginsDir |
127 |
File "/oname=$PLUGINSDIR\${FILE}" "${FILE}" |
128 |
!ifdef NSIS_UNICODE |
129 |
InstallOptions::make_unicode "$PLUGINSDIR\${FILE}" |
130 |
!endif |
131 |
!insertmacro INSTALLOPTIONS_WRITE "${FILE}" "Settings" "RTL" "$(^RTL)" |
132 |
|
133 |
!macroend |
134 |
|
135 |
!macro INSTALLOPTIONS_EXTRACT_AS FILE FILENAME |
136 |
|
137 |
InitPluginsDir |
138 |
File "/oname=$PLUGINSDIR\${FILENAME}" "${FILE}" |
139 |
!ifdef NSIS_UNICODE |
140 |
InstallOptions::make_unicode "$PLUGINSDIR\${FILENAME}" |
141 |
!endif |
142 |
!insertmacro INSTALLOPTIONS_WRITE "${FILENAME}" "Settings" "RTL" "$(^RTL)" |
143 |
|
144 |
!macroend |
145 |
|
146 |
!macro INSTALLOPTIONS_DISPLAY FILE |
147 |
|
148 |
Push $0 |
149 |
|
150 |
InstallOptions::dialog "$PLUGINSDIR\${FILE}" |
151 |
Pop $0 |
152 |
|
153 |
Pop $0 |
154 |
|
155 |
!macroend |
156 |
|
157 |
!macro INSTALLOPTIONS_DISPLAY_RETURN FILE |
158 |
|
159 |
InstallOptions::dialog "$PLUGINSDIR\${FILE}" |
160 |
|
161 |
!macroend |
162 |
|
163 |
!macro INSTALLOPTIONS_INITDIALOG FILE |
164 |
|
165 |
InstallOptions::initDialog "$PLUGINSDIR\${FILE}" |
166 |
|
167 |
!macroend |
168 |
|
169 |
!macro INSTALLOPTIONS_SHOW |
170 |
|
171 |
Push $0 |
172 |
|
173 |
InstallOptions::show |
174 |
Pop $0 |
175 |
|
176 |
Pop $0 |
177 |
|
178 |
!macroend |
179 |
|
180 |
!macro INSTALLOPTIONS_SHOW_RETURN |
181 |
|
182 |
InstallOptions::show |
183 |
|
184 |
!macroend |
185 |
|
186 |
!macro INSTALLOPTIONS_READ VAR FILE SECTION KEY |
187 |
|
188 |
ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" |
189 |
|
190 |
!macroend |
191 |
|
192 |
!macro INSTALLOPTIONS_WRITE FILE SECTION KEY VALUE |
193 |
|
194 |
WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" "${VALUE}" |
195 |
|
196 |
!macroend |
197 |
|
198 |
!macro INSTALLOPTIONS_READ_CONVERT VAR FILE SECTION KEY |
199 |
|
200 |
ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" |
201 |
Push ${VAR} |
202 |
Call Io2Nsis |
203 |
Pop ${VAR} |
204 |
|
205 |
!macroend |
206 |
|
207 |
!macro INSTALLOPTIONS_READ_UNCONVERT VAR FILE SECTION KEY |
208 |
|
209 |
ReadIniStr ${VAR} "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" |
210 |
Push ${VAR} |
211 |
Call un.Io2Nsis |
212 |
Pop ${VAR} |
213 |
|
214 |
!macroend |
215 |
|
216 |
!macro INSTALLOPTIONS_WRITE_CONVERT FILE SECTION KEY VALUE |
217 |
|
218 |
Push $0 |
219 |
StrCpy $0 "${VALUE}" |
220 |
Push $0 |
221 |
Call Nsis2Io |
222 |
Pop $0 |
223 |
|
224 |
WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" $0 |
225 |
|
226 |
Pop $0 |
227 |
|
228 |
!macroend |
229 |
|
230 |
!macro INSTALLOPTIONS_WRITE_UNCONVERT FILE SECTION KEY VALUE |
231 |
|
232 |
Push $0 |
233 |
StrCpy $0 "${VALUE}" |
234 |
Push $0 |
235 |
Call un.Nsis2Io |
236 |
Pop $0 |
237 |
|
238 |
WriteIniStr "$PLUGINSDIR\${FILE}" "${SECTION}" "${KEY}" $0 |
239 |
|
240 |
Pop $0 |
241 |
|
242 |
!macroend |
243 |
|
244 |
!endif # ___NSIS__INSTALL_OPTIONS__NSH___ |