1 Index: SCons/Config/gnu
2 --- ../release/nsis-2.17-src/SCons/Config/gnu 2006-04-28 08:54:41.000000000 -0700
3 +++ SCons/Config/gnu 2006-08-07 18:49:47.000000000 -0700
7 if not defenv['DEBUG']:
\r
8 - stub_env.Append(CCFLAGS = '-Os') # optimize for size
\r
9 + stub_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
\r
10 stub_env.Append(CCFLAGS = '-Wall') # all warnings
\r
11 stub_env.Append(CCFLAGS = '-x c') # force compile as c
\r
14 makensis_env = defenv.Copy()
\r
16 if not defenv['DEBUG']:
\r
17 - makensis_env.Append(CCFLAGS = '-O2') # optimize
\r
18 + makensis_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
\r
19 makensis_env.Append(CCFLAGS = '-Wall') # all warnings
\r
21 conf = FlagsConfigure(makensis_env)
\r
22 conf.CheckLinkFlag('$MAP_FLAG') # generate map file
\r
24 cross_env(plugin_env)
\r
26 if not defenv['DEBUG']:
\r
27 - plugin_env.Append(CCFLAGS = '-Os') # optimize for size
\r
28 + plugin_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
\r
29 plugin_env.Append(CCFLAGS = '-Wall') # level 3 warnings
\r
31 if not defenv['DEBUG']:
\r
33 cp_util_env = defenv.Copy()
\r
35 if not defenv['DEBUG']:
\r
36 - cp_util_env.Append(CCFLAGS = '-O2') # optimize
\r
37 + cp_util_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
\r
38 cp_util_env.Append(CCFLAGS = '-Wall') # all warnings
\r
40 conf = FlagsConfigure(cp_util_env)
\r
41 Index: Source/build.cpp
42 --- ../release/nsis-2.17-src/Source/build.cpp 2006-04-14 03:05:01.000000000 -0700
43 +++ ./Source/build.cpp 2006-07-31 13:26:38.000000000 -0700
47 #ifdef NSIS_CONFIG_CRC_SUPPORT
\r
48 - crc_writer_sink crc_sink((unsigned long *) &crc);
\r
49 + crc_writer_sink crc_sink((unsigned int *) &crc);
\r
50 firstheader_writer w(&crc_sink);
\r
54 --- ../release/nsis-2.17-src/Source/build.h 2005-04-02 04:04:06.000000000 -0800
55 +++ ./Source/build.h 2006-07-31 13:28:44.000000000 -0700
57 #ifdef NSIS_CONFIG_CRC_SUPPORT
\r
60 - unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
\r
61 + unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
\r
66 --- ../release/nsis-2.17-src/Source/crc32.c 2004-03-12 12:43:54.000000000 -0800
67 +++ ./Source/crc32.c 2006-07-31 13:27:12.000000000 -0700
69 #ifdef NSIS_CONFIG_CRC_SUPPORT
\r
71 // this is based on the (slow,small) CRC32 implementation from zlib.
\r
72 -unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len)
\r
73 +unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len)
\r
75 - static unsigned long crc_table[256];
\r
76 + static unsigned int crc_table[256];
\r
84 for (n = 0; n < 256; n++)
\r
86 - c = (unsigned long)n;
\r
87 + c = (unsigned int)n;
\r
88 for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320L : 0);
\r
91 Index: Source/DialogTemplate.cpp
92 --- ../release/nsis-2.17-src/Source/DialogTemplate.cpp 2006-03-24 10:36:24.000000000 -0800
93 +++ ./Source/DialogTemplate.cpp 2006-07-31 05:48:44.000000000 -0700
95 if (IS_INTRESOURCE(x)) { \
\r
96 *(WORD*)seeker = 0xFFFF; \
\r
97 seeker += sizeof(WORD); \
\r
98 - *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \
\r
99 + *(WORD*)seeker = ConvertEndianness(WORD(ULONG_PTR(x))); \
\r
100 seeker += sizeof(WORD); \
\r
107 - assert((DWORD) seeker - (DWORD) pbDlg == dwSize);
\r
108 + assert((ULONG_PTR) seeker - (ULONG_PTR) pbDlg == dwSize);
\r
112 Index: Source/exehead/fileform.c
113 --- ../release/nsis-2.17-src/Source/exehead/fileform.c 2005-09-09 09:08:44.000000000 -0700
114 +++ ./Source/exehead/fileform.c 2006-07-31 13:26:08.000000000 -0700
116 static z_stream g_inflate_stream;
\r
119 -extern unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
\r
120 +extern unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
\r
122 const char * NSISCALL loadHeaders(int cl_flags)
\r
124 Index: Source/Platform.h
125 --- ../release/nsis-2.17-src/Source/Platform.h 2006-05-03 08:43:54.000000000 -0700
126 +++ ./Source/Platform.h 2006-07-31 05:48:44.000000000 -0700
129 typedef unsigned char BYTE, *PBYTE, *LPBYTE;
\r
130 typedef unsigned short WORD, *LPWORD;
\r
131 -typedef unsigned long DWORD, *LPDWORD;
\r
132 +typedef unsigned int DWORD, *LPDWORD;
\r
133 typedef short SHORT;
\r
134 typedef unsigned short USHORT;
\r
135 typedef unsigned int UINT;
\r
136 typedef unsigned int UINT32;
\r
139 -typedef long LONG;
\r
140 -typedef unsigned long ULONG;
\r
142 +typedef unsigned int ULONG;
\r
143 typedef long long INT64, LARGE_INTEGER;
\r
144 typedef unsigned long long UINT64, ULARGE_INTEGER;
\r
145 typedef int BOOL, *LPBOOL;
\r
147 typedef const char *LPCCH, *PCSTR, *LPCSTR;
\r
148 typedef unsigned short WCHAR, *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR;
\r
149 typedef const unsigned short *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR;
\r
150 -typedef unsigned int UINT_PTR;
\r
151 +typedef unsigned long UINT_PTR;
\r
152 +typedef unsigned long ULONG_PTR;
\r
154 typedef void * HANDLE;
\r
155 -typedef unsigned long HKEY;
\r
156 +typedef unsigned int HKEY;
\r
158 -typedef unsigned long COLORREF;
\r
159 -typedef unsigned long HBRUSH;
\r
160 +typedef unsigned int COLORREF;
\r
161 +typedef unsigned int HBRUSH;
\r
165 @@ -129,13 +130,13 @@
168 # ifndef FIELD_OFFSET
\r
169 -# define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
\r
170 +# define FIELD_OFFSET(t,f) ((ULONG_PTR)&(((t*)0)->f))
\r
172 # ifndef MAKEINTRESOURCE
\r
173 # define MAKEINTRESOURCE(i) (LPSTR)((DWORD)((WORD)(i)))
\r
175 # ifndef IMAGE_FIRST_SECTION
\r
176 -# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (DWORD) h + \
\r
177 +# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (ULONG_PTR) h + \
\r
178 FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \
\r
179 FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) )
\r
182 # define FOF_NOERRORUI 0x0400
\r
186 -# define ULONG_PTR DWORD
\r
188 +//#ifndef ULONG_PTR
\r
189 +//# define ULONG_PTR ULONG
\r
193 # define IDC_HAND MAKEINTRESOURCE(32649)
\r
194 Index: Source/Plugins.cpp
195 --- ../release/nsis-2.17-src/Source/Plugins.cpp 2006-04-05 11:42:12.000000000 -0700
196 +++ ./Source/Plugins.cpp 2006-07-31 06:50:08.000000000 -0700
198 DWORD prd = FIX_ENDIAN_INT32(sections[i].PointerToRawData);
\r
199 PIMAGE_EXPORT_DIRECTORY exports = PIMAGE_EXPORT_DIRECTORY(&dlldata[0] + prd + ExportDirVA - va);
\r
200 DWORD na = FIX_ENDIAN_INT32(exports->AddressOfNames);
\r
201 - unsigned long *names = (unsigned long*)((unsigned long) exports + (char *) na - ExportDirVA);
\r
202 - for (unsigned long j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
\r
203 + unsigned int *names = (unsigned int*)((unsigned long) exports + (char *) na - ExportDirVA);
\r
204 + for (unsigned int j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
\r
206 const string name = string((char*)exports + FIX_ENDIAN_INT32(names[j]) - ExportDirVA);
\r
207 const string signature = dllName + "::" + name;
\r
208 Index: Source/ResourceEditor.cpp
209 --- ../release/nsis-2.17-src/Source/ResourceEditor.cpp 2006-04-05 11:40:09.000000000 -0700
210 +++ ./Source/ResourceEditor.cpp 2006-07-31 05:48:44.000000000 -0700
212 rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries);
\r
214 CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY));
\r
215 - crd->m_dwWrittenAt = DWORD(seeker);
\r
216 + crd->m_dwWrittenAt = ULONG_PTR(seeker);
\r
217 seeker += sizeof(IMAGE_RESOURCE_DIRECTORY);
\r
219 for (int i = 0; i < crd->CountEntries(); i++) {
\r
221 rDirE.NameString.NameIsString = (crd->GetEntry(i)->HasName()) ? 1 : 0;
\r
223 CopyMemory(seeker, &rDirE, sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY));
\r
224 - crd->GetEntry(i)->m_dwWrittenAt = DWORD(seeker);
\r
225 + crd->GetEntry(i)->m_dwWrittenAt = ULONG_PTR(seeker);
\r
226 seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY);
\r
230 rDataE.Size = ConvertEndianness(cRDataE->GetSize());
\r
232 CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
\r
233 - cRDataE->m_dwWrittenAt = DWORD(seeker);
\r
234 + cRDataE->m_dwWrittenAt = ULONG_PTR(seeker);
\r
235 seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY);
\r
237 qDataEntries.pop();
\r
239 while (!qStrings.empty()) {
\r
240 CResourceDirectoryEntry* cRDirE = qStrings.front();
\r
242 - PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(seeker) - DWORD(pbRsrcSec));
\r
243 + PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(ULONG_PTR(seeker) - ULONG_PTR(pbRsrcSec)));
\r
245 char* szName = cRDirE->GetName();
\r
246 WORD iLen = strlen(szName) + 1;
\r
248 while (!qDataEntries2.empty()) {
\r
249 CResourceDataEntry* cRDataE = qDataEntries2.front();
\r
250 CopyMemory(seeker, cRDataE->GetData(), cRDataE->GetSize());
\r
251 - PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(seeker - pbRsrcSec + m_dwResourceSectionVA);
\r
252 + PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(DWORD(seeker - pbRsrcSec + m_dwResourceSectionVA));
\r
254 seeker += RALIGN(cRDataE->GetSize(), 8);
\r
258 * Set all of the directory entries offsets.
\r
260 - SetOffsets(m_cResDir, DWORD(pbRsrcSec));
\r
261 + SetOffsets(m_cResDir, ULONG_PTR(pbRsrcSec));
\r
264 // Sets the offsets in directory entries
\r
266 SetOffsets(resDir->GetEntry(i)->GetSubDirectory(), newResDirAt);
\r
269 - rde->OffsetToData = ConvertEndianness(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt);
\r
270 + rde->OffsetToData = ConvertEndianness(DWORD(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt));
\r
275 // Returns -1 if can not be found
\r
276 int CResourceDirectory::Find(char* szName) {
\r
277 if (IS_INTRESOURCE(szName))
\r
278 - return Find((WORD) (DWORD) szName);
\r
279 + return Find((WORD) (ULONG_PTR) szName);
\r
281 if (szName[0] == '#')
\r
282 return Find(WORD(atoi(szName + 1)));
\r
284 if (IS_INTRESOURCE(szName)) {
\r
285 m_bHasName = false;
\r
287 - m_wId = (WORD) (DWORD) szName;
\r
288 + m_wId = (WORD) (ULONG_PTR) szName;
\r
293 if (IS_INTRESOURCE(szName)) {
\r
294 m_bHasName = false;
\r
296 - m_wId = (WORD) (DWORD) szName;
\r
297 + m_wId = (WORD) (ULONG_PTR) szName;
\r
301 Index: Source/ResourceEditor.h
302 --- ../release/nsis-2.17-src/Source/ResourceEditor.h 2006-04-28 08:54:42.000000000 -0700
303 +++ ./Source/ResourceEditor.h 2006-07-31 05:48:44.000000000 -0700
308 - DWORD m_dwWrittenAt;
\r
309 + ULONG_PTR m_dwWrittenAt;
\r
312 IMAGE_RESOURCE_DIRECTORY m_rdDir;
\r
315 CResourceDataEntry* GetDataEntry();
\r
317 - DWORD m_dwWrittenAt;
\r
318 + ULONG_PTR m_dwWrittenAt;
\r
324 DWORD GetCodePage();
\r
326 - DWORD m_dwWrittenAt;
\r
327 + ULONG_PTR m_dwWrittenAt;
\r
331 Index: Source/script.cpp
332 --- ../release/nsis-2.17-src/Source/script.cpp 2006-03-28 10:22:34.000000000 -0800
333 +++ ./Source/script.cpp 2006-07-31 20:56:03.000000000 -0700
334 @@ -4748,8 +4748,8 @@
345 @@ -6075,8 +6075,8 @@
356 Index: Source/util.cpp
357 --- ../release/nsis-2.17-src/Source/util.cpp 2006-04-28 08:54:42.000000000 -0700
358 +++ ./Source/util.cpp 2006-07-31 05:48:44.000000000 -0700
360 FIX_ENDIAN_INT32_INPLACE(rdEntry.OffsetToData);
\r
361 MY_ASSERT(!rdEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
\r
363 - PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
\r
364 + PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
\r
366 MY_ASSERT((size_t)rdIcons - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
\r
369 FIX_ENDIAN_INT32_INPLACE(icoEntry.OffsetToData);
\r
371 MY_ASSERT(!icoEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
\r
372 - PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
\r
373 + PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
\r
375 MY_ASSERT((size_t)rd - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
\r
379 MY_ASSERT(datEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
\r
381 - PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + DWORD(rdRoot));
\r
382 + PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + ULONG_PTR(rdRoot));
\r
384 MY_ASSERT((size_t)rde - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
\r
386 @@ -355,10 +355,10 @@
390 - DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + DWORD(rdRoot) - dwResourceSectionVA - DWORD(exeHeader);
\r
391 + DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + ULONG_PTR(rdRoot) - dwResourceSectionVA - ULONG_PTR(exeHeader);
\r
392 *(LPDWORD) seeker = FIX_ENDIAN_INT32(dwOffset);
\r
394 - MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (DWORD)rdRoot - (DWORD)exeHeader, "invalid data offset - icon resource probably compressed");
\r
395 + MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (ULONG_PTR)rdRoot - (ULONG_PTR)exeHeader, "invalid data offset - icon resource probably compressed");
\r
398 LPBYTE seeker = uninstIconData;
\r
399 Index: Source/writer.cpp
400 --- ../release/nsis-2.17-src/Source/writer.cpp 2006-03-11 03:13:07.000000000 -0800
401 +++ ./Source/writer.cpp 2006-07-31 13:27:37.000000000 -0700
405 #ifdef NSIS_CONFIG_CRC_SUPPORT
\r
406 -extern "C" unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
\r
407 +extern "C" unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
\r
409 void crc_writer_sink::write_data(const void *data, const size_t size)
\r
411 Index: Source/writer.h
412 --- ../release/nsis-2.17-src/Source/writer.h 2006-03-11 03:13:07.000000000 -0800
413 +++ ./Source/writer.h 2006-07-31 13:27:58.000000000 -0700
415 #ifdef NSIS_CONFIG_CRC_SUPPORT
\r
416 class crc_writer_sink : public writer_sink {
\r
418 - crc_writer_sink(unsigned long *crc) : m_crc(crc) {}
\r
419 + crc_writer_sink(unsigned int *crc) : m_crc(crc) {}
\r
421 virtual void write_data(const void *data, const size_t size);
\r
424 - unsigned long *m_crc;
\r
425 + unsigned int *m_crc;
\r