Merge with develop
This commit is contained in:
parent
dab3de7a74
commit
486a5e4638
4 changed files with 34 additions and 31 deletions
|
@ -63,7 +63,7 @@ void XMLError (xmlNodePtr xmlNode, const std::string &filename, const char *form
|
||||||
vsnprintf( buffer, 1024, format, args );
|
vsnprintf( buffer, 1024, format, args );
|
||||||
va_end( args );
|
va_end( args );
|
||||||
|
|
||||||
Error (filename, "node (%s), line (%p) : %s", xmlNode->name, xmlNode->content, buffer);
|
Error (filename, "node (%s), line (%d) : %s", xmlNode->name, xmlNode->line, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ xmlNodePtr GetFirstChildNode (xmlNodePtr xmlNode, const std::string &filename, c
|
||||||
if (result) return result;
|
if (result) return result;
|
||||||
|
|
||||||
// Output a formated error
|
// Output a formated error
|
||||||
XMLError (xmlNode, filename.c_str(), "Can't find XML node named (%s)", childName);
|
XMLError (xmlNode, filename.c_str(), "Can't find XML node named (%s)", childName.c_str());
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ bool GetPropertyString (string &result, const std::string &filename, xmlNodePtr
|
||||||
if (!CIXml::getPropertyString (result, xmlNode, propName))
|
if (!CIXml::getPropertyString (result, xmlNode, propName))
|
||||||
{
|
{
|
||||||
// Output a formated error
|
// Output a formated error
|
||||||
XMLError (xmlNode, filename, "Can't find XML node property (%s)", propName);
|
XMLError (xmlNode, filename, "Can't find XML node property (%s)", propName.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -204,14 +204,14 @@ bool GetNodeString (string &result, const std::string &filename, xmlNodePtr xmlN
|
||||||
xmlNodePtr node = CIXml::getFirstChildNode (xmlNode, nodeName);
|
xmlNodePtr node = CIXml::getFirstChildNode (xmlNode, nodeName);
|
||||||
if (!node)
|
if (!node)
|
||||||
{
|
{
|
||||||
XMLError (xmlNode, filename, "Can't find XML node named (%s)", nodeName);
|
XMLError (xmlNode, filename, "Can't find XML node named (%s)", nodeName.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the node string
|
// Get the node string
|
||||||
if (!CIXml::getContentString (result, node))
|
if (!CIXml::getContentString (result, node))
|
||||||
{
|
{
|
||||||
XMLError (xmlNode, filename, "Can't find any text in the node named (%s)", nodeName);
|
XMLError (xmlNode, filename, "Can't find any text in the node named (%s)", nodeName.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1282,7 +1282,7 @@ bool IPrimitive::getProperty (uint index, std::string &property_name, const IPro
|
||||||
index--;
|
index--;
|
||||||
ite ++;
|
ite ++;
|
||||||
}
|
}
|
||||||
nlwarning ("NLLIGO::IPrimitive::getProperty : invalid index (index : %d, size : %d).", index, _Properties.size ());
|
nlwarning ("NLLIGO::IPrimitive::getProperty : invalid index (index : %u, size : %u).", index, (uint)_Properties.size ());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1303,7 +1303,7 @@ bool IPrimitive::getProperty (uint index, std::string &property_name, IProperty
|
||||||
index--;
|
index--;
|
||||||
ite ++;
|
ite ++;
|
||||||
}
|
}
|
||||||
nlwarning ("NLLIGO::IPrimitive::getProperty : invalid index (index : %d, size : %d).", index, _Properties.size ());
|
nlwarning ("NLLIGO::IPrimitive::getProperty : invalid index (index : %u, size : %u).", index, (uint)_Properties.size ());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1461,7 +1461,7 @@ bool IPrimitive::removeProperty (uint index)
|
||||||
index--;
|
index--;
|
||||||
ite ++;
|
ite ++;
|
||||||
}
|
}
|
||||||
nlwarning ("NLLIGO::IPrimitive::removeProperty : invalid index (index : %d, size : %d).", index, _Properties.size ());
|
nlwarning ("NLLIGO::IPrimitive::removeProperty : invalid index (index : %u, size : %u).", index, (uint)_Properties.size ());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1503,7 +1503,7 @@ bool IPrimitive::getChild (const IPrimitive *&result, uint childId) const
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nlwarning ("NLLIGO::IPrimitive::getChild : invalid index (index : %d, size %d).", childId, _Children.size ());
|
nlwarning ("NLLIGO::IPrimitive::getChild : invalid index (index : %u, size %u).", childId, (uint)_Children.size ());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1519,7 +1519,7 @@ bool IPrimitive::getChild (IPrimitive *&result, uint childId)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nlwarning ("NLLIGO::IPrimitive::getChild : invalid index (index : %d, size %d).", childId, _Children.size ());
|
nlwarning ("NLLIGO::IPrimitive::getChild : invalid index (index : %u, size %u).", childId, (uint)_Children.size ());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1553,7 +1553,7 @@ bool IPrimitive::removeChild (uint childId)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
nlwarning ("NLLIGO::IPrimitive::removeChild : invalid index (index : %d, size %d).", childId, _Children.size ());
|
nlwarning ("NLLIGO::IPrimitive::removeChild : invalid index (index : %u, size %u).", childId, (uint)_Children.size ());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -2510,7 +2510,7 @@ bool CPrimitives::read (xmlNodePtr xmlNode, const std::string &filename, CLigoCo
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error (filename, "CPrimitives::read : Unknown file version (%d)", version);
|
Error (filename, "CPrimitives::read : Unknown file version (%u)", version);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,8 +121,8 @@ void CSnapshotToolDlg::stringFromRegistry(HKEY hKey, const TCHAR *name, CString
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CUniquePtr<TCHAR[]> tmpDest(new TCHAR[size]);
|
std::vector<TCHAR> tmpDest(size);
|
||||||
result = RegQueryValueEx(hKey, name, NULL, &type, (BYTE*)tmpDest.get(), &size);
|
result = RegQueryValueEx(hKey, name, NULL, &type, (BYTE*)&tmpDest[0], &size);
|
||||||
|
|
||||||
if (result != ERROR_SUCCESS)
|
if (result != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
|
@ -130,7 +130,7 @@ void CSnapshotToolDlg::stringFromRegistry(HKEY hKey, const TCHAR *name, CString
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dest = tmpDest.get();
|
dest = &tmpDest[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -85,14 +85,14 @@ bool i_comp(const string &s0, const string &s1)
|
||||||
return nlstricmp (CFile::getFilename(s0).c_str(), CFile::getFilename(s1).c_str()) < 0;
|
return nlstricmp (CFile::getFilename(s0).c_str(), CFile::getFilename(s1).c_str()) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void packSubRecurse(const std::string &srcDirectory)
|
bool packSubRecurse(const std::string &srcDirectory)
|
||||||
{
|
{
|
||||||
vector<string> pathContent;
|
vector<string> pathContent;
|
||||||
|
|
||||||
printf ("Treating directory: %s\n", srcDirectory.c_str());
|
printf ("Treating directory: %s\n", srcDirectory.c_str());
|
||||||
CPath::getPathContent(srcDirectory, true, false, true, pathContent);
|
CPath::getPathContent(srcDirectory, true, false, true, pathContent);
|
||||||
|
|
||||||
if (pathContent.empty()) return;
|
if (pathContent.empty()) return true;
|
||||||
|
|
||||||
// Sort filename
|
// Sort filename
|
||||||
sort (pathContent.begin(), pathContent.end(), i_comp);
|
sort (pathContent.begin(), pathContent.end(), i_comp);
|
||||||
|
@ -102,8 +102,8 @@ void packSubRecurse(const std::string &srcDirectory)
|
||||||
{
|
{
|
||||||
if (toLower(CFile::getFilename(pathContent[i-1])) == toLower(CFile::getFilename(pathContent[i])))
|
if (toLower(CFile::getFilename(pathContent[i-1])) == toLower(CFile::getFilename(pathContent[i])))
|
||||||
{
|
{
|
||||||
nlerror("File %s is not unique in BNP!", CFile::getFilename(pathContent[i]).c_str());
|
nlwarning("File %s is not unique in BNP!", CFile::getFilename(pathContent[i]).c_str());
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,6 +121,8 @@ void packSubRecurse(const std::string &srcDirectory)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
@ -194,7 +196,8 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
CFile::deleteFile(gBNPHeader.BigFileName);
|
CFile::deleteFile(gBNPHeader.BigFileName);
|
||||||
|
|
||||||
packSubRecurse(srcDirectory);
|
if (!packSubRecurse(srcDirectory)) return 1;
|
||||||
|
|
||||||
return gBNPHeader.appendHeader() ? 0:-1;
|
return gBNPHeader.appendHeader() ? 0:-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -196,26 +196,26 @@ bool unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate input buffer for props
|
// allocate input buffer for props
|
||||||
CUniquePtr<uint8[]> propsBuffer(new uint8[LZMA_PROPS_SIZE]);
|
std::vector<uint8> propsBuffer(LZMA_PROPS_SIZE);
|
||||||
|
|
||||||
// size of LZMA content
|
// size of LZMA content
|
||||||
inSize -= LZMA_PROPS_SIZE + 8;
|
inSize -= LZMA_PROPS_SIZE + 8;
|
||||||
|
|
||||||
// allocate input buffer for lzma data
|
// allocate input buffer for lzma data
|
||||||
CUniquePtr<uint8[]> inBuffer(new uint8[inSize]);
|
std::vector<uint8> inBuffer(inSize);
|
||||||
|
|
||||||
uint64 fileSize = 0;
|
uint64 fileSize = 0;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// read props
|
// read props
|
||||||
inStream.serialBuffer(propsBuffer.get(), LZMA_PROPS_SIZE);
|
inStream.serialBuffer(&propsBuffer[0], LZMA_PROPS_SIZE);
|
||||||
|
|
||||||
// read uncompressed size
|
// read uncompressed size
|
||||||
inStream.serial(fileSize);
|
inStream.serial(fileSize);
|
||||||
|
|
||||||
// read lzma content
|
// read lzma content
|
||||||
inStream.serialBuffer(inBuffer.get(), inSize);
|
inStream.serialBuffer(&inBuffer[0], inSize);
|
||||||
}
|
}
|
||||||
catch(const EReadError &e)
|
catch(const EReadError &e)
|
||||||
{
|
{
|
||||||
|
@ -224,14 +224,14 @@ bool unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate the output buffer
|
// allocate the output buffer
|
||||||
CUniquePtr<uint8[]> outBuffer(new uint8[fileSize]);
|
std::vector<uint8> outBuffer(fileSize);
|
||||||
|
|
||||||
// in and out file sizes
|
// in and out file sizes
|
||||||
SizeT outProcessed = (SizeT)fileSize;
|
SizeT outProcessed = (SizeT)fileSize;
|
||||||
SizeT inProcessed = (SizeT)inSize;
|
SizeT inProcessed = (SizeT)inSize;
|
||||||
|
|
||||||
// decompress the file in memory
|
// decompress the file in memory
|
||||||
sint res = LzmaUncompress(outBuffer.get(), &outProcessed, inBuffer.get(), &inProcessed, propsBuffer.get(), LZMA_PROPS_SIZE);
|
sint res = LzmaUncompress(&outBuffer[0], &outProcessed, &inBuffer[0], &inProcessed, &propsBuffer[0], LZMA_PROPS_SIZE);
|
||||||
|
|
||||||
if (res != 0 || outProcessed != fileSize)
|
if (res != 0 || outProcessed != fileSize)
|
||||||
{
|
{
|
||||||
|
@ -245,7 +245,7 @@ bool unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// write content
|
// write content
|
||||||
outStream.serialBuffer(outBuffer.get(), (uint)fileSize);
|
outStream.serialBuffer(&outBuffer[0], (uint)fileSize);
|
||||||
}
|
}
|
||||||
catch(const EFile &e)
|
catch(const EFile &e)
|
||||||
{
|
{
|
||||||
|
@ -273,12 +273,12 @@ bool packLZMA(const std::string &srcFileName, const std::string &lzmaFileName)
|
||||||
}
|
}
|
||||||
|
|
||||||
// allocate input buffer
|
// allocate input buffer
|
||||||
CUniquePtr<uint8[]> inBuffer(new uint8[inSize]);
|
std::vector<uint8> inBuffer(inSize);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// read file in buffer
|
// read file in buffer
|
||||||
inStream.serialBuffer(inBuffer.get(), inSize);
|
inStream.serialBuffer(&inBuffer[0], inSize);
|
||||||
}
|
}
|
||||||
catch(const EReadError &e)
|
catch(const EReadError &e)
|
||||||
{
|
{
|
||||||
|
@ -288,11 +288,11 @@ bool packLZMA(const std::string &srcFileName, const std::string &lzmaFileName)
|
||||||
|
|
||||||
// allocate output buffer
|
// allocate output buffer
|
||||||
size_t outSize = (11 * inSize / 10) + 65536; // worst case = 1.1 * size + 64K
|
size_t outSize = (11 * inSize / 10) + 65536; // worst case = 1.1 * size + 64K
|
||||||
CUniquePtr<uint8[]> outBuffer(new uint8[outSize]);
|
std::vector<uint8> outBuffer(outSize);
|
||||||
|
|
||||||
// allocate buffer for props
|
// allocate buffer for props
|
||||||
size_t outPropsSize = LZMA_PROPS_SIZE;
|
size_t outPropsSize = LZMA_PROPS_SIZE;
|
||||||
CUniquePtr<uint8[]> outProps(new uint8[outPropsSize]);
|
std::vector<uint8> outProps(outPropsSize);
|
||||||
|
|
||||||
// compress with best compression and other default settings
|
// compress with best compression and other default settings
|
||||||
sint res = LzmaCompress(outBuffer.get(), &outSize, inBuffer.get(), inSize, outProps.get(), &outPropsSize, 9, 1 << 27, -1, -1, -1, -1, 1);
|
sint res = LzmaCompress(outBuffer.get(), &outSize, inBuffer.get(), inSize, outProps.get(), &outPropsSize, 9, 1 << 27, -1, -1, -1, -1, 1);
|
||||||
|
|
Loading…
Reference in a new issue