make splitPathList() return an empty list for an empty string
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Mon, 12 Mar 2012 16:24:47 +0000 (17:24 +0100)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>
Tue, 19 Jun 2012 14:40:00 +0000 (16:40 +0200)
this makes the user code a bit cleaner

Change-Id: I3713c73c5c19cf69341be65480917eda0b967b77
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
qmake/option.h
qmake/project.cpp

index c58ef4a..3aa7d6d 100644 (file)
@@ -218,7 +218,7 @@ private:
 };
 
 inline QString fixEnvVariables(const QString &x) { return Option::fixString(x, Option::FixEnvVars); }
-inline QStringList splitPathList(const QString &paths) { return paths.split(Option::dirlist_sep); }
+inline QStringList splitPathList(const QString &paths) { return paths.isEmpty() ? QStringList() : paths.split(Option::dirlist_sep); }
 
 QT_END_NAMESPACE
 
index f710216..768a1c2 100644 (file)
@@ -586,10 +586,7 @@ QStringList qmake_feature_paths(QMakeProperty *prop, bool host_build)
         concat << base_concat;
     }
 
-    QStringList feature_roots;
-    QByteArray mkspec_path = qgetenv("QMAKEFEATURES");
-    if(!mkspec_path.isNull())
-        feature_roots += splitPathList(QString::fromLocal8Bit(mkspec_path));
+    QStringList feature_roots = splitPathList(QString::fromLocal8Bit(qgetenv("QMAKEFEATURES")));
     if(prop)
         feature_roots += splitPathList(prop->value("QMAKEFEATURES"));
     if(!Option::mkfile::cachefile.isEmpty()) {
@@ -601,15 +598,10 @@ QStringList qmake_feature_paths(QMakeProperty *prop, bool host_build)
             concat_it != concat.end(); ++concat_it)
             feature_roots << (path + (*concat_it));
     }
-    QByteArray qmakepath = qgetenv("QMAKEPATH");
-    if (!qmakepath.isNull()) {
-        const QStringList lst = splitPathList(QString::fromLocal8Bit(qmakepath));
-        for(QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it) {
-            for(QStringList::Iterator concat_it = concat.begin();
-                concat_it != concat.end(); ++concat_it)
-                    feature_roots << ((*it) + mkspecs_concat + (*concat_it));
-        }
-    }
+    QStringList qmakepath = splitPathList(QString::fromLocal8Bit(qgetenv("QMAKEPATH")));
+    foreach (const QString &path, qmakepath)
+        foreach (const QString &cat, concat)
+            feature_roots << (path + mkspecs_concat + cat);
     QString *specp = host_build ? &Option::mkfile::qmakespec : &Option::mkfile::xqmakespec;
     if (!specp->isEmpty()) {
         // The spec is already platform-dependent, so no subdirs here.
@@ -643,12 +635,10 @@ QStringList qmake_mkspec_paths()
 {
     QStringList ret;
     const QString concat = QLatin1String("/mkspecs");
-    QByteArray qmakepath = qgetenv("QMAKEPATH");
-    if (!qmakepath.isEmpty()) {
-        const QStringList lst = splitPathList(QString::fromLocal8Bit(qmakepath));
-        for (QStringList::ConstIterator it = lst.begin(); it != lst.end(); ++it)
-            ret << ((*it) + concat);
-    }
+
+    QStringList qmakepath = splitPathList(QString::fromLocal8Bit(qgetenv("QMAKEPATH")));
+    foreach (const QString &path, qmakepath)
+        ret << (path + concat);
     if (!project_build_root.isEmpty())
         ret << project_build_root + concat;
     if (!project_root.isEmpty())