diff options
author | Orgad Shaneh <orgad.shaneh@audiocodes.com> | 2013-05-17 08:17:43 +0300 |
---|---|---|
committer | Orgad Shaneh <orgads@gmail.com> | 2013-05-17 10:01:07 +0200 |
commit | a8466058703b3e2352eadc2d74df4c0f284601e3 (patch) | |
tree | 001e20155dc11603efa52bd29d59747e41e0f2cc /src/libs/utils/environment.cpp | |
parent | b1d7d806c05b9d0362c5ba273b5983c9951d9fb7 (diff) | |
download | qt-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.cpp | 16 |
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()) |