diff options
Diffstat (limited to 'lexers/LexCPP.cxx')
-rw-r--r-- | lexers/LexCPP.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 92248f7f0..2e5fdd0d1 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -506,7 +506,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, const int maskActivity = 0x3F; std::string rawStringTerminator = rawStringTerminators.ValueAt(lineCurrent-1); - bool changedRawStringState = rawStringTerminators.Delete(lineCurrent); + SparseState<std::string> rawSTNew(lineCurrent); int activitySet = preproc.IsInactive() ? 0x40 : 0; @@ -540,8 +540,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, lineCurrent++; vlls.Add(lineCurrent, preproc); if (rawStringTerminator != "") { - rawStringTerminators.Set(lineCurrent-1, rawStringTerminator); - changedRawStringState = true; + rawSTNew.Set(lineCurrent-1, rawStringTerminator); } } @@ -893,7 +892,8 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle, } continuationLine = false; } - if (definitionsChanged || changedRawStringState) + const bool rawStringsChanged = rawStringTerminators.Merge(rawSTNew, lineCurrent); + if (definitionsChanged || rawStringsChanged) styler.ChangeLexerState(startPos, startPos + length); sc.Complete(); } |