aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lexers/LexCPP.cxx7
-rw-r--r--test/examples/x.cxx5
-rw-r--r--test/examples/x.cxx.styled5
3 files changed, 14 insertions, 3 deletions
diff --git a/lexers/LexCPP.cxx b/lexers/LexCPP.cxx
index 51752db85..c3c69b703 100644
--- a/lexers/LexCPP.cxx
+++ b/lexers/LexCPP.cxx
@@ -527,6 +527,9 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle,
// ends with a line continuation by locking in the state upto this position.
sc.SetState(sc.state);
}
+ if ((MaskActive(sc.state) == SCE_C_PREPROCESSOR) && (!continuationLine)) {
+ sc.SetState(SCE_C_DEFAULT|activitySet);
+ }
// Reset states to begining of colourise so no surprises
// if different sets of lines lexed.
visibleChars = 0;
@@ -610,9 +613,7 @@ void SCI_METHOD LexerCPP::Lex(unsigned int startPos, int length, int initStyle,
}
break;
case SCE_C_PREPROCESSOR:
- if (sc.atLineStart && !continuationLine) {
- sc.SetState(SCE_C_DEFAULT|activitySet);
- } else if (options.stylingWithinPreprocessor) {
+ if (options.stylingWithinPreprocessor) {
if (IsASpace(sc.ch)) {
sc.SetState(SCE_C_DEFAULT|activitySet);
}
diff --git a/test/examples/x.cxx b/test/examples/x.cxx
index 811a4034a..7d020ba10 100644
--- a/test/examples/x.cxx
+++ b/test/examples/x.cxx
@@ -4,6 +4,11 @@
#define DUMMY() \
if (1);
#endif
+
+#define M\
+
+\
+
int main() {
double x[] = {3.14159,6.02e23,1.6e-19,1.0+1};
int y[] = {75,0113,0x4b};
diff --git a/test/examples/x.cxx.styled b/test/examples/x.cxx.styled
index ad259f893..082c6c3e0 100644
--- a/test/examples/x.cxx.styled
+++ b/test/examples/x.cxx.styled
@@ -4,6 +4,11 @@
{73}#define DUMMY() \
if (1);
{9}#endif
+{0}
+{9}#define M\
+
+{0}\
+
{5}int{0} {11}main{10}(){0} {10}{{0}
{11}double{0} {11}x{10}[]{0} {10}={0} {10}{{4}3.14159{10},{4}6.02e23{10},{4}1.6e-19{10},{4}1.0{10}+{4}1{10}};{0}
{5}int{0} {11}y{10}[]{0} {10}={0} {10}{{4}75{10},{4}0113{10},{4}0x4b{10}};{0}