diff options
| -rw-r--r-- | doc/ScintillaHistory.html | 11 | ||||
| -rw-r--r-- | lexers/LexCPP.cxx | 14 | 
2 files changed, 22 insertions, 3 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 852503b86..f23191ff2 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -460,6 +460,17 @@        </li>      </ul>      <h3> +       <a href="http://prdownloads.sourceforge.net/scintilla/scite343.zip?download">Release 3.4.3</a> +    </h3> +    <ul> +	<li> +	Released 22 May 2014. +	</li> +	<li> +	C++ lexer fixes raw string recognition so that R"xxx(blah)xxx" is styled as SCE_C_STRINGRAW. +	</li> +    </ul> +    <h3>         <a href="http://prdownloads.sourceforge.net/scintilla/scite342.zip?download">Release 3.4.2</a>      </h3>      <ul> diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx index 7fe680991..e8b705b1f 100644 --- a/lexers/LexCPP.cxx +++ b/lexers/LexCPP.cxx @@ -821,10 +821,18 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle,  							((lenS == 1) && ((s[0] == 'L') || (s[0] == 'u') || (s[0] == 'U'))) ||  							((lenS == 2) && literalString && (s[0] == 'u') && (s[1] == '8'));  						if (valid) { -							if (literalString) -								sc.ChangeState((raw ? SCE_C_STRINGRAW : SCE_C_STRING)|activitySet); -							else +							if (literalString) { +								if (raw) { +									// Set the style of the string prefix to SCE_C_STRINGRAW but then change to +									// SCE_C_DEFAULT as that allows the raw string start code to run. +									sc.ChangeState(SCE_C_STRINGRAW|activitySet); +									sc.SetState(SCE_C_DEFAULT|activitySet); +								} else { +									sc.ChangeState(SCE_C_STRING|activitySet); +								} +							} else {  								sc.ChangeState(SCE_C_CHARACTER|activitySet); +							}  						} else {  							sc.SetState(SCE_C_DEFAULT | activitySet);  						}  | 
