From 42c676d19a76a1ca19c8508856f8f323251f3e7f Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Mon, 21 Sep 2009 17:38:25 +0200
Subject: [PATCH] Added BackwardsScanner::mid(tokenIndex). Mid() returns a
 substring starting from the position of the given token.

---
 src/libs/cplusplus/BackwardsScanner.cpp      | 6 ++++++
 src/libs/cplusplus/BackwardsScanner.h        | 3 ++-
 src/libs/cplusplus/ExpressionUnderCursor.cpp | 2 +-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/libs/cplusplus/BackwardsScanner.cpp b/src/libs/cplusplus/BackwardsScanner.cpp
index 32efdf158ee..da12f3e599a 100644
--- a/src/libs/cplusplus/BackwardsScanner.cpp
+++ b/src/libs/cplusplus/BackwardsScanner.cpp
@@ -99,6 +99,12 @@ int BackwardsScanner::startPosition() const
 QString BackwardsScanner::text() const
 { return _text; }
 
+QString BackwardsScanner::mid(int index) const
+{
+    const SimpleToken &firstToken = _tokens.at(index + _offset);
+    return _text.mid(firstToken.begin());
+}
+
 QString BackwardsScanner::text(int index) const
 {
     const SimpleToken &firstToken = _tokens.at(index + _offset);
diff --git a/src/libs/cplusplus/BackwardsScanner.h b/src/libs/cplusplus/BackwardsScanner.h
index a109d2cab31..b2e7414951e 100644
--- a/src/libs/cplusplus/BackwardsScanner.h
+++ b/src/libs/cplusplus/BackwardsScanner.h
@@ -51,9 +51,10 @@ public:
     int startPosition() const;
 
     QString text() const;
+    QString mid(int index) const;
+
     QString text(int index) const;
     QStringRef textRef(int index) const;
-
     // 1-based
     SimpleToken LA(int index) const;
 
diff --git a/src/libs/cplusplus/ExpressionUnderCursor.cpp b/src/libs/cplusplus/ExpressionUnderCursor.cpp
index e6444419025..8016f537bb2 100644
--- a/src/libs/cplusplus/ExpressionUnderCursor.cpp
+++ b/src/libs/cplusplus/ExpressionUnderCursor.cpp
@@ -150,7 +150,7 @@ QString ExpressionUnderCursor::operator()(const QTextCursor &cursor)
     if (i == initialSize)
         return QString();
 
-    return scanner.text(i);
+    return scanner.mid(i);
 }
 
 int ExpressionUnderCursor::startOfFunctionCall(const QTextCursor &cursor) const
-- 
GitLab