From 837e7b5abd3c18e1fb63d36c1630243172a28f90 Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Tue, 29 Jun 2010 15:23:07 +0200
Subject: [PATCH] C++: Remember joined state in SimpleLexer.

Done-with: Erik Verbruggen
---
 src/libs/cplusplus/SimpleLexer.cpp | 12 ++++++++++--
 src/libs/cplusplus/SimpleLexer.h   |  3 +++
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/libs/cplusplus/SimpleLexer.cpp b/src/libs/cplusplus/SimpleLexer.cpp
index 1efa043e7bd..e03208f2f72 100644
--- a/src/libs/cplusplus/SimpleLexer.cpp
+++ b/src/libs/cplusplus/SimpleLexer.cpp
@@ -41,7 +41,8 @@ SimpleLexer::SimpleLexer()
     : _lastState(0),
       _skipComments(false),
       _qtMocRunEnabled(true),
-      _objCEnabled(false)
+      _objCEnabled(false),
+      _endedJoined(false)
 {
 }
 
@@ -78,6 +79,11 @@ void SimpleLexer::setSkipComments(bool skipComments)
     _skipComments = skipComments;
 }
 
+bool SimpleLexer::endedJoined() const
+{
+    return _endedJoined;
+}
+
 QList<Token> SimpleLexer::operator()(const QString &text, int state)
 {
     QList<Token> tokens;
@@ -103,8 +109,10 @@ QList<Token> SimpleLexer::operator()(const QString &text, int state)
     for (;;) {
         Token tk;
         lex(&tk);
-        if (tk.is(T_EOF_SYMBOL))
+        if (tk.is(T_EOF_SYMBOL)) {
+            _endedJoined = tk.joined();
             break;
+        }
 
         QStringRef spell = text.midRef(lex.tokenOffset(), lex.tokenLength());
         lex.setScanAngleStringLiteralTokens(false);
diff --git a/src/libs/cplusplus/SimpleLexer.h b/src/libs/cplusplus/SimpleLexer.h
index b745b1b8099..cdb61a5d0c9 100644
--- a/src/libs/cplusplus/SimpleLexer.h
+++ b/src/libs/cplusplus/SimpleLexer.h
@@ -54,6 +54,8 @@ public:
     bool objCEnabled() const;
     void setObjCEnabled(bool onoff);
 
+    bool endedJoined() const;
+
     QList<Token> operator()(const QString &text, int state = 0);
 
     int state() const
@@ -72,6 +74,7 @@ private:
     bool _skipComments: 1;
     bool _qtMocRunEnabled: 1;
     bool _objCEnabled: 1;
+    bool _endedJoined: 1;
 };
 
 } // end of namespace CPlusPlus
-- 
GitLab