summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/quazip/quazipnewinfo.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2020-06-08 20:25:36 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2020-08-07 22:18:41 +0200
commitb0f22620a2dbfb991b10a8e1e8b0c8db5e3ee117 (patch)
tree2695997733229be38ec71c36753b19ba2e98aa61 /rbutil/rbutilqt/quazip/quazipnewinfo.cpp
parentb3a0187416e48d80275af6be0178cef155aa03dc (diff)
downloadrockbox-b0f22620a2dbfb991b10a8e1e8b0c8db5e3ee117.tar.gz
rockbox-b0f22620a2dbfb991b10a8e1e8b0c8db5e3ee117.zip
rbutil: Update quazip to release 0.9.1.
Update to latest quazip release. Change-Id: I03189ceeadbe3110a9420153d84bd5d33d5b663f
Diffstat (limited to 'rbutil/rbutilqt/quazip/quazipnewinfo.cpp')
-rw-r--r--rbutil/rbutilqt/quazip/quazipnewinfo.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/rbutil/rbutilqt/quazip/quazipnewinfo.cpp b/rbutil/rbutilqt/quazip/quazipnewinfo.cpp
index 02e01da9c5..98630e086a 100644
--- a/rbutil/rbutilqt/quazip/quazipnewinfo.cpp
+++ b/rbutil/rbutilqt/quazip/quazipnewinfo.cpp
@@ -22,16 +22,25 @@ Original ZIP package is copyrighted by Gilles Vollant and contributors,
22see quazip/(un)zip.h files for details. Basically it's the zlib license. 22see quazip/(un)zip.h files for details. Basically it's the zlib license.
23*/ 23*/
24 24
25#include <QFileInfo> 25#include <QtCore/QFileInfo>
26 26
27#include "quazipnewinfo.h" 27#include "quazipnewinfo.h"
28 28
29#include <string.h> 29#include <string.h>
30 30
31static void QuaZipNewInfo_setPermissions(QuaZipNewInfo *info, 31static void QuaZipNewInfo_setPermissions(QuaZipNewInfo *info,
32 QFile::Permissions perm, bool isDir) 32 QFile::Permissions perm, bool isDir, bool isSymLink = false)
33{ 33{
34 quint32 uPerm = isDir ? 0040000 : 0100000; 34 quint32 uPerm = isDir ? 0040000 : 0100000;
35
36 if ( isSymLink ) {
37#ifdef Q_OS_WIN
38 uPerm = 0200000;
39#else
40 uPerm = 0120000;
41#endif
42 }
43
35 if ((perm & QFile::ReadOwner) != 0) 44 if ((perm & QFile::ReadOwner) != 0)
36 uPerm |= 0400; 45 uPerm |= 0400;
37 if ((perm & QFile::WriteOwner) != 0) 46 if ((perm & QFile::WriteOwner) != 0)
@@ -91,7 +100,7 @@ QuaZipNewInfo::QuaZipNewInfo(const QString& name, const QString& file):
91 dateTime = QDateTime::currentDateTime(); 100 dateTime = QDateTime::currentDateTime();
92 } else { 101 } else {
93 dateTime = lm; 102 dateTime = lm;
94 QuaZipNewInfo_setPermissions(this, info.permissions(), info.isDir()); 103 QuaZipNewInfo_setPermissions(this, info.permissions(), info.isDir(), info.isSymLink());
95 } 104 }
96} 105}
97 106
@@ -107,12 +116,12 @@ void QuaZipNewInfo::setFilePermissions(const QString &file)
107{ 116{
108 QFileInfo info = QFileInfo(file); 117 QFileInfo info = QFileInfo(file);
109 QFile::Permissions perm = info.permissions(); 118 QFile::Permissions perm = info.permissions();
110 QuaZipNewInfo_setPermissions(this, perm, info.isDir()); 119 QuaZipNewInfo_setPermissions(this, perm, info.isDir(), info.isSymLink());
111} 120}
112 121
113void QuaZipNewInfo::setPermissions(QFile::Permissions permissions) 122void QuaZipNewInfo::setPermissions(QFile::Permissions permissions)
114{ 123{
115 QuaZipNewInfo_setPermissions(this, permissions, name.endsWith('/')); 124 QuaZipNewInfo_setPermissions(this, permissions, name.endsWith(QLatin1String("/")));
116} 125}
117 126
118void QuaZipNewInfo::setFileNTFSTimes(const QString &fileName) 127void QuaZipNewInfo::setFileNTFSTimes(const QString &fileName)
@@ -125,7 +134,11 @@ void QuaZipNewInfo::setFileNTFSTimes(const QString &fileName)
125 } 134 }
126 setFileNTFSmTime(fi.lastModified()); 135 setFileNTFSmTime(fi.lastModified());
127 setFileNTFSaTime(fi.lastRead()); 136 setFileNTFSaTime(fi.lastRead());
137#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
138 setFileNTFScTime(fi.birthTime());
139#else
128 setFileNTFScTime(fi.created()); 140 setFileNTFScTime(fi.created());
141#endif
129} 142}
130 143
131static void setNTFSTime(QByteArray &extra, const QDateTime &time, int position, 144static void setNTFSTime(QByteArray &extra, const QDateTime &time, int position,