Merge branch 'cst-next' of git://coolstreamtech.de/cst-public-gui-neutrino into ni/cst-next

Origin commit data
------------------
Commit: 3a43baac7b
Author: vanhofen <vanhofen@gmx.de>
Date: 2016-09-06 (Tue, 06 Sep 2016)
This commit is contained in:
vanhofen
2016-09-06 15:41:28 +02:00
15 changed files with 419 additions and 336 deletions

View File

@@ -664,8 +664,7 @@ std::string& htmlEntityDecode(std::string& text)
CFileHelpers::CFileHelpers()
{
FileBufSize = 0xFFFF;
FileBuf = new char[FileBufSize];
FileBufMaxSize = 0xFFFF;
doCopyFlag = true;
ConsoleQuiet = false;
clearDebugInfo();
@@ -673,8 +672,21 @@ CFileHelpers::CFileHelpers()
CFileHelpers::~CFileHelpers()
{
if (FileBuf != NULL)
delete [] FileBuf;
}
char* CFileHelpers::initFileBuf(char* buf, uint32_t size)
{
if (buf == NULL)
buf = new char[size];
return buf;
}
char* CFileHelpers::deleteFileBuf(char* buf)
{
if (buf != NULL)
delete [] buf;
buf = NULL;
return buf;
}
CFileHelpers* CFileHelpers::getInstance()
@@ -872,10 +884,13 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
return false;
}
char* FileBuf = NULL;
uint32_t block;
off64_t fsizeSrc64 = lseek64(fd1, 0, SEEK_END);
lseek64(fd1, 0, SEEK_SET);
if (fsizeSrc64 > 0x7FFFFFF0) { // > 2GB
uint32_t FileBufSize = FileBufMaxSize;
FileBuf = initFileBuf(FileBuf, FileBufSize);
off64_t fsize64 = fsizeSrc64;
block = FileBufSize;
//printf("#####[%s] fsizeSrc64: %lld 0x%010llX - large file\n", __FUNCTION__, fsizeSrc64, fsizeSrc64);
@@ -894,12 +909,15 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
if (fsizeSrc64 != fsizeDst64){
close(fd1);
close(fd2);
FileBuf = deleteFileBuf(FileBuf);
return false;
}
}
}
else { // < 2GB
off_t fsizeSrc = lseek(fd1, 0, SEEK_END);
uint32_t FileBufSize = (fsizeSrc < (off_t)FileBufMaxSize) ? fsizeSrc : FileBufMaxSize;
FileBuf = initFileBuf(FileBuf, FileBufSize);
lseek(fd1, 0, SEEK_SET);
off_t fsize = fsizeSrc;
block = FileBufSize;
@@ -919,6 +937,7 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
if (fsizeSrc != fsizeDst){
close(fd1);
close(fd2);
FileBuf = deleteFileBuf(FileBuf);
return false;
}
}
@@ -929,9 +948,11 @@ bool CFileHelpers::copyFile(const char *Src, const char *Dst, mode_t forceMode/*
if (!doCopyFlag) {
sync();
unlink(Dst);
FileBuf = deleteFileBuf(FileBuf);
return false;
}
FileBuf = deleteFileBuf(FileBuf);
return true;
}
@@ -1054,8 +1075,14 @@ bool CFileHelpers::removeDir(const char *Dir)
dir = opendir(Dir);
if (dir == NULL) {
fh->setDebugInfo("Error opendir().", __path_file__, __func__, __LINE__);
fh->printDebugInfo();
if (errno == ENOENT)
return true;
if (!fh->getConsoleQuiet())
dprintf(DEBUG_NORMAL, "[CFileHelpers %s] remove directory %s: %s\n", __func__, Dir, strerror(errno));
char buf[1024];
memset(buf, '\0', sizeof(buf));
snprintf(buf, sizeof(buf)-1, "remove directory %s: %s", Dir, strerror(errno));
fh->setDebugInfo(buf, __path_file__, __func__, __LINE__);
return false;
}
while ((entry = readdir(dir)) != NULL) {