forked from qt-creator/qt-creator
PE: Be more restrictive in fixupDir()
Only modify device letter if it appears to be one.
Do not touch capitilization when fixing.
Amends b6dd53d4ed
.
Change-Id: I55203eb14bc78d551dd4d88cd2a4e3efac3d816e
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -134,22 +134,18 @@ void BuildDirectoryAspect::addToLayout(LayoutBuilder &builder)
|
|||||||
|
|
||||||
FilePath BuildDirectoryAspect::fixupDir(const FilePath &dir)
|
FilePath BuildDirectoryAspect::fixupDir(const FilePath &dir)
|
||||||
{
|
{
|
||||||
if (dir.needsDevice() || !HostOsInfo::isWindowsHost())
|
if (!dir.startsWithDriveLetter())
|
||||||
return {};
|
return {};
|
||||||
const QString dirString = dir.toString().toLower();
|
const QString dirString = dir.toString().toLower();
|
||||||
if (dirString.length() < 2)
|
|
||||||
return {};
|
|
||||||
if (!dirString.at(0).isLetter())
|
|
||||||
return {};
|
|
||||||
const QStringList drives = Utils::transform(QDir::drives(), [](const QFileInfo &fi) {
|
const QStringList drives = Utils::transform(QDir::drives(), [](const QFileInfo &fi) {
|
||||||
return fi.absoluteFilePath().toLower().chopped(1);
|
return fi.absoluteFilePath().toLower().chopped(1);
|
||||||
});
|
});
|
||||||
if (!Utils::contains(drives, [&dirString](const QString &drive) {
|
if (!Utils::contains(drives, [&dirString](const QString &drive) {
|
||||||
return dirString.startsWith(drive);
|
return dirString.startsWith(drive);
|
||||||
}) && !drives.isEmpty()) {
|
}) && !drives.isEmpty()) {
|
||||||
QString newDir = dirString;
|
QString newDir = dir.path();
|
||||||
newDir.replace(0, 2, drives.first());
|
newDir.replace(0, 2, drives.first());
|
||||||
return FilePath::fromString(newDir);
|
return dir.withNewPath(newDir);
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user