summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-09-05 18:30:05 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-30 16:56:09 +0100
commitc28ecbb7ed8404b7e29b1d1b30882c865d87e34d (patch)
tree15c702ade06213c22d140e70e40d3ded9c3ab94e
parent92442ec53921327c4acf28fb3c29bc77b1d65fc4 (diff)
make setting a bad $$[QMAKEFEATURES] not crash qmake
Task-number: QTBUG-29642 Change-Id: I9cc209eb313f03bf342bcb64b1de3005755700a7 (cherry picked from qtbase/50a90720be7d67dcdfe704a82fb3b1138edd2aab) Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
-rw-r--r--src/linguist/shared/qmakeevaluator.cpp4
-rw-r--r--src/linguist/shared/qmakeglobals.cpp24
-rw-r--r--src/linguist/shared/qmakeglobals.h1
3 files changed, 17 insertions, 12 deletions
diff --git a/src/linguist/shared/qmakeevaluator.cpp b/src/linguist/shared/qmakeevaluator.cpp
index 0162f6e2d..e5715fa5b 100644
--- a/src/linguist/shared/qmakeevaluator.cpp
+++ b/src/linguist/shared/qmakeevaluator.cpp
@@ -1478,8 +1478,8 @@ void QMakeEvaluator::updateFeaturePaths()
feature_roots += m_qmakefeatures;
- feature_roots += m_option->propertyValue(ProKey("QMAKEFEATURES")).toQString(m_mtmp).split(
- m_option->dirlist_sep, QString::SkipEmptyParts);
+ feature_roots += m_option->splitPathList(
+ m_option->propertyValue(ProKey("QMAKEFEATURES")).toQString(m_mtmp));
QStringList feature_bases;
if (!m_buildRoot.isEmpty()) {
diff --git a/src/linguist/shared/qmakeglobals.cpp b/src/linguist/shared/qmakeglobals.cpp
index 6f2390fc3..a00eb1f96 100644
--- a/src/linguist/shared/qmakeglobals.cpp
+++ b/src/linguist/shared/qmakeglobals.cpp
@@ -270,6 +270,19 @@ QString QMakeGlobals::shadowedPath(const QString &fileName) const
return QString();
}
+QStringList QMakeGlobals::splitPathList(const QString &val) const
+{
+ QStringList ret;
+ if (!val.isEmpty()) {
+ QDir bdir;
+ QStringList vals = val.split(dirlist_sep);
+ ret.reserve(vals.length());
+ foreach (const QString &it, vals)
+ ret << QDir::cleanPath(bdir.absoluteFilePath(it));
+ }
+ return ret;
+}
+
QString QMakeGlobals::getEnv(const QString &var) const
{
#ifdef PROEVALUATOR_SETENV
@@ -281,16 +294,7 @@ QString QMakeGlobals::getEnv(const QString &var) const
QStringList QMakeGlobals::getPathListEnv(const QString &var) const
{
- QStringList ret;
- QString val = getEnv(var);
- if (!val.isEmpty()) {
- QDir bdir;
- QStringList vals = val.split(dirlist_sep);
- ret.reserve(vals.length());
- foreach (const QString &it, vals)
- ret << QDir::cleanPath(bdir.absoluteFilePath(it));
- }
- return ret;
+ return splitPathList(getEnv(var));
}
QString QMakeGlobals::expandEnvVars(const QString &str) const
diff --git a/src/linguist/shared/qmakeglobals.h b/src/linguist/shared/qmakeglobals.h
index 25d3697a1..8fcffab1b 100644
--- a/src/linguist/shared/qmakeglobals.h
+++ b/src/linguist/shared/qmakeglobals.h
@@ -148,6 +148,7 @@ public:
QString expandEnvVars(const QString &str) const;
QString shadowedPath(const QString &fileName) const;
+ QStringList splitPathList(const QString &value) const;
private:
QString getEnv(const QString &) const;