1Index: 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 4@@ -65,7 +65,7 @@ 5 cross_env(stub_env) 6 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 12 13@@ -82,8 +82,8 @@ 14 makensis_env = defenv.Copy() 15 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 20 21 conf = FlagsConfigure(makensis_env) 22 conf.CheckLinkFlag('$MAP_FLAG') # generate map file 23@@ -97,7 +97,7 @@ 24 cross_env(plugin_env) 25 26 if not defenv['DEBUG']: 27- plugin_env.Append(CCFLAGS = '-Os') # optimize for size 28+ plugin_env.Append(CCFLAGS = '-Os -fno-strict-aliasing') # optimize for size 29 plugin_env.Append(CCFLAGS = '-Wall') # level 3 warnings 30 31 if not defenv['DEBUG']: 32@@ -111,7 +111,7 @@ 33 cp_util_env = defenv.Copy() 34 35 if not defenv['DEBUG']: 36- cp_util_env.Append(CCFLAGS = '-O2') # optimize 37+ cp_util_env.Append(CCFLAGS = '-O2 -fno-strict-aliasing') # optimize 38 cp_util_env.Append(CCFLAGS = '-Wall') # all warnings 39 40 conf = FlagsConfigure(cp_util_env) 41Index: 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 44@@ -2384,7 +2384,7 @@ 45 return PS_ERROR; 46 } 47 #ifdef NSIS_CONFIG_CRC_SUPPORT 48- crc_writer_sink crc_sink((unsigned long *) &crc); 49+ crc_writer_sink crc_sink((unsigned int *) &crc); 50 firstheader_writer w(&crc_sink); 51 w.write(&fh); 52 53Index: Source/build.h 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 56@@ -38,7 +38,7 @@ 57 #ifdef NSIS_CONFIG_CRC_SUPPORT 58 extern "C" 59 { 60- unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len); 61+ unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len); 62 }; 63 #endif 64 65Index: Source/crc32.c 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 68@@ -3,18 +3,18 @@ 69 #ifdef NSIS_CONFIG_CRC_SUPPORT 70 71 // this is based on the (slow,small) CRC32 implementation from zlib. 72-unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len) 73+unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len) 74 { 75- static unsigned long crc_table[256]; 76+ static unsigned int crc_table[256]; 77 78 if (!crc_table[1]) 79 { 80- unsigned long c; 81+ unsigned int c; 82 int n, k; 83 84 for (n = 0; n < 256; n++) 85 { 86- c = (unsigned long)n; 87+ c = (unsigned int)n; 88 for (k = 0; k < 8; k++) c = (c >> 1) ^ (c & 1 ? 0xedb88320L : 0); 89 crc_table[n] = c; 90 } 91Index: 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 94@@ -93,7 +93,7 @@ 95 if (IS_INTRESOURCE(x)) { \ 96 *(WORD*)seeker = 0xFFFF; \ 97 seeker += sizeof(WORD); \ 98- *(WORD*)seeker = ConvertEndianness(WORD(DWORD(x))); \ 99+ *(WORD*)seeker = ConvertEndianness(WORD(ULONG_PTR(x))); \ 100 seeker += sizeof(WORD); \ 101 } \ 102 else { \ 103@@ -629,7 +629,7 @@ 104 } 105 } 106 107- assert((DWORD) seeker - (DWORD) pbDlg == dwSize); 108+ assert((ULONG_PTR) seeker - (ULONG_PTR) pbDlg == dwSize); 109 110 // DONE! 111 return pbDlg; 112Index: 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 115@@ -95,7 +95,7 @@ 116 static z_stream g_inflate_stream; 117 #endif 118 119-extern unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len); 120+extern unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len); 121 122 const char * NSISCALL loadHeaders(int cl_flags) 123 { 124Index: 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 127@@ -16,15 +16,15 @@ 128 // basic types 129 typedef unsigned char BYTE, *PBYTE, *LPBYTE; 130 typedef unsigned short WORD, *LPWORD; 131-typedef unsigned long DWORD, *LPDWORD; 132+typedef unsigned int DWORD, *LPDWORD; 133 typedef short SHORT; 134 typedef unsigned short USHORT; 135 typedef unsigned int UINT; 136 typedef unsigned int UINT32; 137 typedef int INT; 138 typedef int INT32; 139-typedef long LONG; 140-typedef unsigned long ULONG; 141+typedef int LONG; 142+typedef unsigned int ULONG; 143 typedef long long INT64, LARGE_INTEGER; 144 typedef unsigned long long UINT64, ULARGE_INTEGER; 145 typedef int BOOL, *LPBOOL; 146@@ -35,13 +35,14 @@ 147 typedef const char *LPCCH, *PCSTR, *LPCSTR; 148 typedef unsigned short WCHAR, *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR; 149 typedef const unsigned short *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR; 150-typedef unsigned int UINT_PTR; 151+typedef unsigned long UINT_PTR; 152+typedef unsigned long ULONG_PTR; 153 // basic stuff 154 typedef void * HANDLE; 155-typedef unsigned long HKEY; 156+typedef unsigned int HKEY; 157 // some gdi 158-typedef unsigned long COLORREF; 159-typedef unsigned long HBRUSH; 160+typedef unsigned int COLORREF; 161+typedef unsigned int HBRUSH; 162 // bool 163 # define FALSE 0 164 # define TRUE 1 165@@ -129,13 +130,13 @@ 166 167 #ifndef _WIN32 168 # ifndef FIELD_OFFSET 169-# define FIELD_OFFSET(t,f) ((LONG)&(((t*)0)->f)) 170+# define FIELD_OFFSET(t,f) ((ULONG_PTR)&(((t*)0)->f)) 171 # endif 172 # ifndef MAKEINTRESOURCE 173 # define MAKEINTRESOURCE(i) (LPSTR)((DWORD)((WORD)(i))) 174 # endif 175 # ifndef IMAGE_FIRST_SECTION 176-# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (DWORD) h + \ 177+# define IMAGE_FIRST_SECTION(h) ( PIMAGE_SECTION_HEADER( (ULONG_PTR) h + \ 178 FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \ 179 FIX_ENDIAN_INT16(PIMAGE_NT_HEADERS(h)->FileHeader.SizeOfOptionalHeader) ) ) 180 # endif 181@@ -166,9 +167,9 @@ 182 # define FOF_NOERRORUI 0x0400 183 #endif 184 185-#ifndef ULONG_PTR 186-# define ULONG_PTR DWORD 187-#endif 188+//#ifndef ULONG_PTR 189+//# define ULONG_PTR ULONG 190+//#endif 191 192 #ifndef IDC_HAND 193 # define IDC_HAND MAKEINTRESOURCE(32649) 194Index: 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 197@@ -120,8 +120,8 @@ 198 DWORD prd = FIX_ENDIAN_INT32(sections[i].PointerToRawData); 199 PIMAGE_EXPORT_DIRECTORY exports = PIMAGE_EXPORT_DIRECTORY(&dlldata[0] + prd + ExportDirVA - va); 200 DWORD na = FIX_ENDIAN_INT32(exports->AddressOfNames); 201- unsigned long *names = (unsigned long*)((unsigned long) exports + (char *) na - ExportDirVA); 202- for (unsigned long j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++) 203+ unsigned int *names = (unsigned int*)((unsigned long) exports + (char *) na - ExportDirVA); 204+ for (unsigned int j = 0; j < FIX_ENDIAN_INT32(exports->NumberOfNames); j++) 205 { 206 const string name = string((char*)exports + FIX_ENDIAN_INT32(names[j]) - ExportDirVA); 207 const string signature = dllName + "::" + name; 208Index: 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 211@@ -545,7 +545,7 @@ 212 rdDir.NumberOfIdEntries = ConvertEndianness(rdDir.NumberOfIdEntries); 213 214 CopyMemory(seeker, &rdDir, sizeof(IMAGE_RESOURCE_DIRECTORY)); 215- crd->m_dwWrittenAt = DWORD(seeker); 216+ crd->m_dwWrittenAt = ULONG_PTR(seeker); 217 seeker += sizeof(IMAGE_RESOURCE_DIRECTORY); 218 219 for (int i = 0; i < crd->CountEntries(); i++) { 220@@ -566,7 +566,7 @@ 221 rDirE.NameString.NameIsString = (crd->GetEntry(i)->HasName()) ? 1 : 0; 222 223 CopyMemory(seeker, &rDirE, sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY)); 224- crd->GetEntry(i)->m_dwWrittenAt = DWORD(seeker); 225+ crd->GetEntry(i)->m_dwWrittenAt = ULONG_PTR(seeker); 226 seeker += sizeof(MY_IMAGE_RESOURCE_DIRECTORY_ENTRY); 227 } 228 qDirs.pop(); 229@@ -582,7 +582,7 @@ 230 rDataE.Size = ConvertEndianness(cRDataE->GetSize()); 231 232 CopyMemory(seeker, &rDataE, sizeof(IMAGE_RESOURCE_DATA_ENTRY)); 233- cRDataE->m_dwWrittenAt = DWORD(seeker); 234+ cRDataE->m_dwWrittenAt = ULONG_PTR(seeker); 235 seeker += sizeof(IMAGE_RESOURCE_DATA_ENTRY); 236 237 qDataEntries.pop(); 238@@ -594,7 +594,7 @@ 239 while (!qStrings.empty()) { 240 CResourceDirectoryEntry* cRDirE = qStrings.front(); 241 242- PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(seeker) - DWORD(pbRsrcSec)); 243+ PMY_IMAGE_RESOURCE_DIRECTORY_ENTRY(cRDirE->m_dwWrittenAt)->NameString.NameOffset = ConvertEndianness(DWORD(ULONG_PTR(seeker) - ULONG_PTR(pbRsrcSec))); 244 245 char* szName = cRDirE->GetName(); 246 WORD iLen = strlen(szName) + 1; 247@@ -626,7 +626,7 @@ 248 while (!qDataEntries2.empty()) { 249 CResourceDataEntry* cRDataE = qDataEntries2.front(); 250 CopyMemory(seeker, cRDataE->GetData(), cRDataE->GetSize()); 251- PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(seeker - pbRsrcSec + m_dwResourceSectionVA); 252+ PIMAGE_RESOURCE_DATA_ENTRY(cRDataE->m_dwWrittenAt)->OffsetToData = ConvertEndianness(DWORD(seeker - pbRsrcSec + m_dwResourceSectionVA)); 253 254 seeker += RALIGN(cRDataE->GetSize(), 8); 255 256@@ -636,7 +636,7 @@ 257 /* 258 * Set all of the directory entries offsets. 259 */ 260- SetOffsets(m_cResDir, DWORD(pbRsrcSec)); 261+ SetOffsets(m_cResDir, ULONG_PTR(pbRsrcSec)); 262 } 263 264 // Sets the offsets in directory entries 265@@ -650,7 +650,7 @@ 266 SetOffsets(resDir->GetEntry(i)->GetSubDirectory(), newResDirAt); 267 } 268 else { 269- rde->OffsetToData = ConvertEndianness(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt); 270+ rde->OffsetToData = ConvertEndianness(DWORD(resDir->GetEntry(i)->GetDataEntry()->m_dwWrittenAt - newResDirAt)); 271 } 272 } 273 } 274@@ -758,7 +758,7 @@ 275 // Returns -1 if can not be found 276 int CResourceDirectory::Find(char* szName) { 277 if (IS_INTRESOURCE(szName)) 278- return Find((WORD) (DWORD) szName); 279+ return Find((WORD) (ULONG_PTR) szName); 280 else 281 if (szName[0] == '#') 282 return Find(WORD(atoi(szName + 1))); 283@@ -836,7 +836,7 @@ 284 if (IS_INTRESOURCE(szName)) { 285 m_bHasName = false; 286 m_szName = 0; 287- m_wId = (WORD) (DWORD) szName; 288+ m_wId = (WORD) (ULONG_PTR) szName; 289 } 290 else { 291 m_bHasName = true; 292@@ -851,7 +851,7 @@ 293 if (IS_INTRESOURCE(szName)) { 294 m_bHasName = false; 295 m_szName = 0; 296- m_wId = (WORD) (DWORD) szName; 297+ m_wId = (WORD) (ULONG_PTR) szName; 298 } 299 else { 300 m_bHasName = true; 301Index: 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 304@@ -173,7 +173,7 @@ 305 306 void Destroy(); 307 308- DWORD m_dwWrittenAt; 309+ ULONG_PTR m_dwWrittenAt; 310 311 private: 312 IMAGE_RESOURCE_DIRECTORY m_rdDir; 313@@ -197,7 +197,7 @@ 314 315 CResourceDataEntry* GetDataEntry(); 316 317- DWORD m_dwWrittenAt; 318+ ULONG_PTR m_dwWrittenAt; 319 320 private: 321 bool m_bHasName; 322@@ -226,7 +226,7 @@ 323 DWORD GetSize(); 324 DWORD GetCodePage(); 325 326- DWORD m_dwWrittenAt; 327+ ULONG_PTR m_dwWrittenAt; 328 329 private: 330 BYTE* m_pbData; 331Index: 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 @@ 335 { 336 struct 337 { 338- long l; 339- long h; 340+ int l; 341+ int h; 342 } words; 343 long long ll; 344 }; 345@@ -6075,8 +6075,8 @@ 346 { 347 struct 348 { 349- long l; 350- long h; 351+ int l; 352+ int h; 353 } words; 354 long long ll; 355 }; 356Index: 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 359@@ -312,7 +312,7 @@ 360 FIX_ENDIAN_INT32_INPLACE(rdEntry.OffsetToData); 361 MY_ASSERT(!rdEntry.DirectoryOffset.DataIsDirectory, "bad resource directory"); 362 363- PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot)); 364+ PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot)); 365 366 MY_ASSERT((size_t)rdIcons - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer"); 367 368@@ -325,7 +325,7 @@ 369 FIX_ENDIAN_INT32_INPLACE(icoEntry.OffsetToData); 370 371 MY_ASSERT(!icoEntry.DirectoryOffset.DataIsDirectory, "bad resource directory"); 372- PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + DWORD(rdRoot)); 373+ PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(icoEntry.DirectoryOffset.OffsetToDirectory + ULONG_PTR(rdRoot)); 374 375 MY_ASSERT((size_t)rd - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer"); 376 377@@ -334,7 +334,7 @@ 378 379 MY_ASSERT(datEntry.DirectoryOffset.DataIsDirectory, "bad resource directory"); 380 381- PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + DWORD(rdRoot)); 382+ PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(datEntry.OffsetToData + ULONG_PTR(rdRoot)); 383 384 MY_ASSERT((size_t)rde - (size_t)exeHeader > exeHeaderSize, "corrupted EXE - invalid pointer"); 385 386@@ -355,10 +355,10 @@ 387 } 388 389 // Set offset 390- DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + DWORD(rdRoot) - dwResourceSectionVA - DWORD(exeHeader); 391+ DWORD dwOffset = FIX_ENDIAN_INT32(rde->OffsetToData) + ULONG_PTR(rdRoot) - dwResourceSectionVA - ULONG_PTR(exeHeader); 392 *(LPDWORD) seeker = FIX_ENDIAN_INT32(dwOffset); 393 394- MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (DWORD)rdRoot - (DWORD)exeHeader, "invalid data offset - icon resource probably compressed"); 395+ MY_ASSERT(dwOffset > exeHeaderSize || dwOffset < (ULONG_PTR)rdRoot - (ULONG_PTR)exeHeader, "invalid data offset - icon resource probably compressed"); 396 } 397 398 LPBYTE seeker = uninstIconData; 399Index: 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 402@@ -64,7 +64,7 @@ 403 } 404 405 #ifdef NSIS_CONFIG_CRC_SUPPORT 406-extern "C" unsigned long NSISCALL CRC32(unsigned long crc, const unsigned char *buf, unsigned int len); 407+extern "C" unsigned int NSISCALL CRC32(unsigned int crc, const unsigned char *buf, unsigned int len); 408 409 void crc_writer_sink::write_data(const void *data, const size_t size) 410 { 411Index: 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 414@@ -57,12 +57,12 @@ 415 #ifdef NSIS_CONFIG_CRC_SUPPORT 416 class crc_writer_sink : public writer_sink { 417 public: 418- crc_writer_sink(unsigned long *crc) : m_crc(crc) {} 419+ crc_writer_sink(unsigned int *crc) : m_crc(crc) {} 420 421 virtual void write_data(const void *data, const size_t size); 422 423 private: 424- unsigned long *m_crc; 425+ unsigned int *m_crc; 426 427 }; 428 #endif 429