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-07-31 05:48:44.000000000 -0700
7 if not defenv['DEBUG']:
8 - stub_env.Append(CCFLAGS = '-Os') # optimize for size
9 + stub_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
10 stub_env.Append(CCFLAGS = '-Wall') # all warnings
11 stub_env.Append(CCFLAGS = '-x c') # force compile as c
14 makensis_env = defenv.Copy()
16 if not defenv['DEBUG']:
17 - makensis_env.Append(CCFLAGS = '-O2') # optimize
18 + makensis_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
19 makensis_env.Append(CCFLAGS = '-Wall') # all warnings
21 conf = FlagsConfigure(makensis_env)
25 if not defenv['DEBUG']:
26 - plugin_env.Append(CCFLAGS = '-Os') # optimize for size
27 + plugin_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size
28 plugin_env.Append(CCFLAGS = '-Wall') # level 3 warnings
30 if not defenv['DEBUG']:
32 cp_util_env = defenv.Copy()
34 if not defenv['DEBUG']:
35 - cp_util_env.Append(CCFLAGS = '-O2') # optimize
36 + cp_util_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize
37 cp_util_env.Append(CCFLAGS = '-Wall') # all warnings
39 conf = FlagsConfigure(cp_util_env)
40 Index: Source/build.cpp
41 --- ../release/nsis-2.17-src/Source/build.cpp 2006-04-14 03:05:01.000000000 -0700
42 +++ ./Source/build.cpp 2006-07-31 13:26:38.000000000 -0700
46 #ifdef NSIS_CONFIG_CRC_SUPPORT
47 - crc_writer_sink crc_sink((unsigned long *) &crc);
48 + crc_writer_sink crc_sink((unsigned int *) &crc);
49 firstheader_writer w(&crc_sink);
53 --- ../release/nsis-2.17-src/Source/build.h 2005-04-02 04:04:06.000000000 -0800
54 +++ ./Source/build.h 2006-07-31 13:28:44.000000000 -0700
56 #ifdef NSIS_CONFIG_CRC_SUPPORT
59 - unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
60 + unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
65 --- ../release/nsis-2.17-src/Source/crc32.c 2004-03-12 12:43:54.000000000 -0800
66 +++ ./Source/crc32.c 2006-07-31 13:27:12.000000000 -0700
68 #ifdef NSIS_CONFIG_CRC_SUPPORT
70 // this is based on the (slow,small) CRC32 implementation from zlib.
71 -unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len)
72 +unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len)
74 - static unsigned long crc_table[256];
75 + static unsigned int crc_table[256];
83 for (n = 0; n < 256; n++)
85 - c = (unsigned long)n;
86 + c = (unsigned int)n;
87 for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320L : 0);
90 Index: Source/DialogTemplate.cpp
91 --- ../release/nsis-2.17-src/Source/DialogTemplate.cpp 2006-03-24 10:36:24.000000000 -0800
92 +++ ./Source/DialogTemplate.cpp 2006-07-31 05:48:44.000000000 -0700
94 if (IS_INTRESOURCE(x)) { \
95 *(WORD*)seeker = 0xFFFF; \
96 seeker += sizeof(WORD); \
97 - *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \
98 + *(WORD*)seeker = ConvertEndianness(WORD(ULONG_PTR(x))); \
99 seeker += sizeof(WORD); \
106 - assert((DWORD) seeker - (DWORD) pbDlg == dwSize);
107 + assert((ULONG_PTR) seeker - (ULONG_PTR) pbDlg == dwSize);
111 Index: Source/exehead/fileform.c
112 --- ../release/nsis-2.17-src/Source/exehead/fileform.c 2005-09-09 09:08:44.000000000 -0700
113 +++ ./Source/exehead/fileform.c 2006-07-31 13:26:08.000000000 -0700
115 static z_stream g_inflate_stream;
118 -extern unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
119 +extern unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
121 const char * NSISCALL loadHeaders(int cl_flags)
123 Index: Source/Platform.h
124 --- ../release/nsis-2.17-src/Source/Platform.h 2006-05-03 08:43:54.000000000 -0700
125 +++ ./Source/Platform.h 2006-07-31 05:48:44.000000000 -0700
128 typedef unsigned char BYTE, *PBYTE, *LPBYTE;
129 typedef unsigned short WORD, *LPWORD;
130 -typedef unsigned long DWORD, *LPDWORD;
131 +typedef unsigned int DWORD, *LPDWORD;
133 typedef unsigned short USHORT;
134 typedef unsigned int UINT;
135 typedef unsigned int UINT32;
139 -typedef unsigned long ULONG;
141 +typedef unsigned int ULONG;
142 typedef long long INT64, LARGE_INTEGER;
143 typedef unsigned long long UINT64, ULARGE_INTEGER;
144 typedef int BOOL, *LPBOOL;
146 typedef const char *LPCCH, *PCSTR, *LPCSTR;
147 typedef unsigned short WCHAR, *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR;
148 typedef const unsigned short *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR;
149 -typedef unsigned int UINT_PTR;
150 +typedef unsigned long UINT_PTR;
151 +typedef unsigned long ULONG_PTR;
153 typedef void * HANDLE;
154 -typedef unsigned long HKEY;
155 +typedef unsigned int HKEY;
157 -typedef unsigned long COLORREF;
158 -typedef unsigned long HBRUSH;
159 +typedef unsigned int COLORREF;
160 +typedef unsigned int HBRUSH;
164 @@ -129,13 +130,13 @@
167 # ifndef FIELD_OFFSET
168 -# define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f))
169 +# define FIELD_OFFSET(t,f) ((ULONG_PTR)&(((t*)0)->f))
171 # ifndef MAKEINTRESOURCE
172 # define MAKEINTRESOURCE(i) (LPSTR)((DWORD)((WORD)(i)))
174 # ifndef IMAGE_FIRST_SECTION
175 -# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (DWORD) h + \
176 +# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (ULONG_PTR) h + \
177 FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \
178 FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) )
181 # define FOF_NOERRORUI 0x0400
185 -# define ULONG_PTR DWORD
188 +//# define ULONG_PTR ULONG
192 # define IDC_HAND MAKEINTRESOURCE(32649)
193 Index: Source/Plugins.cpp
194 --- ../release/nsis-2.17-src/Source/Plugins.cpp 2006-04-05 11:42:12.000000000 -0700
195 +++ ./Source/Plugins.cpp 2006-07-31 06:50:08.000000000 -0700
197 DWORD prd = FIX_ENDIAN_INT32(sections[i].PointerToRawData);
198 PIMAGE_EXPORT_DIRECTORY exports = PIMAGE_EXPORT_DIRECTORY(&dlldata[0] + prd + ExportDirVA - va);
199 DWORD na = FIX_ENDIAN_INT32(exports->AddressOfNames);
200 - unsigned long *names = (unsigned long*)((unsigned long) exports + (char *) na - ExportDirVA);
201 - for (unsigned long j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
202 + unsigned int *names = (unsigned int*)((unsigned long) exports + (char *) na - ExportDirVA);
203 + for (unsigned int j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++)
205 const string name = string((char*)exports + FIX_ENDIAN_INT32(names[j]) - ExportDirVA);
206 const string signature = dllName + "::" + name;
207 Index: Source/ResourceEditor.cpp
208 --- ../release/nsis-2.17-src/Source/ResourceEditor.cpp 2006-04-05 11:40:09.000000000 -0700
209 +++ ./Source/ResourceEditor.cpp 2006-07-31 05:48:44.000000000 -0700
211 rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries);
213 CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY));
214 - crd->m_dwWrittenAt = DWORD(seeker);
215 + crd->m_dwWrittenAt = ULONG_PTR(seeker);
216 seeker += sizeof(IMAGE_RESOURCE_DIRECTORY);
218 for (int i = 0; i < crd->CountEntries(); i++) {
220 rDirE.NameString.NameIsString = (crd->GetEntry(i)->HasName()) ? 1 : 0;
222 CopyMemory(seeker, &rDirE, sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY));
223 - crd->GetEntry(i)->m_dwWrittenAt = DWORD(seeker);
224 + crd->GetEntry(i)->m_dwWrittenAt = ULONG_PTR(seeker);
225 seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY);
229 rDataE.Size = ConvertEndianness(cRDataE->GetSize());
231 CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY));
232 - cRDataE->m_dwWrittenAt = DWORD(seeker);
233 + cRDataE->m_dwWrittenAt = ULONG_PTR(seeker);
234 seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY);
238 while (!qStrings.empty()) {
239 CResourceDirectoryEntry* cRDirE = qStrings.front();
241 - PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(seeker) - DWORD(pbRsrcSec));
242 + PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(ULONG_PTR(seeker) - ULONG_PTR(pbRsrcSec)));
244 char* szName = cRDirE->GetName();
245 WORD iLen = strlen(szName) + 1;
247 while (!qDataEntries2.empty()) {
248 CResourceDataEntry* cRDataE = qDataEntries2.front();
249 CopyMemory(seeker, cRDataE->GetData(), cRDataE->GetSize());
250 - PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(seeker - pbRsrcSec + m_dwResourceSectionVA);
251 + PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(DWORD(seeker - pbRsrcSec + m_dwResourceSectionVA));
253 seeker += RALIGN(cRDataE->GetSize(), 8);
257 * Set all of the directory entries offsets.
259 - SetOffsets(m_cResDir, DWORD(pbRsrcSec));
260 + SetOffsets(m_cResDir, ULONG_PTR(pbRsrcSec));
263 // Sets the offsets in directory entries
265 SetOffsets(resDir->GetEntry(i)->GetSubDirectory(), newResDirAt);
268 - rde->OffsetToData = ConvertEndianness(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt);
269 + rde->OffsetToData = ConvertEndianness(DWORD(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt));
274 // Returns -1 if can not be found
275 int CResourceDirectory::Find(char* szName) {
276 if (IS_INTRESOURCE(szName))
277 - return Find((WORD) (DWORD) szName);
278 + return Find((WORD) (ULONG_PTR) szName);
280 if (szName[0] == '#')
281 return Find(WORD(atoi(szName + 1)));
283 if (IS_INTRESOURCE(szName)) {
286 - m_wId = (WORD) (DWORD) szName;
287 + m_wId = (WORD) (ULONG_PTR) szName;
292 if (IS_INTRESOURCE(szName)) {
295 - m_wId = (WORD) (DWORD) szName;
296 + m_wId = (WORD) (ULONG_PTR) szName;
300 Index: Source/ResourceEditor.h
301 --- ../release/nsis-2.17-src/Source/ResourceEditor.h 2006-04-28 08:54:42.000000000 -0700
302 +++ ./Source/ResourceEditor.h 2006-07-31 05:48:44.000000000 -0700
307 - DWORD m_dwWrittenAt;
308 + ULONG_PTR m_dwWrittenAt;
311 IMAGE_RESOURCE_DIRECTORY m_rdDir;
314 CResourceDataEntry* GetDataEntry();
316 - DWORD m_dwWrittenAt;
317 + ULONG_PTR m_dwWrittenAt;
325 - DWORD m_dwWrittenAt;
326 + ULONG_PTR m_dwWrittenAt;
330 Index: Source/script.cpp
331 --- ../release/nsis-2.17-src/Source/script.cpp 2006-03-28 10:22:34.000000000 -0800
332 +++ ./Source/script.cpp 2006-07-31 20:56:03.000000000 -0700
333 @@ -4748,8 +4748,8 @@
344 @@ -6075,8 +6075,8 @@
355 Index: Source/util.cpp
356 --- ../release/nsis-2.17-src/Source/util.cpp 2006-04-28 08:54:42.000000000 -0700
357 +++ ./Source/util.cpp 2006-07-31 05:48:44.000000000 -0700
359 FIX_ENDIAN_INT32_INPLACE(rdEntry.OffsetToData);
360 MY_ASSERT(!rdEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
362 - PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
363 + PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
365 MY_ASSERT((size_t)rdIcons - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
368 FIX_ENDIAN_INT32_INPLACE(icoEntry.OffsetToData);
370 MY_ASSERT(!icoEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
371 - PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot));
372 + PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot));
374 MY_ASSERT((size_t)rd - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
378 MY_ASSERT(datEntry.DirectoryOffset.DataIsDirectory, "bad resource directory");
380 - PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + DWORD(rdRoot));
381 + PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + ULONG_PTR(rdRoot));
383 MY_ASSERT((size_t)rde - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer");
385 @@ -355,10 +355,10 @@
389 - DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + DWORD(rdRoot) - dwResourceSectionVA - DWORD(exeHeader);
390 + DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + ULONG_PTR(rdRoot) - dwResourceSectionVA - ULONG_PTR(exeHeader);
391 *(LPDWORD) seeker = FIX_ENDIAN_INT32(dwOffset);
393 - MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (DWORD)rdRoot - (DWORD)exeHeader, "invalid data offset - icon resource probably compressed");
394 + MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (ULONG_PTR)rdRoot - (ULONG_PTR)exeHeader, "invalid data offset - icon resource probably compressed");
397 LPBYTE seeker = uninstIconData;
398 Index: Source/writer.cpp
399 --- ../release/nsis-2.17-src/Source/writer.cpp 2006-03-11 03:13:07.000000000 -0800
400 +++ ./Source/writer.cpp 2006-07-31 13:27:37.000000000 -0700
404 #ifdef NSIS_CONFIG_CRC_SUPPORT
405 -extern "C" unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len);
406 +extern "C" unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len);
408 void crc_writer_sink::write_data(const void *data, const size_t size)
410 Index: Source/writer.h
411 --- ../release/nsis-2.17-src/Source/writer.h 2006-03-11 03:13:07.000000000 -0800
412 +++ ./Source/writer.h 2006-07-31 13:27:58.000000000 -0700
414 #ifdef NSIS_CONFIG_CRC_SUPPORT
415 class crc_writer_sink : public writer_sink {
417 - crc_writer_sink(unsigned long *crc) : m_crc(crc) {}
418 + crc_writer_sink(unsigned int *crc) : m_crc(crc) {}
420 virtual void write_data(const void *data, const size_t size);
423 - unsigned long *m_crc;
424 + unsigned int *m_crc;