Package: nsis Version: 2.06-1 Severity: normal Tags: patch When building 'nsis' on amd64/unstable with gcc-4.0, I get the following error:
g++ -Wall -O3 -DCOMPRESS_MF_BT -c DialogTemplate.cpp -o ../build/DialogTemplate.o DialogTemplate.cpp: In member function 'void CDialogTemplate::ConvertToRTL()': DialogTemplate.cpp:440: error: cast from 'char*' to 'int' loses precision DialogTemplate.cpp:454: error: cast from 'char*' to 'int' loses precision DialogTemplate.cpp:460: error: cast from 'char*' to 'int' loses precision make[1]: *** [../build/DialogTemplate.o] Error 1 make[1]: Leaving directory `/nsis-2.06/Source' make: *** [build] Error 2 With the attached patch 'nsis' can be compiled on amd64 using gcc-4.0. Regards Andreas Jochens diff -urN ../tmp-orig/nsis-2.06/Source/DialogTemplate.cpp ./Source/DialogTemplate.cpp --- ../tmp-orig/nsis-2.06/Source/DialogTemplate.cpp 2005-03-10 19:53:34.000000000 +0100 +++ ./Source/DialogTemplate.cpp 2005-04-08 10:54:38.706395168 +0200 @@ -437,7 +437,7 @@ bool addExStyle = false; // Button - if (int(m_vItems[i]->szClass) == 0x80) { + if (long(m_vItems[i]->szClass) == 0x80) { m_vItems[i]->dwStyle ^= BS_LEFTTEXT; m_vItems[i]->dwStyle ^= BS_RIGHT; m_vItems[i]->dwStyle ^= BS_LEFT; @@ -451,13 +451,13 @@ } } // Edit - else if (int(m_vItems[i]->szClass) == 0x81) { + else if (long(m_vItems[i]->szClass) == 0x81) { if ((m_vItems[i]->dwStyle & ES_CENTER) == 0) { m_vItems[i]->dwStyle ^= ES_RIGHT; } } // Static - else if (int(m_vItems[i]->szClass) == 0x82) { + else if (long(m_vItems[i]->szClass) == 0x82) { if ((m_vItems[i]->dwStyle & SS_TYPEMASK) == SS_LEFT || (m_vItems[i]->dwStyle & SS_TYPEMASK) == SS_LEFTNOWORDWRAP) { m_vItems[i]->dwStyle &= ~SS_TYPEMASK; diff -urN ../tmp-orig/nsis-2.06/Source/util.cpp ./Source/util.cpp --- ../tmp-orig/nsis-2.06/Source/util.cpp 2005-01-29 16:31:56.000000000 +0100 +++ ./Source/util.cpp 2005-04-08 10:56:01.800597910 +0200 @@ -308,15 +308,15 @@ else iNextSection = (int)sectionHeadersArray[i+1].PointerToRawData; - MY_ASSERT((int)rdRoot - (int)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); + MY_ASSERT((long)rdRoot - (long)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); - int idx = find_in_dir(rdRoot, (WORD) (int) RT_ICON); + int idx = find_in_dir(rdRoot, (WORD) (long) RT_ICON); MY_ASSERT(idx == -1, "no icons?!"); MY_ASSERT(!rdRoot->Entries[idx].DirectoryOffset.DataIsDirectory, "bad resource directory"); PRESOURCE_DIRECTORY rdIcons = PRESOURCE_DIRECTORY(rdRoot->Entries[idx].DirectoryOffset.OffsetToDirectory + DWORD(rdRoot)); - MY_ASSERT((int)rdIcons - (int)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); + MY_ASSERT((long)rdIcons - (long)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); MY_ASSERT(rdIcons->Header.NumberOfIdEntries == 0, "no icons found"); @@ -324,12 +324,12 @@ MY_ASSERT(!rdIcons->Entries[i].DirectoryOffset.DataIsDirectory, "bad resource directory"); PRESOURCE_DIRECTORY rd = PRESOURCE_DIRECTORY(rdIcons->Entries[i].DirectoryOffset.OffsetToDirectory + DWORD(rdRoot)); - MY_ASSERT((int)rd - (int)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); + MY_ASSERT((long)rd - (long)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); MY_ASSERT(rd->Entries[0].DirectoryOffset.DataIsDirectory, "bad resource directory"); PIMAGE_RESOURCE_DATA_ENTRY rde = PIMAGE_RESOURCE_DATA_ENTRY(rd->Entries[0].OffsetToData + DWORD(rdRoot)); - MY_ASSERT((int)rde - (int)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); + MY_ASSERT((long)rde - (long)exeHeader > iNextSection, "corrupted EXE - invalid pointer"); // find icon to replace LPBYTE seeker = uninstIconData; @@ -350,7 +350,7 @@ // Set offset *(LPDWORD) seeker = rde->OffsetToData + DWORD(rdRoot) - dwResourceSectionVA - DWORD(exeHeader); - MY_ASSERT(*(int*)seeker > iNextSection || *(int*)seeker < (int)rdRoot - (int)exeHeader, "invalid data offset - icon resource probably compressed"); + MY_ASSERT(*(int*)seeker > iNextSection || *(int*)seeker < (long)rdRoot - (long)exeHeader, "invalid data offset - icon resource probably compressed"); } LPBYTE seeker = uninstIconData; -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]