From 4e35cc2ea80effe757ff0c81a739aa1eb761b7c4 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Thu, 18 May 2017 12:46:19 +0200 Subject: 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 --- src/libs/3rdparty/cplusplus/Lexer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/libs/3rdparty/cplusplus') 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; } -- cgit v1.2.3