diff options
Diffstat (limited to 'src/ScintillaBase.cxx')
-rw-r--r-- | src/ScintillaBase.cxx | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/ScintillaBase.cxx b/src/ScintillaBase.cxx index 2f84db7cd..b4accacb9 100644 --- a/src/ScintillaBase.cxx +++ b/src/ScintillaBase.cxx @@ -527,17 +527,22 @@ void LexState::SetLexerModule(const LexerModule *lex) { instance = 0; } lexCurrent = lex; - instance = lexCurrent->Create(); + if (lexCurrent) + instance = lexCurrent->Create(); pdoc->LexerChanged(); } } void LexState::SetLexer(uptr_t wParam) { lexLanguage = wParam; - const LexerModule *lex = Catalogue::Find(lexLanguage); - if (!lex) - lex = Catalogue::Find(SCLEX_NULL); - SetLexerModule(lex); + if (lexLanguage == SCLEX_CONTAINER) { + SetLexerModule(0); + } else { + const LexerModule *lex = Catalogue::Find(lexLanguage); + if (!lex) + lex = Catalogue::Find(SCLEX_NULL); + SetLexerModule(lex); + } } void LexState::SetLexerLanguage(const char *languageName) { |