Fixed: #982 Remove seven_zip dependency for Mac OS and Linux client
This commit is contained in:
parent
856efe7484
commit
60e1f64d64
1 changed files with 21 additions and 11 deletions
|
@ -38,14 +38,17 @@
|
||||||
#include "nel/misc/big_file.h"
|
#include "nel/misc/big_file.h"
|
||||||
#include "nel/misc/i18n.h"
|
#include "nel/misc/i18n.h"
|
||||||
|
|
||||||
|
#ifdef NL_OS_WINOWS
|
||||||
|
#define NL_USE_SEVENZIP 1
|
||||||
|
#endif
|
||||||
|
|
||||||
// 7 zip includes
|
// 7 zip includes
|
||||||
//extern "C"
|
#ifdef NL_USE_SEVENZIP
|
||||||
//{
|
#include "seven_zip/7zCrc.h"
|
||||||
#include "seven_zip/7zCrc.h"
|
#include "seven_zip/7zIn.h"
|
||||||
#include "seven_zip/7zIn.h"
|
#include "seven_zip/7zExtract.h"
|
||||||
#include "seven_zip/7zExtract.h"
|
#include "seven_zip/LzmaDecode.h"
|
||||||
#include "seven_zip/LzmaDecode.h"
|
#endif
|
||||||
//};
|
|
||||||
|
|
||||||
#include "game_share/bg_downloader_msg.h"
|
#include "game_share/bg_downloader_msg.h"
|
||||||
|
|
||||||
|
@ -137,8 +140,7 @@ struct EPatchDownloadException : public Exception
|
||||||
|
|
||||||
CPatchManager *CPatchManager::_Instance = NULL;
|
CPatchManager *CPatchManager::_Instance = NULL;
|
||||||
|
|
||||||
|
#ifdef NL_USE_SEVENZIP
|
||||||
|
|
||||||
/// Input stream class for 7zip archive
|
/// Input stream class for 7zip archive
|
||||||
class CNel7ZipInStream : public _ISzInStream
|
class CNel7ZipInStream : public _ISzInStream
|
||||||
{
|
{
|
||||||
|
@ -187,7 +189,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// ****************************************************************************
|
// ****************************************************************************
|
||||||
|
@ -1939,6 +1941,7 @@ void CPatchManager::getCorruptedFileInfo(const SFileToPatch &ftp, ucstring &sTra
|
||||||
|
|
||||||
bool CPatchManager::unpack7Zip(const std::string &sevenZipFile, const std::string &destFileName)
|
bool CPatchManager::unpack7Zip(const std::string &sevenZipFile, const std::string &destFileName)
|
||||||
{
|
{
|
||||||
|
#ifdef NL_USE_SEVENZIP
|
||||||
nlinfo("Uncompressing 7zip archive '%s' to '%s'",
|
nlinfo("Uncompressing 7zip archive '%s' to '%s'",
|
||||||
sevenZipFile.c_str(),
|
sevenZipFile.c_str(),
|
||||||
destFileName.c_str());
|
destFileName.c_str());
|
||||||
|
@ -2023,10 +2026,14 @@ bool CPatchManager::unpack7Zip(const std::string &sevenZipFile, const std::strin
|
||||||
|
|
||||||
// ok, all is fine, file is unpacked
|
// ok, all is fine, file is unpacked
|
||||||
return true;
|
return true;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CPatchManager::unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
|
bool CPatchManager::unpackLZMA(const std::string &lzmaFile, const std::string &destFileName)
|
||||||
{
|
{
|
||||||
|
#ifdef NL_USE_SEVENZIP
|
||||||
nldebug("unpackLZMA : decompression the lzma file '%s' into output file '%s", lzmaFile.c_str(), destFileName.c_str());
|
nldebug("unpackLZMA : decompression the lzma file '%s' into output file '%s", lzmaFile.c_str(), destFileName.c_str());
|
||||||
CIFile inStream(lzmaFile);
|
CIFile inStream(lzmaFile);
|
||||||
uint32 inSize = inStream.getFileSize();
|
uint32 inSize = inStream.getFileSize();
|
||||||
|
@ -2087,6 +2094,9 @@ bool CPatchManager::unpackLZMA(const std::string &lzmaFile, const std::string &d
|
||||||
outStream.serialBuffer(outBuffer.get(), (uint)fileSize);
|
outStream.serialBuffer(outBuffer.get(), (uint)fileSize);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3420,7 +3430,7 @@ void CInstallThread::run()
|
||||||
std::string correct = CPath::standardizePath (patchPath + _Entries[first].PatchName, false);
|
std::string correct = CPath::standardizePath (patchPath + _Entries[first].PatchName, false);
|
||||||
allowed.insert(correct);
|
allowed.insert(correct);
|
||||||
}
|
}
|
||||||
// Delete file from tmp directory that are not "allowed" (torrent protocol can downlaod partial file that are not asked)
|
// Delete file from tmp directory that are not "allowed" (torrent protocol can download partial file that are not asked)
|
||||||
std::vector<std::string> vFiles;
|
std::vector<std::string> vFiles;
|
||||||
CPath::getPathContent(patchPath , true, false, true, vFiles);
|
CPath::getPathContent(patchPath , true, false, true, vFiles);
|
||||||
for (uint32 i = 0; i < vFiles.size(); ++i)
|
for (uint32 i = 0; i < vFiles.size(); ++i)
|
||||||
|
|
Loading…
Reference in a new issue