diff options
author | Jerome LAFORGE <jerome.laforge@gmail.com> | 2012-09-15 11:04:35 +0200 |
---|---|---|
committer | Jerome LAFORGE <jerome.laforge@gmail.com> | 2012-09-15 11:04:35 +0200 |
commit | 6b81a849c78fd73d33ba230d60ae82c02a6419b9 (patch) | |
tree | 15b0c4d52f1a7ea0771be9f3736276f37d06c748 /lexers/LexSQL.cxx | |
parent | 64afc0151aa4af657635f8d04ff4ba988a95e4be (diff) | |
download | scintilla-mirror-6b81a849c78fd73d33ba230d60ae82c02a6419b9.tar.gz |
Fix bad folding block when LOOP statement nested into CASE statement.
Bug #3567905.
Diffstat (limited to 'lexers/LexSQL.cxx')
-rw-r--r-- | lexers/LexSQL.cxx | 5 |
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 |