aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2017-05-18 12:46:19 +0200
committerEike Ziller <eike.ziller@qt.io>2017-05-19 13:50:42 +0000
commit4e35cc2ea80effe757ff0c81a739aa1eb761b7c4 (patch)
tree41b6d7f764f4c5a4678673a4d298f325ebc9ab6f /src/libs/3rdparty/cplusplus
parenta37c8add58d43e37a96c5c49080cd0bf41205308 (diff)
Fix that raw string literals that close on same line were not terminated
With the built-in model, which affects basic highlighting. Task-number: QTCREATORBUG-17720 Change-Id: I7369d7288d9c2c8e5ef36fc27549121014527e58 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/libs/3rdparty/cplusplus')
-rw-r--r--src/libs/3rdparty/cplusplus/Lexer.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libs/3rdparty/cplusplus/Lexer.cpp b/src/libs/3rdparty/cplusplus/Lexer.cpp
index efaaaf9165..e62c9412a4 100644
--- a/src/libs/3rdparty/cplusplus/Lexer.cpp
+++ b/src/libs/3rdparty/cplusplus/Lexer.cpp
@@ -748,6 +748,7 @@ void Lexer::scanRawStringLiteral(Token *tok, unsigned char hint)
int delimLength = -1;
const char *closingDelimCandidate = 0;
+ bool closed = false;
while (_yychar) {
if (_yychar == '(' && delimLength == -1) {
delimLength = _currentChar - yytext;
@@ -769,6 +770,7 @@ void Lexer::scanRawStringLiteral(Token *tok, unsigned char hint)
if (_yychar == '"') {
if (delimLength == _currentChar - closingDelimCandidate) {
// Got a matching closing delimiter.
+ closed = true;
break;
}
}
@@ -802,7 +804,7 @@ void Lexer::scanRawStringLiteral(Token *tok, unsigned char hint)
else
tok->f.kind = T_RAW_STRING_LITERAL;
- if (!_yychar)
+ if (!closed)
s._tokenKind = tok->f.kind;
}