summaryrefslogtreecommitdiff
path: root/src/libs/utils/environment.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-05-17 08:17:43 +0300
committerOrgad Shaneh <orgads@gmail.com>2013-05-17 10:01:07 +0200
commita8466058703b3e2352eadc2d74df4c0f284601e3 (patch)
tree001e20155dc11603efa52bd29d59747e41e0f2cc /src/libs/utils/environment.cpp
parentb1d7d806c05b9d0362c5ba273b5983c9951d9fb7 (diff)
downloadqt-creator-a8466058703b3e2352eadc2d74df4c0f284601e3.tar.gz
Environment: Support absolute file path without extension on Windows
Change-Id: I86045a4cd8a279ed0ee08730a6e8da2672884b09 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src/libs/utils/environment.cpp')
-rw-r--r--src/libs/utils/environment.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/libs/utils/environment.cpp b/src/libs/utils/environment.cpp
index 4145cf3b06..3568363eec 100644
--- a/src/libs/utils/environment.cpp
+++ b/src/libs/utils/environment.cpp
@@ -238,8 +238,6 @@ QString Environment::searchInPath(const QString &executable,
{
QString exec = QDir::cleanPath(expandVariables(executable));
QFileInfo fi(exec);
- if (fi.isAbsolute())
- return exec;
if (executable.isEmpty())
return QString();
@@ -251,11 +249,21 @@ QString Environment::searchInPath(const QString &executable,
if (fi.suffix().isEmpty()) {
QStringList extensions = value(QLatin1String("PATHEXT")).split(QLatin1Char(';'));
- foreach (const QString &ext, extensions)
- execs << executable + ext.toLower();
+ foreach (const QString &ext, extensions) {
+ QString tmp = executable + ext.toLower();
+ if (fi.isAbsolute()) {
+ if (QFile::exists(tmp))
+ return tmp;
+ } else {
+ execs << tmp;
+ }
+ }
}
}
+ if (fi.isAbsolute())
+ return exec;
+
foreach (const QString &dir, additionalDirs) {
QString tmp = searchInDirectory(execs, dir);
if (!tmp.isEmpty())