summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libs/7zip/unix/CPP/7zip/UI/Common/Update.h4
-rw-r--r--src/libs/7zip/unix/CPP/Common/Wildcard.h2
-rw-r--r--src/libs/installer/binaryformat.cpp6
-rw-r--r--src/libs/installer/createlocalrepositoryoperation.cpp10
-rw-r--r--src/libs/installer/createshortcutoperation.cpp10
-rw-r--r--src/libs/installer/fileutils.cpp26
-rw-r--r--src/libs/installer/lib7z_facade.cpp9
-rw-r--r--src/libs/kdtools/kdupdaterupdateoperations.cpp20
8 files changed, 67 insertions, 20 deletions
diff --git a/src/libs/7zip/unix/CPP/7zip/UI/Common/Update.h b/src/libs/7zip/unix/CPP/7zip/UI/Common/Update.h
index 49af0092a..ade001303 100644
--- a/src/libs/7zip/unix/CPP/7zip/UI/Common/Update.h
+++ b/src/libs/7zip/unix/CPP/7zip/UI/Common/Update.h
@@ -116,11 +116,11 @@ struct CUpdateOptions
CUpdateOptions():
UpdateArchiveItself(true),
SfxMode(false),
+ OpenShareForWrite(false),
StdInMode(false),
StdOutMode(false),
EMailMode(false),
- EMailRemoveAfter(false),
- OpenShareForWrite(false)
+ EMailRemoveAfter(false)
{};
void SetAddActionCommand()
diff --git a/src/libs/7zip/unix/CPP/Common/Wildcard.h b/src/libs/7zip/unix/CPP/Common/Wildcard.h
index 6d4cbcece..2aa33c496 100644
--- a/src/libs/7zip/unix/CPP/Common/Wildcard.h
+++ b/src/libs/7zip/unix/CPP/Common/Wildcard.h
@@ -33,7 +33,7 @@ class CCensorNode
bool CheckPath(UStringVector &pathParts, bool isFile, bool &include) const;
public:
CCensorNode(): Parent(0) { };
- CCensorNode(const UString &name, CCensorNode *parent): Name(name), Parent(parent) { };
+ CCensorNode(const UString &name, CCensorNode *parent): Parent(parent), Name(name) { };
UString Name;
CObjectVector<CCensorNode> SubNodes;
CObjectVector<CItem> IncludeItems;
diff --git a/src/libs/installer/binaryformat.cpp b/src/libs/installer/binaryformat.cpp
index 6a5db2017..102a7bd87 100644
--- a/src/libs/installer/binaryformat.cpp
+++ b/src/libs/installer/binaryformat.cpp
@@ -311,7 +311,13 @@ bool Archive::copy(const QString &name)
errno = 0;
const QString absoluteFilePath = fileInfo.absoluteFilePath();
if (!fileInfo.exists() && !QDir().mkpath(absoluteFilePath)) {
+#ifdef Q_OS_WIN
+ char msg[128];
+ if (strerror_s(msg, sizeof msg, errno) != 0)
+ setErrorString(tr("Could not create %1: %2").arg(name, QString::fromLocal8Bit(msg)));
+#else
setErrorString(tr("Could not create %1: %2").arg(name, QString::fromLocal8Bit(strerror(errno))));
+#endif
return false;
}
diff --git a/src/libs/installer/createlocalrepositoryoperation.cpp b/src/libs/installer/createlocalrepositoryoperation.cpp
index c80e984fc..b401efb5d 100644
--- a/src/libs/installer/createlocalrepositoryoperation.cpp
+++ b/src/libs/installer/createlocalrepositoryoperation.cpp
@@ -371,8 +371,16 @@ bool CreateLocalRepositoryOperation::undoOperation()
errno = 0;
const bool result = QDir::root().rmdir(createdDir.path());
if (!result) {
+#ifdef Q_OS_WIN
+ char msg[128];
+ if (strerror_s(msg, sizeof msg, errno) != 0) {
+ setError(UserDefinedError, tr("Cannot remove directory %1: %2").arg(createdDir.path(),
+ QString::fromLocal8Bit(msg)));
+ }
+#else
setError(UserDefinedError, tr("Cannot remove directory %1: %2").arg(createdDir.path(),
- QLatin1String(strerror(errno))));
+ QString::fromLocal8Bit(strerror(errno))));
+#endif
}
setValue(QLatin1String("files"), QStringList());
diff --git a/src/libs/installer/createshortcutoperation.cpp b/src/libs/installer/createshortcutoperation.cpp
index 28d7f91d4..5142e65de 100644
--- a/src/libs/installer/createshortcutoperation.cpp
+++ b/src/libs/installer/createshortcutoperation.cpp
@@ -192,8 +192,16 @@ bool CreateShortcutOperation::performOperation()
if (!created) {
setError(UserDefinedError);
+#ifdef Q_OS_WIN
+ char msg[128];
+ if (strerror_s(msg, sizeof msg, errno) != 0) {
+ setErrorString(tr("Could not create folder %1: %2.").arg(QDir::toNativeSeparators(linkPath),
+ QString::fromLocal8Bit(msg)));
+ }
+#else
setErrorString(tr("Could not create folder %1: %2.").arg(QDir::toNativeSeparators(linkPath),
- QLatin1String(strerror(errno))));
+ QString::fromLocal8Bit(strerror(errno))));
+#endif
return false;
}
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp
index febf239f1..b95ca4a1c 100644
--- a/src/libs/installer/fileutils.cpp
+++ b/src/libs/installer/fileutils.cpp
@@ -254,6 +254,18 @@ void QInstaller::removeFiles(const QString &path, bool ignoreErrors)
}
}
+static QString errnoToQString(int error)
+{
+#ifdef Q_OS_WIN
+ char msg[128];
+ if (strerror_s(msg, sizeof msg, error) != 0)
+ return QString::fromLocal8Bit(msg);
+ return QString();
+#else
+ return QString::fromLocal8Bit(strerror(error));
+#endif
+}
+
void QInstaller::removeDirectory(const QString &path, bool ignoreErrors)
{
if (path.isEmpty()) // QDir("") points to the working directory! We never want to remove that one.
@@ -275,7 +287,7 @@ void QInstaller::removeDirectory(const QString &path, bool ignoreErrors)
errno = 0;
if (d.exists(path) && !d.rmdir(dir)) {
QString errorMessage = QObject::tr("Could not remove folder %1: %2").arg(dir,
- QLatin1String(strerror(errno)));
+ errnoToQString(errno));
if (ignoreErrors)
qWarning() << errorMessage;
else
@@ -396,19 +408,15 @@ void QInstaller::moveDirectoryContents(const QString &sourceDir, const QString &
void QInstaller::mkdir(const QString &path)
{
errno = 0;
- if (!QDir().mkdir(QFileInfo(path).absoluteFilePath())) {
- throw Error(QObject::tr("Could not create folder %1: %2").arg(path,
- QString::fromLocal8Bit(strerror(errno))));
- }
+ if (!QDir().mkdir(QFileInfo(path).absoluteFilePath()))
+ throw Error(QObject::tr("Could not create folder %1: %2").arg(path, errnoToQString(errno)));
}
void QInstaller::mkpath(const QString &path)
{
errno = 0;
- if (!QDir().mkpath(QFileInfo(path).absoluteFilePath())) {
- throw Error(QObject::tr("Could not create folder %1: %2").arg(path,
- QString::fromLocal8Bit(strerror(errno))));
- }
+ if (!QDir().mkpath(QFileInfo(path).absoluteFilePath()))
+ throw Error(QObject::tr("Could not create folder %1: %2").arg(path, errnoToQString(errno)));
}
QString QInstaller::generateTemporaryFileName(const QString &templ)
diff --git a/src/libs/installer/lib7z_facade.cpp b/src/libs/installer/lib7z_facade.cpp
index 96e074a60..23e0f2775 100644
--- a/src/libs/installer/lib7z_facade.cpp
+++ b/src/libs/installer/lib7z_facade.cpp
@@ -185,8 +185,13 @@ static bool IsDST(const QDateTime& datetime = QDateTime())
{
const time_t seconds = static_cast< time_t >(datetime.isValid() ? datetime.toTime_t()
: QDateTime::currentDateTime().toTime_t());
- const tm* const t = localtime(&seconds);
- return t->tm_isdst;
+#ifdef Q_OS_WIN
+ struct tm t;
+ localtime_s(&t, &seconds);
+#else
+ const struct tm &t = *localtime(&seconds);
+#endif
+ return t.tm_isdst;
}
static bool getFileTimeFromProperty(IInArchive* archive, int index, int propId, FILETIME *fileTime)
diff --git a/src/libs/kdtools/kdupdaterupdateoperations.cpp b/src/libs/kdtools/kdupdaterupdateoperations.cpp
index 6fab600c5..05c46fe93 100644
--- a/src/libs/kdtools/kdupdaterupdateoperations.cpp
+++ b/src/libs/kdtools/kdupdaterupdateoperations.cpp
@@ -46,6 +46,18 @@
using namespace KDUpdater;
+static QString errnoToQString(int error)
+{
+#ifdef Q_OS_WIN
+ char msg[128];
+ if (strerror_s(msg, sizeof msg, error) != 0)
+ return QString::fromLocal8Bit(msg);
+ return QString();
+#else
+ return QString::fromLocal8Bit(strerror(error));
+#endif
+}
+
static bool removeDirectory(const QString &path, QString *errorString)
{
Q_ASSERT(errorString);
@@ -63,7 +75,7 @@ static bool removeDirectory(const QString &path, QString *errorString)
errno = 0;
const bool success = QDir().rmdir(path);
if (errno)
- *errorString = QLatin1String(strerror(errno));
+ *errorString = errnoToQString(errno);
return success;
}
/*
@@ -486,7 +498,7 @@ bool MkdirOperation::undoOperation()
if (errorString.isEmpty())
setError(UserDefinedError, tr("Cannot remove directory %1: %2").arg(createdDir.path(), errorString));
else
- setError(UserDefinedError, tr("Cannot remove directory %1: %2").arg(createdDir.path(), QLatin1String(strerror(errno))));
+ setError(UserDefinedError, tr("Cannot remove directory %1: %2").arg(createdDir.path(), errnoToQString(errno)));
}
return result;
}
@@ -541,7 +553,7 @@ bool RmdirOperation::performOperation()
setValue(QLatin1String("removed"), removed);
if (!removed) {
setError(UserDefinedError);
- setErrorString(tr("Could not remove folder %1: %2").arg(dirName, QLatin1String(strerror(errno))));
+ setErrorString(tr("Could not remove folder %1: %2").arg(dirName, errnoToQString(errno)));
}
return removed;
}
@@ -555,7 +567,7 @@ bool RmdirOperation::undoOperation()
errno = 0;
const bool success = fi.dir().mkdir(fi.fileName());
if( !success)
- setError(UserDefinedError, tr("Cannot recreate directory %1: %2").arg(fi.fileName(), QLatin1String(strerror(errno))));
+ setError(UserDefinedError, tr("Cannot recreate directory %1: %2").arg(fi.fileName(), errnoToQString(errno)));
return success;
}