From 3560d98cc1c70ce61e765596cb964f1c6bf7db63 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Thu, 5 Aug 2021 07:34:49 +0200 Subject: [PATCH] PE: Be more restrictive in fixupDir() Only modify device letter if it appears to be one. Do not touch capitilization when fixing. Amends b6dd53d4ed7. Change-Id: I55203eb14bc78d551dd4d88cd2a4e3efac3d816e Reviewed-by: hjk --- src/plugins/projectexplorer/buildaspects.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/plugins/projectexplorer/buildaspects.cpp b/src/plugins/projectexplorer/buildaspects.cpp index 7b6f0836abf..db8191c0668 100644 --- a/src/plugins/projectexplorer/buildaspects.cpp +++ b/src/plugins/projectexplorer/buildaspects.cpp @@ -134,22 +134,18 @@ void BuildDirectoryAspect::addToLayout(LayoutBuilder &builder) FilePath BuildDirectoryAspect::fixupDir(const FilePath &dir) { - if (dir.needsDevice() || !HostOsInfo::isWindowsHost()) + if (!dir.startsWithDriveLetter()) return {}; 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) { return fi.absoluteFilePath().toLower().chopped(1); }); if (!Utils::contains(drives, [&dirString](const QString &drive) { return dirString.startsWith(drive); }) && !drives.isEmpty()) { - QString newDir = dirString; + QString newDir = dir.path(); newDir.replace(0, 2, drives.first()); - return FilePath::fromString(newDir); + return dir.withNewPath(newDir); } return {}; }