From 813539a70a45ba04ec982d4ad9aabb0842c00df5 Mon Sep 17 00:00:00 2001
From: Leandro Melo <leandro.melo@nokia.com>
Date: Thu, 30 Aug 2012 15:04:25 +0200
Subject: [PATCH] C++: Fix lexer for token Q_SLOT

When adding Q_EMIT a while ago the the if chain got messed up
and Q_SLOT was being skipped.

Change-Id: Ib1f49c00290a09286506de9510d0067eaf5e3b96
Reviewed-by: hjk <qthjk@ovi.com>
---
 src/libs/3rdparty/cplusplus/Keywords.cpp | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/src/libs/3rdparty/cplusplus/Keywords.cpp b/src/libs/3rdparty/cplusplus/Keywords.cpp
index 3d1b50e67a2..cac51a4fd68 100644
--- a/src/libs/3rdparty/cplusplus/Keywords.cpp
+++ b/src/libs/3rdparty/cplusplus/Keywords.cpp
@@ -424,19 +424,6 @@ static inline int classify6(const char *s, bool q, bool) {
       }
     }
   }
-  else if (q && s[0] == 'Q') {
-    if (s[1] == '_') {
-      if (s[2] == 'E') {
-        if (s[3] == 'M') {
-          if (s[4] == 'I') {
-            if (s[5] == 'T') {
-              return T_Q_EMIT;
-            }
-          }
-        }
-      }
-    }
-  }
   else if (s[0] == 'r') {
     if (s[1] == 'e') {
       if (s[2] == 't') {
@@ -545,6 +532,15 @@ static inline int classify6(const char *s, bool q, bool) {
           }
         }
       }
+      else if (s[2] == 'E') {
+        if (s[3] == 'M') {
+          if (s[4] == 'I') {
+            if (s[5] == 'T') {
+              return T_Q_EMIT;
+            }
+          }
+        }
+      }
     }
   }
   return T_IDENTIFIER;
-- 
GitLab