Mercurial > pidgin.yaz
annotate pidgin/win32/nsis/pidgin-plugin.nsh @ 30386:bff257656ece
Create a version of the Windows installer localizations in .desktop file
format. This is the first step in transitioning the Windows installer to use
the .po files for translation.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Mon, 17 May 2010 23:13:42 +0000 |
parents | e11859350489 |
children |
rev | line source |
---|---|
15752
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
1 ;; |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
2 ;; Windows Pidgin NSIS installer plugin helper utilities |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
3 ;; Copyright 2005, Daniel Atallah <daniel_atallah@yahoo.com> |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
4 ;; |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
5 ;; Include in plugin installer scripts using: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
6 ;; !addincludedir "${PATH_TO_PIDGIN_SRC}\pidgin\win32\nsis" |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
7 ;; !include "pidgin-plugin.nsh" |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
8 ;; |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
9 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
10 !define PIDGIN_REG_KEY "SOFTWARE\pidgin" |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
11 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
12 !define PIDGIN_VERSION_OK 0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
13 !define PIDGIN_VERSION_INCOMPATIBLE 1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
14 !define PIDGIN_VERSION_UNDEFINED 2 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
15 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
16 ; Extract the Pidgin Version from the registry |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
17 ; This will set the Error flag if unable to determine the value |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
18 ; Pop the value of the stack after calling this to get the value (unless Error Flag is set) |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
19 Function GetPidginVersion |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
20 Push $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
21 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
22 ; Read the pidgin version |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
23 ClearErrors |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
24 ReadRegStr $R0 HKLM ${PIDGIN_REG_KEY} "Version" |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
25 IfErrors +1 GetPidginVersion_found |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
26 ; fall back to the HKCU registry key |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
27 ReadRegStr $R0 HKCU ${PIDGIN_REG_KEY} "Version" |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
28 IfErrors GetPidginVersion_done ; Keep the error flag set |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
29 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
30 GetPidginVersion_found: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
31 Push $R0 ; Push the value onto the stack |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
32 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
33 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
34 GetPidginVersion_done: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
35 ; restore $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
36 Pop $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
37 FunctionEnd |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
38 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
39 ; Check that the currently installed Pidgin version is compatible |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
40 ; with the plugin version we are installing |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
41 ; Push the Plugin's Pidgin Version onto the Stack before calling |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
42 ; After calling, the top of the Stack will contain the result of the check: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
43 ; PIDGIN_VERSION_OK - If the installed Pidgin version is compatible w/ the version specified |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
44 ; PIDGIN_VERSION_INCOMPATIBLE - If the installed Pidgin version isn't compatible w/ the version specified |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
45 ; PIDGIN_VERSION_UNDEFINED - If the installed Pidgin version can't be determined |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
46 Function CheckPidginVersion |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
47 ; Save the Variable values that we will use in the stack |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
48 Push $R4 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
49 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
50 Pop $R4 ; Get the plugin's Pidgin Version |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
51 Push $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
52 Push $R1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
53 Push $R2 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
54 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
55 ; Read the pidgin version |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
56 Call GetPidginVersion |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
57 IfErrors checkPidginVersion_noPidginInstallFound |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
58 Pop $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
59 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
60 ;If they are exactly the same, we don't need to look at anything else |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
61 StrCmp $R0 $R4 checkPidginVersion_VersionOK |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
62 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
63 ; Versions are in the form of X.Y.Z |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
64 ; If X is different or plugin's Y > pidgin's Y, then we shouldn't install |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
65 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
66 ;Check the Major Version |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
67 Push $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
68 Push 0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
69 Call GetVersionComponent |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
70 IfErrors checkPidginVersion_noPidginInstallFound ;We couldn't extract 'X' from the installed pidgin version |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
71 Pop $R2 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
72 Push $R4 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
73 Push 0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
74 Call GetVersionComponent |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
75 IfErrors checkPidginVersion_BadVersion ; this isn't a valid version, so don't bother even checking |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
76 Pop $R1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
77 ;Check that both versions' X is the same |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
78 StrCmp $R1 $R2 +1 checkPidginVersion_BadVersion |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
79 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
80 ;Check the Minor Version |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
81 Push $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
82 Push 1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
83 Call GetVersionComponent |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
84 IfErrors checkPidginVersion_noPidginInstallFound ;We couldn't extract 'Y' from the installed pidgin version |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
85 Pop $R2 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
86 Push $R4 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
87 Push 1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
88 Call GetVersionComponent |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
89 IfErrors checkPidginVersion_BadVersion ; this isn't a valid version, so don't bother even checking |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
90 Pop $R1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
91 ;Check that plugin's Y <= pidgin's Y |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
92 IntCmp $R1 $R2 checkPidginVersion_VersionOK checkPidginVersion_VersionOK checkPidginVersion_BadVersion |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
93 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
94 checkPidginVersion_BadVersion: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
95 Push ${PIDGIN_VERSION_INCOMPATIBLE} |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
96 goto checkPidginVersion_done |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
97 checkPidginVersion_noPidginInstallFound: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
98 Push ${PIDGIN_VERSION_UNDEFINED} |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
99 goto checkPidginVersion_done |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
100 checkPidginVersion_VersionOK: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
101 Push ${PIDGIN_VERSION_OK} |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
102 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
103 checkPidginVersion_done: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
104 ; Restore the Variables that we used |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
105 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
106 Pop $R2 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
107 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
108 Pop $R1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
109 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
110 Pop $R0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
111 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
112 Pop $R4 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
113 FunctionEnd |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
114 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
115 ; Extract the part of a string prior to "." (or the whole string if there is no ".") |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
116 ; If no "." was found, the ErrorFlag will be set |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
117 ; Before this is called, Push ${VERSION_STRING} must be called, and then Push 0 for Major, 1 for Minor, etc |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
118 ; Pop should be called after to retrieve the new value |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
119 Function GetVersionComponent |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
120 ClearErrors |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
121 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
122 ; Save the Variable values that we will use in the stack |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
123 Push $1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
124 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
125 Pop $1 ;The version component which we want to extract (0, 1, 2) |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
126 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
127 Push $0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
128 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
129 Pop $0 ;The string from which to extract the version component |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
130 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
131 Push $2 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
132 Push $3 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
133 Push $4 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
134 Push $5 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
135 Push $6 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
136 Push $7 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
137 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
138 StrCpy $2 "0" ;Initialize our string index counter |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
139 StrCpy $7 "0" ;Index of last "." |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
140 StrCpy $3 "0" ;Initialize our version index counter |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
141 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
142 startGetVersionComponentLoop: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
143 ;avoid infinite loop (if we have gotten the whole initial string, exit the loop and set the error flag) |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
144 StrCmp $6 $0 GetVersionComponentSetErrorFlag |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
145 IntOp $2 $2 + 1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
146 StrCpy $6 $0 $2 ;Update the infinite loop preventing string |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
147 ;Determine the correct substring (only the current index component) |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
148 IntOp $5 $2 - $7 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
149 StrCpy $4 $0 $5 $7 ;Append the current character in $0 to $4 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
150 StrCpy $5 $0 1 $2 ;store the next character in $5 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
151 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
152 ;if the next character is ".", $4 will contain the version component prior to "." |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
153 StrCmp $5 "." +1 startGetVersionComponentLoop |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
154 StrCmp $3 $1 doneGetVersionComponent ;If it is the version component we're looking for, stop |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
155 IntOp $3 $3 + 1 ;Increment the version index counter |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
156 IntOp $2 $2 + 1 ;Increment the version string index to "." (so it will be skipped) |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
157 StrCpy $7 $2 ;Keep track of the index of the last "." |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
158 StrCpy $6 $0 $2 ;Update the infinite loop preventing string |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
159 goto startGetVersionComponentLoop |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
160 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
161 GetVersionComponentSetErrorFlag: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
162 SetErrors |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
163 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
164 doneGetVersionComponent: |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
165 ; Restore the Variables that we used |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
166 Pop $7 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
167 Pop $6 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
168 Pop $5 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
169 Push $4 ;This is the value we're returning |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
170 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
171 Pop $4 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
172 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
173 Pop $3 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
174 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
175 Pop $2 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
176 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
177 Pop $0 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
178 Exch |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
179 Pop $1 |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
180 FunctionEnd |
e11859350489
Updates to the win32 installer. It isn't complete yet, but this a good saving point.
Daniel Atallah <daniel.atallah@gmail.com>
parents:
diff
changeset
|
181 |