From 9a33d2dfb2600b49dd19b898b5eb846e98a67d4e Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 12 Jun 2012 21:54:49 +0200 Subject: [PATCH] make $$PWD non-magic on read follow suit with qmake ... Change-Id: I9354713232facc57bd2969d62f44890e274a70b8 Reviewed-by: Daniel Teske --- src/shared/proparser/qmakeevaluator.cpp | 26 ++++++------------------- src/shared/proparser/qmakeevaluator.h | 4 ---- src/shared/proparser/qmakeevaluator_p.h | 1 - 3 files changed, 6 insertions(+), 25 deletions(-) diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp index 5cd43a1f6fc..b2de00daf48 100644 --- a/src/shared/proparser/qmakeevaluator.cpp +++ b/src/shared/proparser/qmakeevaluator.cpp @@ -95,12 +95,6 @@ void QMakeEvaluator::initStatics() initFunctionStatics(); - static const char * const names[] = { - "PWD" - }; - for (unsigned i = 0; i < sizeof(names)/sizeof(names[0]); ++i) - statics.varList.insert(ProString(names[i]), i); - static const struct { const char * const oldname, * const newname; } mapInits[] = { @@ -1070,6 +1064,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( m_handler->aboutToEval(currentProFile(), pro, type); m_profileStack.push(pro); + valuesRef(ProString("PWD")) = ProStringList(ProString(currentDirectory(), NoHash)); if (flags & LoadPreFiles) { setupProject(); @@ -1105,6 +1100,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( } } m_profileStack.pop(); + valuesRef(ProString("PWD")) = ProStringList(ProString(currentDirectory(), NoHash)); m_handler->doneWithEval(currentProFile()); return ReturnTrue; @@ -1212,8 +1208,10 @@ QString QMakeEvaluator::currentFileName() const QString QMakeEvaluator::currentDirectory() const { - ProFile *cur = m_profileStack.top(); - return cur->directoryName(); + ProFile *pro = currentProFile(); + if (pro) + return pro->directoryName(); + return QString(); } // The (QChar*)current->constData() constructs below avoid pointless detach() calls @@ -1736,18 +1734,6 @@ ProStringList QMakeEvaluator::valuesDirect(const ProString &variableName) const ProStringList QMakeEvaluator::values(const ProString &variableName) const { - QHash::ConstIterator vli = statics.varList.find(variableName); - if (vli != statics.varList.constEnd()) { - int vlidx = *vli; - QString ret; - switch ((VarName)vlidx) { - case V_PWD: // containing directory of most nested project/include file - ret = currentDirectory(); - break; - } - return ProStringList(ProString(ret, NoHash)); - } - ProStringList result = valuesDirect(variableName); return result; } diff --git a/src/shared/proparser/qmakeevaluator.h b/src/shared/proparser/qmakeevaluator.h index 3d4e621041b..b611aacd693 100644 --- a/src/shared/proparser/qmakeevaluator.h +++ b/src/shared/proparser/qmakeevaluator.h @@ -208,10 +208,6 @@ public: QMakeGlobals *m_option; QMakeParser *m_parser; QMakeHandler *m_handler; - - enum VarName { - V_PWD - }; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QMakeEvaluator::LoadFlags) diff --git a/src/shared/proparser/qmakeevaluator_p.h b/src/shared/proparser/qmakeevaluator_p.h index b50b4b5c1b5..f029277ee66 100644 --- a/src/shared/proparser/qmakeevaluator_p.h +++ b/src/shared/proparser/qmakeevaluator_p.h @@ -54,7 +54,6 @@ struct QMakeStatics { ProString strTEMPLATE; QHash expands; QHash functions; - QHash varList; QHash varMap; ProStringList fakeValue; };