aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJerome LAFORGE <jerome.laforge@gmail.com>2012-09-15 11:04:35 +0200
committerJerome LAFORGE <jerome.laforge@gmail.com>2012-09-15 11:04:35 +0200
commit6b81a849c78fd73d33ba230d60ae82c02a6419b9 (patch)
tree15b0c4d52f1a7ea0771be9f3736276f37d06c748
parent64afc0151aa4af657635f8d04ff4ba988a95e4be (diff)
downloadscintilla-mirror-6b81a849c78fd73d33ba230d60ae82c02a6419b9.tar.gz
Fix bad folding block when LOOP statement nested into CASE statement.
Bug #3567905.
-rw-r--r--lexers/LexSQL.cxx5
1 files changed, 3 insertions, 2 deletions
diff --git a/lexers/LexSQL.cxx b/lexers/LexSQL.cxx
index d9013db9b..ccb88f8dc 100644
--- a/lexers/LexSQL.cxx
+++ b/lexers/LexSQL.cxx
@@ -719,8 +719,10 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle,
levelNext--; //again for the "end case;" and block when
}
} else if (!options.foldOnlyBegin) {
- if (strcmp(s, "case") == 0)
+ if (strcmp(s, "case") == 0) {
sqlStatesCurrentLine = sqlStates.BeginCaseBlock(sqlStatesCurrentLine);
+ sqlStatesCurrentLine = sqlStates.CaseMergeWithoutWhenFound(sqlStatesCurrentLine, true);
+ }
if (levelCurrent > levelNext)
levelCurrent = levelNext;
@@ -728,7 +730,6 @@ void SCI_METHOD LexerSQL::Fold(unsigned int startPos, int length, int initStyle,
if (!statementFound)
levelNext++;
- sqlStatesCurrentLine = sqlStates.CaseMergeWithoutWhenFound(sqlStatesCurrentLine, true);
statementFound = true;
} else if (levelCurrent > levelNext) {
// doesn't include this line into the folding block