summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-02-13 12:37:04 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-02-13 18:42:38 +0100
commit566d28316dd73bfe4a8ea34839989ee9df7e3895 (patch)
tree1313869e134ebff2058ac865c1d1c6b209bc303e
parent15177905ff12d9b7bbb81fd34e355c494415edc0 (diff)
remove automatic splitting from $$() expansions
$$(FOO) would automatically split the contents of the environment variable at whitespace (and interpret quoting inside it). the way to prevent the splitting (but not the quote interpretation) would be using "$$(FOO)". this behavior is entirely unexpected and thus an incredibly effective source of quoting problems - according to a grep over the whole qt sources, there isn't a single case where things were done right. in qt creator, well over half the cases are wrong. also, the "feature" seems entirely pointless: nobody uses spaces as separators in environment variables. consequently, simply remove it, even in a patch release. i'm postulating that nobody will complain. Change-Id: I9ed3df1b0d1ef602acd78ceb118611d294561da6 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rw-r--r--dist/changes-5.0.26
-rw-r--r--qmake/library/qmakeevaluator.cpp6
2 files changed, 9 insertions, 3 deletions
diff --git a/dist/changes-5.0.2 b/dist/changes-5.0.2
index b97e71ae03..5e170a35be 100644
--- a/dist/changes-5.0.2
+++ b/dist/changes-5.0.2
@@ -107,6 +107,12 @@ Qt for Windows CE
* Tools *
****************************************************************************
+qmake
+-----
+
+ - $$(VAR) style environment variable expansions will not split on
+ whitespace any more. Use $$split() if necessary.
+
****************************************************************************
* Plugins *
diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp
index ac08acee99..8b6a0f8598 100644
--- a/qmake/library/qmakeevaluator.cpp
+++ b/qmake/library/qmakeevaluator.cpp
@@ -453,9 +453,9 @@ void QMakeEvaluator::evaluateExpression(
break; }
case TokEnvVar: {
const ProString &var = getStr(tokPtr);
- const ProStringList &val = split_value_list(m_option->getEnv(var.toQString(m_tmp1)));
- debugMsg(2, "env var %s => %s", dbgStr(var), dbgStrList(val));
- addStrList(val, tok, ret, pending, joined);
+ const ProString &val = ProString(m_option->getEnv(var.toQString(m_tmp1)));
+ debugMsg(2, "env var %s => %s", dbgStr(var), dbgStr(val));
+ addStr(val, ret, pending, joined);
break; }
case TokFuncName: {
const ProKey &func = getHashStr(tokPtr);