aboutsummaryrefslogtreecommitdiffhomepage
path: root/lexers/LexOthers.cxx
diff options
context:
space:
mode:
authornyamatongwe <unknown>2011-05-09 09:54:03 +1000
committernyamatongwe <unknown>2011-05-09 09:54:03 +1000
commit45daee5101a2f2b87856868972ef8db0994a84a4 (patch)
treebc2cf2143d901b705ee8f1b7aeca47956a996aa3 /lexers/LexOthers.cxx
parentc9209d18f432741eca0bfe33ee81b8b7dc05959e (diff)
downloadscintilla-mirror-45daee5101a2f2b87856868972ef8db0994a84a4.tar.gz
Allow nested variables in make files. Bug #3298223.
From Dimitar Zhekov.
Diffstat (limited to 'lexers/LexOthers.cxx')
-rw-r--r--lexers/LexOthers.cxx8
1 files changed, 6 insertions, 2 deletions
diff --git a/lexers/LexOthers.cxx b/lexers/LexOthers.cxx
index 2062b1b18..7d0f099bb 100644
--- a/lexers/LexOthers.cxx
+++ b/lexers/LexOthers.cxx
@@ -854,13 +854,17 @@ static void ColouriseMakeLine(
styler.ColourTo(endPos, SCE_MAKE_PREPROCESSOR);
return;
}
+ int varCount = 0;
while (i < lengthLine) {
if (lineBuffer[i] == '$' && lineBuffer[i + 1] == '(') {
styler.ColourTo(startLine + i - 1, state);
state = SCE_MAKE_IDENTIFIER;
+ varCount++;
} else if (state == SCE_MAKE_IDENTIFIER && lineBuffer[i] == ')') {
- styler.ColourTo(startLine + i, state);
- state = SCE_MAKE_DEFAULT;
+ if (--varCount == 0) {
+ styler.ColourTo(startLine + i, state);
+ state = SCE_MAKE_DEFAULT;
+ }
}
// skip identifier and target styling if this is a command line