summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/FastPreprocessor.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2009-06-29 09:59:55 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2009-07-01 10:25:31 +0200
commitf8531cc833313dfccd578b0c3c2df3d6de6389c0 (patch)
tree6988c0c942c4768f2893a42244fdf86dc13a3aeb /src/libs/cplusplus/FastPreprocessor.cpp
parent02de79071488a396dea0a5842514558fa13d13f3 (diff)
downloadqt-creator-f8531cc833313dfccd578b0c3c2df3d6de6389c0.tar.gz
Merge the environment from the previous parse.
Diffstat (limited to 'src/libs/cplusplus/FastPreprocessor.cpp')
-rw-r--r--src/libs/cplusplus/FastPreprocessor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libs/cplusplus/FastPreprocessor.cpp b/src/libs/cplusplus/FastPreprocessor.cpp
index e1e0bd8c50..481e2c715a 100644
--- a/src/libs/cplusplus/FastPreprocessor.cpp
+++ b/src/libs/cplusplus/FastPreprocessor.cpp
@@ -38,10 +38,20 @@ FastPreprocessor::FastPreprocessor(const Snapshot &snapshot)
QByteArray FastPreprocessor::run(QString fileName, const QString &source)
{
+ if (Document::Ptr doc = _snapshot.value(fileName)) {
+ _merged.insert(fileName);
+
+ foreach (const Document::Include &i, doc->includes())
+ mergeEnvironment(i.fileName());
+ }
+
const QByteArray preprocessed = _preproc(fileName, source);
return preprocessed;
}
+void FastPreprocessor::sourceNeeded(QString &fileName, IncludeType, unsigned)
+{ mergeEnvironment(fileName); }
+
void FastPreprocessor::mergeEnvironment(const QString &fileName)
{
if (! _merged.contains(fileName)) {