From 31475726fb82b605a44c1aa1a96fedbd5360b94e Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 27 May 2023 19:02:33 +0300 Subject: [PATCH] return QString from QFileSystemEngine::getLinkTarget() and rename it Signed-off-by: Ivailo Monev --- src/core/io/qfile.cpp | 6 ++---- src/core/io/qfileinfo.cpp | 2 +- src/core/io/qfilesystemengine_p.h | 2 +- src/core/io/qfilesystemengine_unix.cpp | 8 ++++---- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/core/io/qfile.cpp b/src/core/io/qfile.cpp index 1616f3f99..8fe7f5d78 100644 --- a/src/core/io/qfile.cpp +++ b/src/core/io/qfile.cpp @@ -477,8 +477,7 @@ QString QFile::readLink() const if (!d->metaData.hasFlags(QFileSystemMetaData::LinkType)) QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::LinkType); if (d->metaData.isLink()) { - QFileSystemEntry entry = QFileSystemEngine::getLinkTarget(d->fileEntry, d->metaData); - return entry.filePath(); + return QFileSystemEngine::linkTarget(d->fileEntry, d->metaData); } return QString(); } @@ -499,8 +498,7 @@ QString QFile::readLink(const QString &fileName) QFileSystemEntry fileEntry(fileName); QFileSystemEngine::fillMetaData(fileEntry, metaData, QFileSystemMetaData::LinkType); if (metaData.isLink()) { - QFileSystemEntry entry = QFileSystemEngine::getLinkTarget(fileEntry, metaData); - return entry.filePath(); + return QFileSystemEngine::linkTarget(fileEntry, metaData);; } return QString(); } diff --git a/src/core/io/qfileinfo.cpp b/src/core/io/qfileinfo.cpp index 1972b038d..dfe74c944 100644 --- a/src/core/io/qfileinfo.cpp +++ b/src/core/io/qfileinfo.cpp @@ -47,7 +47,7 @@ QString QFileInfoPrivate::getFileName(const QFileInfoPrivate::FileName name) con break; } case FileName::LinkName: - ret = QFileSystemEngine::getLinkTarget(fileEntry, metaData).filePath(); + ret = QFileSystemEngine::linkTarget(fileEntry, metaData); break; case FileName::AbsoluteName: case FileName::AbsolutePathName: { diff --git a/src/core/io/qfilesystemengine_p.h b/src/core/io/qfilesystemengine_p.h index 4696c4f17..f140571fb 100644 --- a/src/core/io/qfilesystemengine_p.h +++ b/src/core/io/qfilesystemengine_p.h @@ -42,7 +42,7 @@ QT_BEGIN_NAMESPACE class QFileSystemEngine { public: - static QFileSystemEntry getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data); + static QString linkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data); static QFileSystemEntry canonicalName(const QFileSystemEntry &entry, QFileSystemMetaData &data); static QFileSystemEntry absoluteName(const QFileSystemEntry &entry); static QString resolveUserName(const QFileSystemEntry &entry, QFileSystemMetaData &data); diff --git a/src/core/io/qfilesystemengine_unix.cpp b/src/core/io/qfilesystemengine_unix.cpp index 356e02643..803496f84 100644 --- a/src/core/io/qfilesystemengine_unix.cpp +++ b/src/core/io/qfilesystemengine_unix.cpp @@ -43,7 +43,7 @@ QT_BEGIN_NAMESPACE const uint QFileSystemMetaData::nobodyID = (uint) -2; //static -QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) +QString QFileSystemEngine::linkTarget(const QFileSystemEntry &link, QFileSystemMetaData &data) { QByteArray lpath = link.nativeFilePath(); QSTACKARRAY(char, readlinkbuf, PATH_MAX); @@ -72,9 +72,9 @@ QFileSystemEntry QFileSystemEngine::getLinkTarget(const QFileSystemEntry &link, ret = QDir::cleanPath(ret); if (ret.size() > 1 && ret.endsWith(QLatin1Char('/'))) ret.chop(1); - return QFileSystemEntry(ret); + return ret; } - return QFileSystemEntry(); + return QString(); } //static @@ -88,7 +88,7 @@ QFileSystemEntry QFileSystemEngine::canonicalName(const QFileSystemEntry &entry, char *ret = ::realpath(path.constData(), realpathbuf); if (ret) { data.entryFlags |= QFileSystemMetaData::ExistsAttribute; - QString canonicalPath = QDir::cleanPath(QString::fromLocal8Bit(ret)); + QString canonicalPath = QDir::cleanPath(QFile::decodeName(ret)); return QFileSystemEntry(canonicalPath); } else if (errno == ENOENT) { // file doesn't exist data.entryFlags &= ~(QFileSystemMetaData::ExistsAttribute); -- 2.11.0